Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
// This test checks that the quit dialog appears correctly when the browser.warnOnQuitShortcut
// preference is set and the quit keyboard shortcut is pressed.
add_task(async function test_quit_shortcut() {
await SpecialPowers.pushPrefEnv({
set: [
["browser.warnOnQuit", true],
["browser.warnOnQuitShortcut", true],
],
});
function checkDialog(dialog) {
let dialogElement = dialog.document.getElementById("commonDialog");
let acceptLabel = dialogElement.getButton("accept").label;
is(acceptLabel.indexOf("Quit"), 0, "dialog label");
dialogElement.getButton("cancel").click();
}
let dialogOpened = false;
function setDialogOpened() {
dialogOpened = true;
}
Services.obs.addObserver(setDialogOpened, "common-dialog-loaded");
// Test 1: quit using the shortcut key with the preference enabled.
let quitPromise = BrowserTestUtils.promiseAlertDialog("cancel", undefined, {
callback: checkDialog,
});
ok(!canQuitApplication(undefined, "shortcut"), "can quit with dialog");
ok(dialogOpened, "confirmation prompt should have opened");
await quitPromise;
// Test 2: quit without using the shortcut key with the preference enabled.
dialogOpened = false;
ok(canQuitApplication(undefined, ""), "can quit with no dialog");
ok(!dialogOpened, "confirmation prompt should not have opened");
// Test 3: quit using the shortcut key with the preference disabled.
await SpecialPowers.pushPrefEnv({
set: [["browser.warnOnQuitShortcut", false]],
});
dialogOpened = false;
ok(canQuitApplication(undefined, "shortcut"), "can quit with no dialog");
ok(!dialogOpened, "confirmation prompt should not have opened");
Services.obs.removeObserver(setDialogOpened, "common-dialog-loaded");
await SpecialPowers.popPrefEnv();
});