Bug 1408917 - Rename, refactor and enable browser_webconsole_autocomplete_JSTerm_helpers.js in new console frontend; r=Honza. draft
authorNicolas Chevobbe <nchevobbe@mozilla.com>
Fri, 20 Oct 2017 09:40:54 +0200
changeset 683768 66a63445a74d1a069340c6be678408327b44d25d
parent 683767 c5594b4cdd77af89ac2201ded216a17322e00cd8
child 736722 a8a584947ca406914320d7ffe1162222e55ed229
push id85459
push userbmo:nchevobbe@mozilla.com
push dateFri, 20 Oct 2017 07:43:06 +0000
reviewersHonza
bugs1408917
milestone58.0a1
Bug 1408917 - Rename, refactor and enable browser_webconsole_autocomplete_JSTerm_helpers.js in new console frontend; r=Honza. MozReview-Commit-ID: 3TN6q63mnHp
devtools/client/webconsole/new-console-output/test/mochitest/browser.ini
devtools/client/webconsole/new-console-output/test/mochitest/browser_jsterm_autocomplete_helpers.js
devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_autocomplete_JSTerm_helpers.js
--- a/devtools/client/webconsole/new-console-output/test/mochitest/browser.ini
+++ b/devtools/client/webconsole/new-console-output/test/mochitest/browser.ini
@@ -191,16 +191,17 @@ skip-if = true # Bug 1406060
 [browser_console_webconsole_ctrlw_close_tab.js]
 skip-if = true # Bug 1406060
 [browser_console_webconsole_iframe_messages.js]
 skip-if = true # Bug 1406060
 [browser_console_webconsole_private_browsing.js]
 skip-if = true #	Bug 1403188
 # old console skip-if = e10s # Bug 1042253 - webconsole e10s tests
 [browser_jsterm_add_edited_input_to_history.js]
+[browser_jsterm_autocomplete_helpers.js]
 [browser_jsterm_autocomplete-properties-with-non-alphanumeric-names.js]
 [browser_jsterm_copy_command.js]
 skip-if = true
 subsuite = clipboard
 # old console skip-if = (os == 'linux' && bits == 32 && debug) # bug 1328915, disable linux32 debug devtools for timeouts
 [browser_jsterm_dollar.js]
 [browser_jsterm_history_persist.js]
 [browser_jsterm_inspect.js]
@@ -209,18 +210,16 @@ subsuite = clipboard
 [browser_jsterm_no_input_change_and_tab_key_pressed.js]
 [browser_netmonitor_shows_reqs_in_webconsole.js]
 [browser_webconsole_allow_mixedcontent_securityerrors.js]
 tags = mcb
 skip-if = true #	Bug 1403452
 # old console skip-if = (os == 'win' && bits == 64) # Bug 1390001
 [browser_webconsole_assert.js]
 skip-if = true #	Bug 1403458
-[browser_webconsole_autocomplete_JSTerm_helpers.js]
-skip-if = true # Bug 1408917
 [browser_webconsole_autocomplete_accessibility.js]
 skip-if = true # Bug 1408918
 [browser_webconsole_autocomplete_and_selfxss.js]
 subsuite = clipboard
 skip-if = true #	Bug 1404850
 # old console skip-if = (os == 'linux' && bits == 32 && debug) # bug 1328915, disable linux32 debug devtools for timeouts
 [browser_webconsole_autocomplete_crossdomain_iframe.js]
 skip-if = true # Bug 1408919
rename from devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_autocomplete_JSTerm_helpers.js
rename to devtools/client/webconsole/new-console-output/test/mochitest/browser_jsterm_autocomplete_helpers.js
--- a/devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_autocomplete_JSTerm_helpers.js
+++ b/devtools/client/webconsole/new-console-output/test/mochitest/browser_jsterm_autocomplete_helpers.js
@@ -1,77 +1,37 @@
 /* -*- 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/ */
 
 // Tests that the autocompletion results contain the names of JSTerm helpers.
+// See Bug 686937.
 
 "use strict";
 
-// See Bug 686937.
 
-const TEST_URI = "data:text/html;charset=utf8,<p>test JSTerm Helpers " +
-                 "autocomplete";
-
-var jsterm;
-
-add_task(function* () {
-  yield loadTab(TEST_URI);
-
-  let hud = yield openConsole();
-
-  jsterm = hud.jsterm;
-  let input = jsterm.inputNode;
-  let popup = jsterm.autocompletePopup;
-
-  // Test if 'i' gives 'inspect'
-  input.value = "i";
-  input.setSelectionRange(1, 1);
-  yield complete(jsterm.COMPLETE_HINT_ONLY);
-
-  let newItems = popup.getItems().map(function (e) {
-    return e.label;
-  });
-  ok(newItems.indexOf("inspect") > -1,
-     "autocomplete results contain helper 'inspect'");
+const TEST_URI = "data:text/html;charset=utf8,<p>test JSTerm Helpers autocomplete";
 
-  // Test if 'window.' does not give 'inspect'.
-  input.value = "window.";
-  input.setSelectionRange(7, 7);
-  yield complete(jsterm.COMPLETE_HINT_ONLY);
-
-  newItems = popup.getItems().map(function (e) {
-    return e.label;
-  });
-  is(newItems.indexOf("inspect"), -1,
-     "autocomplete results do not contain helper 'inspect'");
-
-  // Test if 'dump(i' gives 'inspect'
-  input.value = "dump(i";
-  input.setSelectionRange(6, 6);
-  yield complete(jsterm.COMPLETE_HINT_ONLY);
-
-  newItems = popup.getItems().map(function (e) {
-    return e.label;
-  });
-  ok(newItems.indexOf("inspect") > -1,
-     "autocomplete results contain helper 'inspect'");
-
-  // Test if 'window.dump(i' gives 'inspect'
-  input.value = "window.dump(i";
-  input.setSelectionRange(13, 13);
-  yield complete(jsterm.COMPLETE_HINT_ONLY);
-
-  newItems = popup.getItems().map(function (e) {
-    return e.label;
-  });
-  ok(newItems.indexOf("inspect") > -1,
-     "autocomplete results contain helper 'inspect'");
-
-  jsterm = null;
+add_task(async function () {
+  const {jsterm} = await openNewTabAndConsole(TEST_URI);
+  await testInspectAutoCompletion(jsterm, "i", true);
+  await testInspectAutoCompletion(jsterm, "window.", false);
+  await testInspectAutoCompletion(jsterm, "dump(i", true);
+  await testInspectAutoCompletion(jsterm, "window.dump(i", true);
 });
 
-function complete(type) {
-  let updated = jsterm.once("autocomplete-updated");
-  jsterm.complete(type);
+async function testInspectAutoCompletion(jsterm, inputValue, expectInspect) {
+  jsterm.setInputValue(inputValue);
+  await complete(jsterm);
+  is(getPopupItemsLabel(jsterm.autocompletePopup).includes("inspect"), expectInspect,
+    `autocomplete results${expectInspect ? "" : " does not"} contain helper 'inspect'`);
+}
+
+function complete(jsterm) {
+  const updated = jsterm.once("autocomplete-updated");
+  jsterm.complete(jsterm.COMPLETE_HINT_ONLY);
   return updated;
 }
+
+function getPopupItemsLabel(popup) {
+  return popup.getItems().map(item => item.label);
+}
\ No newline at end of file