summaryrefslogtreecommitdiffstats
path: root/docshell/test/browser/browser_search_notification.js
diff options
context:
space:
mode:
Diffstat (limited to 'docshell/test/browser/browser_search_notification.js')
-rw-r--r--docshell/test/browser/browser_search_notification.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/docshell/test/browser/browser_search_notification.js b/docshell/test/browser/browser_search_notification.js
new file mode 100644
index 0000000000..abb9330467
--- /dev/null
+++ b/docshell/test/browser/browser_search_notification.js
@@ -0,0 +1,55 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+add_task(async function() {
+ // Our search would be handled by the urlbar normally and not by the docshell,
+ // thus we must force going through dns first, so that the urlbar thinks
+ // the value may be a url, and asks the docshell to visit it.
+ // On NS_ERROR_UNKNOWN_HOST the docshell will fix it up.
+ await SpecialPowers.pushPrefEnv({
+ set: [["browser.fixup.dns_first_for_single_words", true]],
+ });
+ const kSearchEngineID = "test_urifixup_search_engine";
+ const kSearchEngineURL = "http://localhost/?search={searchTerms}";
+ await Services.search.addEngineWithDetails(kSearchEngineID, {
+ method: "get",
+ template: kSearchEngineURL,
+ });
+
+ let oldDefaultEngine = await Services.search.getDefault();
+ await Services.search.setDefault(
+ Services.search.getEngineByName(kSearchEngineID)
+ );
+
+ let selectedName = (await Services.search.getDefault()).name;
+ Assert.equal(
+ selectedName,
+ kSearchEngineID,
+ "Check fake search engine is selected"
+ );
+
+ registerCleanupFunction(async function() {
+ if (oldDefaultEngine) {
+ await Services.search.setDefault(oldDefaultEngine);
+ }
+ let engine = Services.search.getEngineByName(kSearchEngineID);
+ if (engine) {
+ await Services.search.removeEngine(engine);
+ }
+ });
+
+ let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
+ gBrowser.selectedTab = tab;
+
+ gURLBar.value = "firefox";
+ gURLBar.handleCommand();
+
+ let [subject, data] = await TestUtils.topicObserved("keyword-search");
+
+ let engine = Services.search.defaultEngine;
+ Assert.ok(engine, "Have default search engine.");
+ Assert.equal(engine, subject, "Notification subject is engine.");
+ Assert.equal(data, "firefox", "Notification data is search term.");
+
+ gBrowser.removeTab(tab);
+});