summaryrefslogtreecommitdiffstats
path: root/browser/components/urlbar/tests/engagementTelemetry/browser/head-interaction.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/urlbar/tests/engagementTelemetry/browser/head-interaction.js')
-rw-r--r--browser/components/urlbar/tests/engagementTelemetry/browser/head-interaction.js238
1 files changed, 238 insertions, 0 deletions
diff --git a/browser/components/urlbar/tests/engagementTelemetry/browser/head-interaction.js b/browser/components/urlbar/tests/engagementTelemetry/browser/head-interaction.js
new file mode 100644
index 0000000000..6bc0fd3b0e
--- /dev/null
+++ b/browser/components/urlbar/tests/engagementTelemetry/browser/head-interaction.js
@@ -0,0 +1,238 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/* import-globals-from head.js */
+
+async function doTopsitesTest({ trigger, assert }) {
+ await doTest(async browser => {
+ await addTopSites("https://example.com/");
+
+ await showResultByArrowDown();
+ await selectRowByURL("https://example.com/");
+
+ await trigger();
+ await assert();
+ });
+}
+
+async function doTypedTest({ trigger, assert }) {
+ await doTest(async browser => {
+ await openPopup("x");
+
+ await trigger();
+ await assert();
+ });
+}
+
+async function doTypedWithResultsPopupTest({ trigger, assert }) {
+ await doTest(async browser => {
+ await showResultByArrowDown();
+ EventUtils.synthesizeKey("x");
+ await UrlbarTestUtils.promiseSearchComplete(window);
+
+ await trigger();
+ await assert();
+ });
+}
+
+async function doPastedTest({ trigger, assert }) {
+ await doTest(async browser => {
+ await doPaste("www.example.com");
+
+ await trigger();
+ await assert();
+ });
+}
+
+async function doPastedWithResultsPopupTest({ trigger, assert }) {
+ await doTest(async browser => {
+ await showResultByArrowDown();
+ await doPaste("x");
+
+ await trigger();
+ await assert();
+ });
+}
+
+async function doReturnedRestartedRefinedTest({ trigger, assert }) {
+ const testData = [
+ {
+ firstInput: "x",
+ // Just move the focus to the URL bar after blur.
+ secondInput: null,
+ expected: "returned",
+ },
+ {
+ firstInput: "x",
+ secondInput: "x",
+ expected: "returned",
+ },
+ {
+ firstInput: "x",
+ secondInput: "y",
+ expected: "restarted",
+ },
+ {
+ firstInput: "x",
+ secondInput: "x y",
+ expected: "refined",
+ },
+ {
+ firstInput: "x y",
+ secondInput: "x",
+ expected: "refined",
+ },
+ ];
+
+ for (const { firstInput, secondInput, expected } of testData) {
+ await doTest(async browser => {
+ await openPopup(firstInput);
+ await waitForPauseImpression();
+ await doBlur();
+
+ await UrlbarTestUtils.promisePopupOpen(window, () => {
+ document.getElementById("Browser:OpenLocation").doCommand();
+ });
+ if (secondInput) {
+ for (let i = 0; i < secondInput.length; i++) {
+ EventUtils.synthesizeKey(secondInput.charAt(i));
+ }
+ }
+ await UrlbarTestUtils.promiseSearchComplete(window);
+
+ await trigger();
+ await assert(expected);
+ });
+ }
+}
+
+async function doPersistedSearchTermsTest({ trigger, assert }) {
+ await doTest(async browser => {
+ await openPopup("x");
+ await waitForPauseImpression();
+ await doEnter();
+
+ await openPopup("x");
+
+ await trigger();
+ await assert();
+ });
+}
+
+async function doPersistedSearchTermsRestartedRefinedTest({
+ enabled,
+ trigger,
+ assert,
+}) {
+ const testData = [
+ {
+ firstInput: "x",
+ // Just move the focus to the URL bar after engagement.
+ secondInput: null,
+ expected: enabled ? "persisted_search_terms" : "topsites",
+ },
+ {
+ firstInput: "x",
+ secondInput: "x",
+ expected: enabled ? "persisted_search_terms" : "typed",
+ },
+ {
+ firstInput: "x",
+ secondInput: "y",
+ expected: enabled ? "persisted_search_terms_restarted" : "typed",
+ },
+ {
+ firstInput: "x",
+ secondInput: "x y",
+ expected: enabled ? "persisted_search_terms_refined" : "typed",
+ },
+ {
+ firstInput: "x y",
+ secondInput: "x",
+ expected: enabled ? "persisted_search_terms_refined" : "typed",
+ },
+ ];
+
+ for (const { firstInput, secondInput, expected } of testData) {
+ await doTest(async browser => {
+ await openPopup(firstInput);
+ await waitForPauseImpression();
+ await doEnter();
+
+ await UrlbarTestUtils.promisePopupOpen(window, () => {
+ EventUtils.synthesizeKey("l", { accelKey: true });
+ });
+ if (secondInput) {
+ for (let i = 0; i < secondInput.length; i++) {
+ EventUtils.synthesizeKey(secondInput.charAt(i));
+ }
+ }
+ await UrlbarTestUtils.promiseSearchComplete(window);
+
+ await trigger();
+ await assert(expected);
+ });
+ }
+}
+
+async function doPersistedSearchTermsRestartedRefinedViaAbandonmentTest({
+ enabled,
+ trigger,
+ assert,
+}) {
+ const testData = [
+ {
+ firstInput: "x",
+ // Just move the focus to the URL bar after blur.
+ secondInput: null,
+ expected: enabled ? "persisted_search_terms" : "returned",
+ },
+ {
+ firstInput: "x",
+ secondInput: "x",
+ expected: enabled ? "persisted_search_terms" : "returned",
+ },
+ {
+ firstInput: "x",
+ secondInput: "y",
+ expected: enabled ? "persisted_search_terms_restarted" : "restarted",
+ },
+ {
+ firstInput: "x",
+ secondInput: "x y",
+ expected: enabled ? "persisted_search_terms_refined" : "refined",
+ },
+ {
+ firstInput: "x y",
+ secondInput: "x",
+ expected: enabled ? "persisted_search_terms_refined" : "refined",
+ },
+ ];
+
+ for (const { firstInput, secondInput, expected } of testData) {
+ await doTest(async browser => {
+ await openPopup("any search");
+ await waitForPauseImpression();
+ await doEnter();
+
+ await openPopup(firstInput);
+ await waitForPauseImpression();
+ await doBlur();
+
+ await UrlbarTestUtils.promisePopupOpen(window, () => {
+ EventUtils.synthesizeKey("l", { accelKey: true });
+ });
+ if (secondInput) {
+ for (let i = 0; i < secondInput.length; i++) {
+ EventUtils.synthesizeKey(secondInput.charAt(i));
+ }
+ }
+ await UrlbarTestUtils.promiseSearchComplete(window);
+
+ await trigger();
+ await assert(expected);
+ });
+ }
+}