60 lines
1.8 KiB
JavaScript
60 lines
1.8 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
/**
|
|
* Tests the Search Bookmarks option from the menubar starts Address Bar search
|
|
* mode for bookmarks.
|
|
*/
|
|
ChromeUtils.defineLazyGetter(this, "UrlbarTestUtils", () => {
|
|
const { UrlbarTestUtils: module } = ChromeUtils.importESModule(
|
|
"resource://testing-common/UrlbarTestUtils.sys.mjs"
|
|
);
|
|
module.init(this);
|
|
return module;
|
|
});
|
|
|
|
add_task(async function test_menu_search_bookmarks_with_window_open() {
|
|
info("Opening bookmarks menu");
|
|
let searchBookmarksMenuEntry = document.getElementById(
|
|
"menu_searchBookmarks"
|
|
);
|
|
|
|
searchBookmarksMenuEntry.doCommand();
|
|
|
|
await isUrlbarInBookmarksSearchMode(window);
|
|
});
|
|
|
|
add_task(async function test_menu_search_bookmarks_opens_new_window() {
|
|
let newWindowPromise = TestUtils.topicObserved(
|
|
"browser-delayed-startup-finished"
|
|
);
|
|
|
|
info(
|
|
"Executing command in untracked browser window (simulating non-browser window)."
|
|
);
|
|
BrowserWindowTracker.untrackForTestsOnly(window);
|
|
let searchBookmarksMenuEntry = document.getElementById(
|
|
"menu_searchBookmarks"
|
|
);
|
|
searchBookmarksMenuEntry.doCommand();
|
|
BrowserWindowTracker.track(window);
|
|
|
|
info("Waiting for new window to open.");
|
|
let [newWindow] = await newWindowPromise;
|
|
await isUrlbarInBookmarksSearchMode(newWindow);
|
|
await BrowserTestUtils.closeWindow(newWindow);
|
|
});
|
|
|
|
async function isUrlbarInBookmarksSearchMode(targetWin) {
|
|
is(
|
|
targetWin,
|
|
BrowserWindowTracker.getTopWindow(),
|
|
"Target window is top window."
|
|
);
|
|
await UrlbarTestUtils.promisePopupOpen(targetWin, () => {});
|
|
|
|
// Verify URLBar is in search mode with correct restriction
|
|
let searchMode = UrlbarUtils.searchModeForToken("*");
|
|
searchMode.entry = "bookmarkmenu";
|
|
await UrlbarTestUtils.assertSearchMode(targetWin, searchMode);
|
|
}
|