browser_search_history.js (1826B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 /** 5 * Tests the Search History option from the menubar starts Address Bar search 6 * mode for history. 7 */ 8 ChromeUtils.defineLazyGetter(this, "UrlbarTestUtils", () => { 9 const { UrlbarTestUtils: module } = ChromeUtils.importESModule( 10 "resource://testing-common/UrlbarTestUtils.sys.mjs" 11 ); 12 module.init(this); 13 return module; 14 }); 15 16 add_task(async function test_menu_search_history_with_window_open() { 17 info("Opening history menu"); 18 let searchHistoryMenuEntry = document.getElementById("menu_searchHistory"); 19 20 searchHistoryMenuEntry.doCommand(); 21 22 await isUrlbarInHistorySearchMode(window); 23 }); 24 25 add_task(async function test_menu_search_history_opens_new_window() { 26 let newWindowPromise = TestUtils.topicObserved( 27 "browser-delayed-startup-finished" 28 ); 29 30 info( 31 "Executing command in untracked browser window (simulating non-browser window)." 32 ); 33 BrowserWindowTracker.untrackForTestsOnly(window); 34 let searchHistoryMenuEntry = document.getElementById("menu_searchHistory"); 35 searchHistoryMenuEntry.doCommand(); 36 BrowserWindowTracker.track(window); 37 38 info("Waiting for new window to open."); 39 let [newWindow] = await newWindowPromise; 40 await isUrlbarInHistorySearchMode(newWindow); 41 await BrowserTestUtils.closeWindow(newWindow); 42 }); 43 44 async function isUrlbarInHistorySearchMode(targetWin) { 45 is( 46 targetWin, 47 BrowserWindowTracker.getTopWindow(), 48 "Target window is top window." 49 ); 50 await UrlbarTestUtils.promisePopupOpen(targetWin, () => {}); 51 52 // Verify URLBar is in search mode with correct restriction 53 let searchMode = targetWin.gURLBar.searchModeForToken("^"); 54 searchMode.entry = "historymenu"; 55 await UrlbarTestUtils.assertSearchMode(targetWin, searchMode); 56 }