diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /browser/base/content/test/menubar | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
4 files changed, 74 insertions, 0 deletions
diff --git a/browser/base/content/test/menubar/.eslintrc.js b/browser/base/content/test/menubar/.eslintrc.js new file mode 100644 index 0000000000..1779fd7f1c --- /dev/null +++ b/browser/base/content/test/menubar/.eslintrc.js @@ -0,0 +1,5 @@ +"use strict"; + +module.exports = { + extends: ["plugin:mozilla/browser-test"], +}; diff --git a/browser/base/content/test/menubar/browser.ini b/browser/base/content/test/menubar/browser.ini new file mode 100644 index 0000000000..0b904f9802 --- /dev/null +++ b/browser/base/content/test/menubar/browser.ini @@ -0,0 +1,5 @@ +[DEFAULT] + +[browser_file_menu_import_wizard.js] +[browser_window_menu_list.js] +skip-if = os != "mac" # Mac only feature diff --git a/browser/base/content/test/menubar/browser_file_menu_import_wizard.js b/browser/base/content/test/menubar/browser_file_menu_import_wizard.js new file mode 100644 index 0000000000..67b8cf6c0b --- /dev/null +++ b/browser/base/content/test/menubar/browser_file_menu_import_wizard.js @@ -0,0 +1,19 @@ +add_task(async function file_menu_import_wizard() { + // We can't call this code directly or our JS execution will get blocked on Windows/Linux where + // the dialog is modal. + executeSoon(() => + document.getElementById("menu_importFromAnotherBrowser").doCommand() + ); + + await TestUtils.waitForCondition(() => { + let win = Services.wm.getMostRecentWindow("Browser:MigrationWizard"); + return win && win.document && win.document.readyState == "complete"; + }, "Migrator window loaded"); + + let migratorWindow = Services.wm.getMostRecentWindow( + "Browser:MigrationWizard" + ); + ok(migratorWindow, "Migrator window opened"); + + await BrowserTestUtils.closeWindow(migratorWindow); +}); diff --git a/browser/base/content/test/menubar/browser_window_menu_list.js b/browser/base/content/test/menubar/browser_window_menu_list.js new file mode 100644 index 0000000000..0e4e64d30f --- /dev/null +++ b/browser/base/content/test/menubar/browser_window_menu_list.js @@ -0,0 +1,45 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +add_task(async function test_window_menu_list() { + // This title is different depending on the build. For example, it's "Nightly" + // for a local build, "Mozilla Firefox" for an official release build. + const windowTitle = window.document.title; + await checkWindowMenu([windowTitle, "Browser chrome tests"]); + let newWindow = await BrowserTestUtils.openNewBrowserWindow(); + await checkWindowMenu([windowTitle, "Browser chrome tests", windowTitle]); + await BrowserTestUtils.closeWindow(newWindow); +}); + +async function checkWindowMenu(labels) { + let menu = document.querySelector("#windowMenu"); + // We can't toggle menubar items on OSX, so mocking instead. + await new Promise(resolve => { + menu.addEventListener("popupshown", resolve, { once: true }); + menu.dispatchEvent(new MouseEvent("popupshowing")); + menu.dispatchEvent(new MouseEvent("popupshown")); + }); + + let menuitems = [...menu.querySelectorAll("menuseparator ~ menuitem")]; + is(menuitems.length, labels.length, "Correct number of windows in the menu"); + is( + menuitems.map(item => item.label).join(","), + labels.join(","), + "Correct labels on menuitems" + ); + for (let menuitem of menuitems) { + ok( + menuitem instanceof customElements.get("menuitem"), + "sibling is menuitem" + ); + } + + // We can't toggle menubar items on OSX, so mocking instead. + await new Promise(resolve => { + menu.addEventListener("popuphidden", resolve, { once: true }); + menu.dispatchEvent(new MouseEvent("popuphiding")); + menu.dispatchEvent(new MouseEvent("popuphidden")); + }); +} |