diff options
Diffstat (limited to 'devtools/client/webconsole/test/browser_webconsole_bug_817834_add_edited_input_to_history.js')
-rw-r--r-- | devtools/client/webconsole/test/browser_webconsole_bug_817834_add_edited_input_to_history.js | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/devtools/client/webconsole/test/browser_webconsole_bug_817834_add_edited_input_to_history.js b/devtools/client/webconsole/test/browser_webconsole_bug_817834_add_edited_input_to_history.js new file mode 100644 index 000000000..ccbcb3bf3 --- /dev/null +++ b/devtools/client/webconsole/test/browser_webconsole_bug_817834_add_edited_input_to_history.js @@ -0,0 +1,57 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +// Test that user input that is not submitted in the command line input is not +// lost after navigating in history. +// See https://bugzilla.mozilla.org/show_bug.cgi?id=817834 + +"use strict"; + +const TEST_URI = "data:text/html;charset=utf-8,Web Console test for bug 817834"; + +add_task(function* () { + yield loadTab(TEST_URI); + + let hud = yield openConsole(); + + testEditedInputHistory(hud); +}); + +function testEditedInputHistory(HUD) { + let jsterm = HUD.jsterm; + let inputNode = jsterm.inputNode; + ok(!jsterm.getInputValue(), "jsterm.getInputValue() is empty"); + is(inputNode.selectionStart, 0); + is(inputNode.selectionEnd, 0); + + jsterm.setInputValue('"first item"'); + EventUtils.synthesizeKey("VK_UP", {}); + is(jsterm.getInputValue(), '"first item"', "null test history up"); + EventUtils.synthesizeKey("VK_DOWN", {}); + is(jsterm.getInputValue(), '"first item"', "null test history down"); + + jsterm.execute(); + is(jsterm.getInputValue(), "", "cleared input line after submit"); + + jsterm.setInputValue('"editing input 1"'); + EventUtils.synthesizeKey("VK_UP", {}); + is(jsterm.getInputValue(), '"first item"', "test history up"); + EventUtils.synthesizeKey("VK_DOWN", {}); + is(jsterm.getInputValue(), '"editing input 1"', + "test history down restores in-progress input"); + + jsterm.setInputValue('"second item"'); + jsterm.execute(); + jsterm.setInputValue('"editing input 2"'); + EventUtils.synthesizeKey("VK_UP", {}); + is(jsterm.getInputValue(), '"second item"', "test history up"); + EventUtils.synthesizeKey("VK_UP", {}); + is(jsterm.getInputValue(), '"first item"', "test history up"); + EventUtils.synthesizeKey("VK_DOWN", {}); + is(jsterm.getInputValue(), '"second item"', "test history down"); + EventUtils.synthesizeKey("VK_DOWN", {}); + is(jsterm.getInputValue(), '"editing input 2"', + "test history down restores new in-progress input again"); +} |