Bug 1405647 - enable browser_webconsole_split_escape_key.js;r=Honza draft
authorJulian Descottes <jdescottes@mozilla.com>
Fri, 09 Feb 2018 17:49:19 +0100
changeset 755581 7f531efefe144c263fd3cdb32328ca291074e98b
parent 755533 9b69cc60e5848f2f8802c911fd00771b50eed41f
child 755582 bf9d34dca74a5b7e843e5d0d4a28115f8b7232e0
push id99197
push userjdescottes@mozilla.com
push dateThu, 15 Feb 2018 14:01:32 +0000
reviewersHonza
bugs1405647
milestone60.0a1
Bug 1405647 - enable browser_webconsole_split_escape_key.js;r=Honza MozReview-Commit-ID: 2p5VNzKhwo2
devtools/client/webconsole/new-console-output/test/mochitest/browser.ini
devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_split_escape_key.js
--- 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.");
+});