summaryrefslogtreecommitdiffstats
path: root/browser/components/urlbar/tests/browser/browser_autocomplete_edit_completed.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/urlbar/tests/browser/browser_autocomplete_edit_completed.js')
-rw-r--r--browser/components/urlbar/tests/browser/browser_autocomplete_edit_completed.js75
1 files changed, 75 insertions, 0 deletions
diff --git a/browser/components/urlbar/tests/browser/browser_autocomplete_edit_completed.js b/browser/components/urlbar/tests/browser/browser_autocomplete_edit_completed.js
new file mode 100644
index 0000000000..c17949eb9e
--- /dev/null
+++ b/browser/components/urlbar/tests/browser/browser_autocomplete_edit_completed.js
@@ -0,0 +1,75 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Tests selecting a result, and editing the value of that autocompleted result.
+ */
+
+add_task(async function () {
+ await PlacesUtils.history.clear();
+
+ await PlacesTestUtils.addVisits([
+ { uri: makeURI("http://example.com/foo") },
+ { uri: makeURI("http://example.com/foo/bar") },
+ ]);
+
+ let tab = await BrowserTestUtils.openNewForegroundTab(
+ gBrowser,
+ "about:blank"
+ );
+ registerCleanupFunction(async function () {
+ BrowserTestUtils.removeTab(tab);
+ await PlacesUtils.history.clear();
+ });
+
+ await UrlbarTestUtils.promiseAutocompleteResultPopup({
+ window,
+ value: "http://example.com",
+ });
+
+ const initialIndex = UrlbarTestUtils.getSelectedRowIndex(window);
+
+ info("Key Down to select the next item.");
+ EventUtils.synthesizeKey("KEY_ArrowDown");
+
+ let nextIndex = initialIndex + 1;
+ let nextResult = await UrlbarTestUtils.getDetailsOfResultAt(
+ window,
+ nextIndex
+ );
+ Assert.equal(
+ UrlbarTestUtils.getSelectedRowIndex(window),
+ nextIndex,
+ "Should have selected the next item"
+ );
+ Assert.equal(
+ gURLBar.untrimmedValue,
+ nextResult.url,
+ "Should have completed the URL"
+ );
+
+ info("Press backspace");
+ EventUtils.synthesizeKey("KEY_Backspace");
+ await UrlbarTestUtils.promiseSearchComplete(window);
+
+ let editedValue = gURLBar.value;
+ Assert.equal(
+ UrlbarTestUtils.getSelectedRowIndex(window),
+ initialIndex,
+ "Should have selected the initialIndex again"
+ );
+ Assert.notEqual(editedValue, nextResult.url, "The URL has changed.");
+
+ let docLoad = BrowserTestUtils.waitForDocLoadAndStopIt(
+ "http://" + editedValue,
+ gBrowser.selectedBrowser
+ );
+
+ info("Press return to load edited URL.");
+
+ await UrlbarTestUtils.promisePopupClose(window, () => {
+ EventUtils.synthesizeKey("KEY_Enter");
+ });
+
+ await docLoad;
+});