diff options
Diffstat (limited to 'toolkit/components/viewsource/test/browser/browser_gotoline.js')
-rw-r--r-- | toolkit/components/viewsource/test/browser/browser_gotoline.js | 36 |
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"); + } +}); |