Bug 1405647 - enable browser_webconsole_split_escape_key.js;r=Honza
MozReview-Commit-ID: 2p5VNzKhwo2
--- a/devtools/client/webconsole/new-console-output/test/mochitest/browser.ini
+++ b/devtools/client/webconsole/new-console-output/test/mochitest/browser.ini
@@ -338,17 +338,16 @@ subsuite = clipboard
[browser_webconsole_show_subresource_security_errors.js]
[browser_webconsole_shows_reqs_in_netmonitor.js]
[browser_webconsole_sourcemap_css.js]
[browser_webconsole_sourcemap_error.js]
[browser_webconsole_sourcemap_invalid.js]
[browser_webconsole_sourcemap_nosource.js]
[browser_webconsole_split.js]
[browser_webconsole_split_escape_key.js]
-skip-if = true # Bug 1405647
[browser_webconsole_split_focus.js]
skip-if = true # Bug 1405648
[browser_webconsole_split_persist.js]
skip-if = true # Bug 1405649
[browser_webconsole_stacktrace_location_debugger_link.js]
[browser_webconsole_stacktrace_location_scratchpad_link.js]
[browser_webconsole_strict_mode_errors.js]
[browser_webconsole_string.js]
--- a/devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_split_escape_key.js
+++ b/devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_split_escape_key.js
@@ -1,158 +1,49 @@
/* -*- 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/ */
- "use strict";
-
- function test() {
- info("Test various cases where the escape key should hide the split console.");
+"use strict";
- let toolbox;
- let hud;
- let jsterm;
- let hudMessages;
- let variablesView;
-
- Task.spawn(runner).then(finish);
+const TEST_URI = "data:text/html;charset=utf-8,<p>Web Console test for splitting";
- function* runner() {
- let {tab} = yield loadTab("data:text/html;charset=utf-8,<p>Web Console " +
- "test for splitting");
- let target = TargetFactory.forTab(tab);
- toolbox = yield gDevTools.showToolbox(target, "inspector");
-
- yield testCreateSplitConsoleAfterEscape();
-
- yield showAutoCompletePopoup();
+add_task(async function () {
+ info("Test various cases where the escape key should hide the split console.");
- yield testHideAutoCompletePopupAfterEscape();
-
- yield executeJS();
- yield clickMessageAndShowVariablesView();
- jsterm.focus();
-
- yield testHideVariablesViewAfterEscape();
-
- yield clickMessageAndShowVariablesView();
- yield startPropertyEditor();
+ let toolbox = await openNewTabAndToolbox(TEST_URI, "inspector");
- yield testCancelPropertyEditorAfterEscape();
- yield testHideVariablesViewAfterEscape();
- yield testHideSplitConsoleAfterEscape();
- }
-
- function testCreateSplitConsoleAfterEscape() {
- let result = toolbox.once("webconsole-ready", () => {
- hud = toolbox.getPanel("webconsole").hud;
- jsterm = hud.jsterm;
- ok(toolbox.splitConsole, "Split console is created.");
- });
-
- let contentWindow = toolbox.win;
- contentWindow.focus();
- EventUtils.sendKey("ESCAPE", contentWindow);
-
- return result;
- }
+ info("Send ESCAPE key and wait for the split console to be displayed");
- function testHideSplitConsoleAfterEscape() {
- let result = toolbox.once("split-console", () => {
- ok(!toolbox.splitConsole, "Split console is hidden.");
- });
- EventUtils.sendKey("ESCAPE", toolbox.win);
-
- return result;
- }
+ let onSplitConsoleReady = toolbox.once("webconsole-ready");
+ toolbox.win.focus();
+ EventUtils.sendKey("ESCAPE", toolbox.win);
+ await onSplitConsoleReady;
- function testHideVariablesViewAfterEscape() {
- let result = jsterm.once("sidebar-closed", () => {
- ok(!hud.ui.jsterm.sidebar,
- "Variables view is hidden.");
- ok(toolbox.splitConsole,
- "Split console is open after hiding the variables view.");
- });
- EventUtils.sendKey("ESCAPE", toolbox.win);
-
- return result;
- }
+ let hud = toolbox.getPanel("webconsole").hud;
+ let jsterm = hud.jsterm;
+ ok(toolbox.splitConsole, "Split console is created.");
- function testHideAutoCompletePopupAfterEscape() {
- let deferred = defer();
- let popup = jsterm.autocompletePopup;
-
- popup.once("popup-closed", () => {
- ok(!popup.isOpen,
- "Auto complete popup is hidden.");
- ok(toolbox.splitConsole,
- "Split console is open after hiding the autocomplete popup.");
-
- deferred.resolve();
- });
-
- EventUtils.sendKey("ESCAPE", toolbox.win);
-
- return deferred.promise;
- }
+ info("Wait for the autocomplete to show suggestions for `document.location.`");
+ let popup = jsterm.autocompletePopup;
+ let onPopupShown = popup.once("popup-opened");
+ jsterm.focus();
+ jsterm.setInputValue("document.location.");
+ EventUtils.sendKey("TAB", hud.iframeWindow);
+ await onPopupShown;
- function testCancelPropertyEditorAfterEscape() {
- EventUtils.sendKey("ESCAPE", variablesView.window);
- ok(hud.ui.jsterm.sidebar,
- "Variables view is open after canceling property editor.");
- ok(toolbox.splitConsole,
- "Split console is open after editing.");
- }
-
- function* executeJS() {
- jsterm.execute("var foo = { bar: \"baz\" }; foo;");
- hudMessages = yield waitForMessages({
- webconsole: hud,
- messages: [{
- text: "Object { bar: \"baz\" }",
- category: CATEGORY_OUTPUT,
- objects: true
- }],
- });
- }
+ info("Send ESCAPE key and check that it only hides the autocomplete suggestions");
- function clickMessageAndShowVariablesView() {
- let result = jsterm.once("variablesview-fetched", (event, vview) => {
- variablesView = vview;
- });
-
- let clickable = hudMessages[0].clickableElements[0];
- EventUtils.synthesizeMouse(clickable, 2, 2, {}, hud.iframeWindow);
+ let onPopupClosed = popup.once("popup-closed");
+ EventUtils.sendKey("ESCAPE", toolbox.win);
+ await onPopupClosed;
- return result;
- }
-
- function* startPropertyEditor() {
- let results = yield findVariableViewProperties(variablesView, [
- {name: "bar", value: "baz"}
- ], {webconsole: hud});
- results[0].matchedProp.focus();
- EventUtils.synthesizeKey("VK_RETURN", variablesView.window);
- }
+ ok(!popup.isOpen, "Auto complete popup is hidden.");
+ ok(toolbox.splitConsole, "Split console is open after hiding the autocomplete popup.");
- function showAutoCompletePopoup() {
- let onPopupShown = jsterm.autocompletePopup.once("popup-opened");
-
- jsterm.focus();
- jsterm.setInputValue("document.location.");
- EventUtils.sendKey("TAB", hud.iframeWindow);
-
- return onPopupShown;
- }
+ info("Send ESCAPE key again and check that now closes the splitconsole");
+ let onSplitConsoleEvent = toolbox.once("split-console");
+ EventUtils.sendKey("ESCAPE", toolbox.win);
+ await onSplitConsoleEvent;
- function finish() {
- toolbox.destroy().then(() => {
- toolbox = null;
- hud = null;
- jsterm = null;
- hudMessages = null;
- variablesView = null;
-
- finishTest();
- });
- }
- }
+ ok(!toolbox.splitConsole, "Split console is hidden.");
+});