summaryrefslogtreecommitdiffstats
path: root/toolkit/components/viewsource/test/browser/browser_gotoline.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/viewsource/test/browser/browser_gotoline.js')
-rw-r--r--toolkit/components/viewsource/test/browser/browser_gotoline.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/toolkit/components/viewsource/test/browser/browser_gotoline.js b/toolkit/components/viewsource/test/browser/browser_gotoline.js
new file mode 100644
index 000000000..5bb45f9ca
--- /dev/null
+++ b/toolkit/components/viewsource/test/browser/browser_gotoline.js
@@ -0,0 +1,36 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+Cu.import("resource://testing-common/ContentTaskUtils.jsm", this);
+
+var content = "line 1\nline 2\nline 3";
+
+add_task(function*() {
+ // First test with text with the text/html mimetype.
+ let win = yield loadViewSourceWindow("data:text/html," + encodeURIComponent(content));
+ yield checkViewSource(win);
+ yield BrowserTestUtils.closeWindow(win);
+
+ win = yield loadViewSourceWindow("data:text/plain," + encodeURIComponent(content));
+ yield checkViewSource(win);
+ yield BrowserTestUtils.closeWindow(win);
+});
+
+var checkViewSource = Task.async(function* (aWindow) {
+ is(aWindow.gBrowser.contentDocument.body.textContent, content, "Correct content loaded");
+ let statusPanel = aWindow.document.getElementById("statusbar-line-col");
+ is(statusPanel.getAttribute("label"), "", "Correct status bar text");
+
+ for (let i = 1; i <= 3; i++) {
+ aWindow.viewSourceChrome.goToLine(i);
+ yield ContentTask.spawn(aWindow.gBrowser, i, function*(i) {
+ let selection = content.getSelection();
+ Assert.equal(selection.toString(), "line " + i, "Correct text selected");
+ });
+
+ yield ContentTaskUtils.waitForCondition(() => {
+ return (statusPanel.getAttribute("label") == "Line " + i + ", Col 1");
+ }, "Correct status bar text");
+ }
+});