summaryrefslogtreecommitdiffstats
path: root/browser/components/urlbar/tests/browser/browser_autoFill_canonize.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/urlbar/tests/browser/browser_autoFill_canonize.js')
-rw-r--r--browser/components/urlbar/tests/browser/browser_autoFill_canonize.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/browser/components/urlbar/tests/browser/browser_autoFill_canonize.js b/browser/components/urlbar/tests/browser/browser_autoFill_canonize.js
new file mode 100644
index 0000000000..af6a2eb08b
--- /dev/null
+++ b/browser/components/urlbar/tests/browser/browser_autoFill_canonize.js
@@ -0,0 +1,62 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/* This test ensures that pressing ctrl+enter bypasses the autoFilled
+ * value, and only considers what the user typed (but not just enter).
+ */
+
+async function test_autocomplete(data) {
+ let { desc, typed, autofilled, modified, waitForUrl, keys } = data;
+ info(desc);
+
+ await UrlbarTestUtils.promiseAutocompleteResultPopup({
+ window,
+ value: typed,
+ });
+ Assert.equal(gURLBar.value, autofilled, "autofilled value is as expected");
+
+ let promiseLoad = BrowserTestUtils.waitForDocLoadAndStopIt(
+ waitForUrl,
+ gBrowser.selectedBrowser
+ );
+
+ keys.forEach(([key, mods]) => EventUtils.synthesizeKey(key, mods));
+
+ Assert.equal(gURLBar.value, modified, "value is as expected");
+
+ await promiseLoad;
+ gURLBar.blur();
+}
+
+add_task(async function () {
+ registerCleanupFunction(async function () {
+ Services.prefs.clearUserPref("browser.urlbar.autoFill");
+ gURLBar.handleRevert();
+ await PlacesUtils.history.clear();
+ });
+ Services.prefs.setBoolPref("browser.urlbar.autoFill", true);
+
+ // Add a typed visit, so it will be autofilled.
+ await PlacesTestUtils.addVisits({
+ uri: "http://example.com/",
+ transition: Ci.nsINavHistoryService.TRANSITION_TYPED,
+ });
+
+ await test_autocomplete({
+ desc: "CTRL+ENTER on the autofilled part should use autofill",
+ typed: "exam",
+ autofilled: "example.com/",
+ modified: "example.com",
+ waitForUrl: "http://example.com/",
+ keys: [["KEY_Enter"]],
+ });
+
+ await test_autocomplete({
+ desc: "CTRL+ENTER on the autofilled part should bypass autofill",
+ typed: "exam",
+ autofilled: "example.com/",
+ modified: "https://www.exam.com",
+ waitForUrl: "https://www.exam.com/",
+ keys: [["KEY_Enter", { ctrlKey: true }]],
+ });
+});