Bug 1408924 - Rename and enable browser_webconsole_cached_autocomplete.js in the new console frontend; r=Honza.
MozReview-Commit-ID: GiaKsuxfrKr
--- a/devtools/client/webconsole/new-console-output/test/mochitest/browser.ini
+++ b/devtools/client/webconsole/new-console-output/test/mochitest/browser.ini
@@ -192,16 +192,17 @@ 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_accessibility.js]
[browser_jsterm_add_edited_input_to_history.js]
[browser_jsterm_autocomplete_array_no_index.js]
+[browser_jsterm_autocomplete_cached_results.js]
[browser_jsterm_autocomplete_escape_key.js]
[browser_jsterm_autocomplete_helpers.js]
[browser_jsterm_autocomplete_inside_text.js]
[browser_jsterm_autocomplete_nav_and_tab_key.js]
[browser_jsterm_autocomplete_return_key_no_selection.js]
[browser_jsterm_autocomplete_return_key.js]
[browser_jsterm_autocomplete-properties-with-non-alphanumeric-names.js]
[browser_jsterm_copy_command.js]
@@ -226,18 +227,16 @@ skip-if = true # Bug 1404850
skip-if = true # Bug 1408919
[browser_webconsole_autocomplete_in_debugger_stackframe.js]
skip-if = true # Bug 1408920
[browser_webconsole_batching.js]
[browser_webconsole_block_mixedcontent_securityerrors.js]
tags = mcb
skip-if = true # Bug 1403899
# old console skip-if = (os == 'win' && bits == 64) # Bug 1390001
-[browser_webconsole_cached_autocomplete.js]
-skip-if = true # Bug 1408924
[browser_webconsole_cached_messages.js]
skip-if = true # Bug 1406069
[browser_webconsole_cd_iframe.js]
skip-if = true # Bug 1406030
[browser_webconsole_certificate_messages.js]
skip-if = true # Bug 1408925
# old console skip-if = e10s # Bug 1042253 - webconsole tests disabled with e10s
[browser_webconsole_charset.js]
rename from devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_cached_autocomplete.js
rename to devtools/client/webconsole/new-console-output/test/mochitest/browser_jsterm_autocomplete_cached_results.js
--- a/devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_cached_autocomplete.js
+++ b/devtools/client/webconsole/new-console-output/test/mochitest/browser_jsterm_autocomplete_cached_results.js
@@ -3,112 +3,78 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
// Tests that the cached autocomplete results are used when the new
// user input is a subset of the existing completion results.
"use strict";
-const TEST_URI = "data:text/html;charset=utf8,<p>test cached autocompletion " +
- "results";
-
-var jsterm;
+const TEST_URI = "data:text/html;charset=utf8,<p>test cached autocompletion results";
-add_task(function* () {
- yield loadTab(TEST_URI);
+add_task(async function () {
+ let { jsterm } = await openNewTabAndConsole(TEST_URI);
+ const {
+ autocompletePopup: popup,
+ completeNode,
+ inputNode: input,
+ } = jsterm;
- let hud = yield openConsole();
-
- jsterm = hud.jsterm;
- let input = jsterm.inputNode;
- let popup = jsterm.autocompletePopup;
+ const jstermComplete = (value, delta) => complete(jsterm, input, value, delta);
// Test if 'doc' gives 'document'
- input.value = "doc";
- input.setSelectionRange(3, 3);
- yield complete(jsterm.COMPLETE_HINT_ONLY);
-
+ await jstermComplete("doc");
is(input.value, "doc", "'docu' completion (input.value)");
- is(jsterm.completeNode.value, " ument", "'docu' completion (completeNode)");
+ is(completeNode.value, " ument", "'docu' completion (completeNode)");
// Test typing 'window.'.
- input.value = "window.";
- input.setSelectionRange(7, 7);
- yield complete(jsterm.COMPLETE_HINT_ONLY);
-
+ await jstermComplete("window.");
ok(popup.getItems().length > 0, "'window.' gave a list of suggestions");
- yield jsterm.execute("window.docfoobar = true");
+ await jsterm.execute("window.docfoobar = true");
// Test typing 'window.doc'.
- input.value = "window.doc";
- input.setSelectionRange(10, 10);
- yield complete(jsterm.COMPLETE_HINT_ONLY);
-
- let newItems = popup.getItems();
- ok(newItems.every(function (item) {
- return item.label != "docfoobar";
- }), "autocomplete cached results do not contain docfoobar. list has not " +
- "been updated");
+ await jstermComplete("window.doc");
+ ok(!getPopupLabels(popup).includes("docfoobar"),
+ "autocomplete cached results do not contain docfoobar. list has not been updated");
// Test that backspace does not cause a request to the server
- input.value = "window.do";
- input.setSelectionRange(9, 9);
- yield complete(jsterm.COMPLETE_HINT_ONLY);
+ await jstermComplete("window.do");
+ ok(!getPopupLabels(popup).includes("docfoobar"),
+ "autocomplete cached results do not contain docfoobar. list has not been updated");
- newItems = popup.getItems();
- ok(newItems.every(function (item) {
- return item.label != "docfoobar";
- }), "autocomplete cached results do not contain docfoobar. list has not " +
- "been updated");
-
- yield jsterm.execute("delete window.docfoobar");
+ await jsterm.execute("delete window.docfoobar");
// Test if 'window.getC' gives 'getComputedStyle'
- input.value = "window.";
- input.setSelectionRange(7, 7);
- yield complete(jsterm.COMPLETE_HINT_ONLY);
-
- input.value = "window.getC";
- input.setSelectionRange(11, 11);
- yield complete(jsterm.COMPLETE_HINT_ONLY);
-
- newItems = popup.getItems();
- ok(!newItems.every(function (item) {
- return item.label != "getComputedStyle";
- }), "autocomplete results do contain getComputedStyle");
+ await jstermComplete("window.");
+ await jstermComplete("window.getC");
+ ok(getPopupLabels(popup).includes("getComputedStyle"),
+ "autocomplete results do contain getComputedStyle");
// Test if 'dump(d' gives non-zero results
- input.value = "dump(d";
- input.setSelectionRange(6, 6);
- yield complete(jsterm.COMPLETE_HINT_ONLY);
-
+ await jstermComplete("dump(d");
ok(popup.getItems().length > 0, "'dump(d' gives non-zero results");
// Test that 'dump(window.)' works.
- input.value = "dump(window.)";
- input.setSelectionRange(12, 12);
- yield complete(jsterm.COMPLETE_HINT_ONLY);
+ await jstermComplete("dump(window.)", -1);
+ ok(popup.getItems().length > 0, "'dump(window.' gave a list of suggestions");
- yield jsterm.execute("window.docfoobar = true");
+ await jsterm.execute("window.docfoobar = true");
// Make sure 'dump(window.doc)' does not contain 'docfoobar'.
- input.value = "dump(window.doc)";
- input.setSelectionRange(15, 15);
- yield complete(jsterm.COMPLETE_HINT_ONLY);
-
- newItems = popup.getItems();
- ok(newItems.every(function (item) {
- return item.label != "docfoobar";
- }), "autocomplete cached results do not contain docfoobar. list has not " +
- "been updated");
-
- yield jsterm.execute("delete window.docfoobar");
-
- jsterm = null;
+ await jstermComplete("dump(window.doc)", -1);
+ ok(!getPopupLabels(popup).includes("docfoobar"),
+ "autocomplete cached results do not contain docfoobar. list has not been updated");
});
-function complete(type) {
- let updated = jsterm.once("autocomplete-updated");
- jsterm.complete(type);
+function complete(jsterm, input, value, caretIndexDelta = 0) {
+ input.value = value;
+ let index = value.length + caretIndexDelta;
+ input.setSelectionRange(index, index);
+
+ const updated = jsterm.once("autocomplete-updated");
+ jsterm.complete(jsterm.COMPLETE_HINT_ONLY);
return updated;
}
+
+function getPopupLabels(popup) {
+ return popup.getItems().map(item => item.label);
+}