summaryrefslogtreecommitdiffstats
path: root/browser/components/urlbar/tests/browser/browser_result_onSelection.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/urlbar/tests/browser/browser_result_onSelection.js')
-rw-r--r--browser/components/urlbar/tests/browser/browser_result_onSelection.js67
1 files changed, 67 insertions, 0 deletions
diff --git a/browser/components/urlbar/tests/browser/browser_result_onSelection.js b/browser/components/urlbar/tests/browser/browser_result_onSelection.js
new file mode 100644
index 0000000000..18c16a3072
--- /dev/null
+++ b/browser/components/urlbar/tests/browser/browser_result_onSelection.js
@@ -0,0 +1,67 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+add_task(async function test() {
+ let results = [
+ new UrlbarResult(
+ UrlbarUtils.RESULT_TYPE.URL,
+ UrlbarUtils.RESULT_SOURCE.HISTORY,
+ { url: "http://mozilla.org/1" }
+ ),
+ new UrlbarResult(
+ UrlbarUtils.RESULT_TYPE.URL,
+ UrlbarUtils.RESULT_SOURCE.HISTORY,
+ { url: "http://mozilla.org/2" }
+ ),
+ new UrlbarResult(
+ UrlbarUtils.RESULT_TYPE.TIP,
+ UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
+ {
+ helpUrl: "http://example.com/",
+ type: "test",
+ titleL10n: { id: "urlbar-search-tips-confirm" },
+ buttons: [
+ {
+ url: "http://example.com/",
+ l10n: { id: "urlbar-search-tips-confirm" },
+ },
+ ],
+ }
+ ),
+ ];
+
+ results[0].heuristic = true;
+
+ let selectionCount = 0;
+ let provider = new UrlbarTestUtils.TestProvider({
+ results,
+ priority: 1,
+ onSelection: (result, element) => {
+ selectionCount++;
+ },
+ });
+ UrlbarProvidersManager.registerProvider(provider);
+
+ await UrlbarTestUtils.promiseAutocompleteResultPopup({
+ window,
+ value: "test",
+ });
+
+ EventUtils.synthesizeKey("KEY_Tab", {
+ repeat: UrlbarPrefs.get("resultMenu") ? 5 : 3,
+ });
+ EventUtils.synthesizeKey("KEY_ArrowDown");
+ ok(
+ UrlbarTestUtils.getOneOffSearchButtons(window).selectedButton,
+ "a one off button is selected"
+ );
+
+ Assert.equal(
+ selectionCount,
+ UrlbarPrefs.get("resultMenu") ? 6 : 4,
+ "Number of elements selected in the view."
+ );
+ UrlbarProvidersManager.unregisterProvider(provider);
+});