diff options
Diffstat (limited to 'devtools/client/scratchpad/test/browser_scratchpad_tab.js')
-rw-r--r-- | devtools/client/scratchpad/test/browser_scratchpad_tab.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/devtools/client/scratchpad/test/browser_scratchpad_tab.js b/devtools/client/scratchpad/test/browser_scratchpad_tab.js new file mode 100644 index 000000000..67057f206 --- /dev/null +++ b/devtools/client/scratchpad/test/browser_scratchpad_tab.js @@ -0,0 +1,75 @@ +/* vim: set ts=2 et sw=2 tw=80: */ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ +/* Bug 660560 */ + +function test() +{ + waitForExplicitFinish(); + + gBrowser.selectedTab = gBrowser.addTab(); + gBrowser.selectedBrowser.addEventListener("load", function onTabLoad() { + gBrowser.selectedBrowser.removeEventListener("load", onTabLoad, true); + + Services.prefs.setIntPref("devtools.editor.tabsize", 5); + + openScratchpad(runTests); + }, true); + + content.location = "data:text/html,Scratchpad test for the Tab key, bug 660560"; +} + +function runTests() +{ + let sp = gScratchpadWindow.Scratchpad; + ok(sp, "Scratchpad object exists in new window"); + + ok(sp.editor.hasFocus(), "the editor has focus"); + + sp.setText("window.foo;"); + sp.editor.setCursor({ line: 0, ch: 0 }); + + EventUtils.synthesizeKey("VK_TAB", {}, gScratchpadWindow); + + is(sp.getText(), " window.foo;", "Tab key added 5 spaces"); + + is(sp.editor.getCursor().line, 0, "line is correct"); + is(sp.editor.getCursor().ch, 5, "character is correct"); + + sp.editor.setCursor({ line: 0, ch: 6 }); + + EventUtils.synthesizeKey("VK_TAB", {}, gScratchpadWindow); + + is(sp.getText(), " w indow.foo;", + "Tab key added 4 spaces"); + + is(sp.editor.getCursor().line, 0, "line is correct"); + is(sp.editor.getCursor().ch, 10, "character is correct"); + + gScratchpadWindow.close(); + + Services.prefs.setIntPref("devtools.editor.tabsize", 6); + Services.prefs.setBoolPref("devtools.editor.expandtab", false); + + openScratchpad(runTests2); +} + +function runTests2() +{ + let sp = gScratchpadWindow.Scratchpad; + + sp.setText("window.foo;"); + sp.editor.setCursor({ line: 0, ch: 0 }); + + EventUtils.synthesizeKey("VK_TAB", {}, gScratchpadWindow); + + is(sp.getText(), "\twindow.foo;", "Tab key added the tab character"); + + is(sp.editor.getCursor().line, 0, "line is correct"); + is(sp.editor.getCursor().ch, 1, "character is correct"); + + Services.prefs.clearUserPref("devtools.editor.tabsize"); + Services.prefs.clearUserPref("devtools.editor.expandtab"); + + finish(); +} |