browser_urlbarSearchMode.js (1704B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 /** 5 * This test makes sure that the urlbar's search mode is correctly preserved. 6 */ 7 8 ChromeUtils.defineESModuleGetters(this, { 9 UrlbarUtils: "moz-src:///browser/components/urlbar/UrlbarUtils.sys.mjs", 10 }); 11 12 ChromeUtils.defineLazyGetter(this, "UrlbarTestUtils", () => { 13 const { UrlbarTestUtils: module } = ChromeUtils.importESModule( 14 "resource://testing-common/UrlbarTestUtils.sys.mjs" 15 ); 16 module.init(this); 17 return module; 18 }); 19 20 add_task(async function test() { 21 await SpecialPowers.pushPrefEnv({ 22 set: [["browser.urlbar.scotchBonnet.enableOverride", false]], 23 }); 24 // Open the urlbar view and enter search mode. 25 await UrlbarTestUtils.promiseAutocompleteResultPopup({ 26 window, 27 value: "test", 28 }); 29 await UrlbarTestUtils.enterSearchMode(window, { 30 source: UrlbarUtils.RESULT_SOURCE.HISTORY, 31 }); 32 33 // The search mode should be in the tab state. 34 let state = JSON.parse(ss.getTabState(gBrowser.selectedTab)); 35 Assert.ok( 36 "searchMode" in state, 37 "state.searchMode is present after entering search mode" 38 ); 39 Assert.deepEqual( 40 state.searchMode, 41 { 42 source: UrlbarUtils.RESULT_SOURCE.HISTORY, 43 entry: "oneoff", 44 isPreview: false, 45 }, 46 "state.searchMode is correct" 47 ); 48 49 // Exit search mode. 50 await UrlbarTestUtils.exitSearchMode(window); 51 52 // The search mode should not be in the tab state. 53 let newState = JSON.parse(ss.getTabState(gBrowser.selectedTab)); 54 Assert.ok( 55 !newState.searchMode, 56 "state.searchMode is not present after exiting search mode" 57 ); 58 59 await UrlbarTestUtils.promisePopupClose(window); 60 });