From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../tests/browser/browser_quit_disabled.js | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 browser/components/tests/browser/browser_quit_disabled.js (limited to 'browser/components/tests/browser/browser_quit_disabled.js') diff --git a/browser/components/tests/browser/browser_quit_disabled.js b/browser/components/tests/browser/browser_quit_disabled.js new file mode 100644 index 0000000000..3b7e99a1bf --- /dev/null +++ b/browser/components/tests/browser/browser_quit_disabled.js @@ -0,0 +1,62 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +add_task(async function test_appMenu_quit_disabled() { + await SpecialPowers.pushPrefEnv({ + set: [["browser.quitShortcut.disabled", true]], + }); + + let win = await BrowserTestUtils.openNewBrowserWindow(); + let doc = win.document; + + let menuButton = doc.getElementById("PanelUI-menu-button"); + menuButton.click(); + await BrowserTestUtils.waitForEvent(win.PanelUI.mainView, "ViewShown"); + + let quitButton = doc.querySelector(`[key="key_quitApplication"]`); + is(quitButton, null, "No quit button with shortcut key"); + + await BrowserTestUtils.closeWindow(win); + + await SpecialPowers.popPrefEnv(); +}); + +add_task(async function test_quit_shortcut_disabled() { + async function testQuitShortcut(shouldQuit) { + let win = await BrowserTestUtils.openNewBrowserWindow(); + + let quitRequested = false; + let observer = { + observe(subject, topic, data) { + is(topic, "quit-application-requested", "Right observer topic"); + ok(shouldQuit, "Quit shortcut should NOT have worked"); + + // Don't actually quit the browser when testing. + let cancelQuit = subject.QueryInterface(Ci.nsISupportsPRBool); + cancelQuit.data = true; + + quitRequested = true; + }, + }; + Services.obs.addObserver(observer, "quit-application-requested"); + + let modifiers = { accelKey: true }; + if (AppConstants.platform == "win") { + modifiers.shiftKey = true; + } + EventUtils.synthesizeKey("q", modifiers, win); + + await BrowserTestUtils.closeWindow(win); + Services.obs.removeObserver(observer, "quit-application-requested"); + + is(quitRequested, shouldQuit, "Expected quit state"); + } + + // Quit shortcut should work when pref is not set. + await testQuitShortcut(true); + + await SpecialPowers.pushPrefEnv({ + set: [["browser.quitShortcut.disabled", true]], + }); + await testQuitShortcut(false); +}); -- cgit v1.2.3