browser_search_bookmarks.js (1871B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 /** 5 * Tests the Search Bookmarks option from the menubar starts Address Bar search 6 * mode for bookmarks. 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_bookmarks_with_window_open() { 17 info("Opening bookmarks menu"); 18 let searchBookmarksMenuEntry = document.getElementById( 19 "menu_searchBookmarks" 20 ); 21 22 searchBookmarksMenuEntry.doCommand(); 23 24 await isUrlbarInBookmarksSearchMode(window); 25 }); 26 27 add_task(async function test_menu_search_bookmarks_opens_new_window() { 28 let newWindowPromise = TestUtils.topicObserved( 29 "browser-delayed-startup-finished" 30 ); 31 32 info( 33 "Executing command in untracked browser window (simulating non-browser window)." 34 ); 35 BrowserWindowTracker.untrackForTestsOnly(window); 36 let searchBookmarksMenuEntry = document.getElementById( 37 "menu_searchBookmarks" 38 ); 39 searchBookmarksMenuEntry.doCommand(); 40 BrowserWindowTracker.track(window); 41 42 info("Waiting for new window to open."); 43 let [newWindow] = await newWindowPromise; 44 await isUrlbarInBookmarksSearchMode(newWindow); 45 await BrowserTestUtils.closeWindow(newWindow); 46 }); 47 48 async function isUrlbarInBookmarksSearchMode(targetWin) { 49 is( 50 targetWin, 51 BrowserWindowTracker.getTopWindow(), 52 "Target window is top window." 53 ); 54 await UrlbarTestUtils.promisePopupOpen(targetWin, () => {}); 55 56 // Verify URLBar is in search mode with correct restriction 57 let searchMode = targetWin.gURLBar.searchModeForToken("*"); 58 searchMode.entry = "bookmarkmenu"; 59 await UrlbarTestUtils.assertSearchMode(targetWin, searchMode); 60 }