browser_search.js (3152B)
1 /* Any copyright is dedicated to the Public Domain. 2 https://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 const CANONIZE_MODIFIERS = 7 AppConstants.platform == "macosx" ? { metaKey: true } : { ctrlKey: true }; 8 9 let searchbar = document.getElementById("searchbar-new"); 10 let defaultEngine; 11 12 add_setup(async function () { 13 await SearchTestUtils.updateRemoteSettingsConfig([{ identifier: "engine" }]); 14 defaultEngine = Services.search.defaultEngine; 15 }); 16 17 add_task(async function test_simple() { 18 // This pref should not affect the searchbar. 19 SpecialPowers.pushPrefEnv({ 20 set: [["browser.urlbar.openintab", true]], 21 }); 22 23 let searchTerm = "test"; 24 searchbar.focus(); 25 EventUtils.sendString(searchTerm); 26 EventUtils.synthesizeKey("KEY_Enter"); 27 await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser); 28 29 let expectedUrl = defaultEngine.getSubmission(searchTerm).uri.spec; 30 Assert.equal(gBrowser.currentURI.spec, expectedUrl, "Search successful"); 31 Assert.equal(searchbar.value, searchTerm, "Search term was persisted"); 32 33 searchbar.value = ""; 34 SpecialPowers.popPrefEnv(); 35 }); 36 37 add_task(async function test_no_canonization() { 38 let searchTerm = "test2"; 39 searchbar.focus(); 40 EventUtils.sendString(searchTerm); 41 EventUtils.synthesizeKey("KEY_Enter", CANONIZE_MODIFIERS); 42 await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser); 43 44 let expectedUrl = defaultEngine.getSubmission(searchTerm).uri.spec; 45 Assert.equal(gBrowser.currentURI.spec, expectedUrl, "Search successful"); 46 Assert.equal(searchbar.value, searchTerm, "Search term was persisted"); 47 searchbar.value = ""; 48 }); 49 50 add_task(async function test_newtab_alt() { 51 let searchTerm = "test3"; 52 let expectedUrl = defaultEngine.getSubmission(searchTerm).uri.spec; 53 54 searchbar.focus(); 55 EventUtils.sendString(searchTerm); 56 57 let newTabPromise = BrowserTestUtils.waitForNewTab(gBrowser); 58 EventUtils.synthesizeKey("KEY_Enter", { altKey: true }); 59 let newTab = await newTabPromise; 60 let newBrowser = gBrowser.getBrowserForTab(newTab); 61 62 Assert.equal(gBrowser.selectedBrowser, newBrowser, "Opened in foreground"); 63 Assert.equal(newBrowser.currentURI.spec, expectedUrl, "Search successful"); 64 Assert.equal(searchbar.value, searchTerm, "Search term was persisted"); 65 66 searchbar.value = ""; 67 BrowserTestUtils.removeTab(newTab); 68 }); 69 70 add_task(async function test_newtab_pref() { 71 SpecialPowers.pushPrefEnv({ 72 set: [["browser.search.openintab", true]], 73 }); 74 let searchTerm = "test4"; 75 let expectedUrl = defaultEngine.getSubmission(searchTerm).uri.spec; 76 77 searchbar.focus(); 78 EventUtils.sendString(searchTerm); 79 80 let newTabPromise = BrowserTestUtils.waitForNewTab(gBrowser); 81 EventUtils.synthesizeKey("KEY_Enter"); 82 let newTab = await newTabPromise; 83 let newBrowser = gBrowser.getBrowserForTab(newTab); 84 85 Assert.equal(gBrowser.selectedBrowser, newBrowser, "Opened in foreground"); 86 Assert.equal(newBrowser.currentURI.spec, expectedUrl, "Search successful"); 87 Assert.equal(searchbar.value, searchTerm, "Search term was persisted"); 88 89 searchbar.value = ""; 90 BrowserTestUtils.removeTab(newTab); 91 SpecialPowers.popPrefEnv(); 92 });