fune/browser/base/content/test/tabPrompts/browser_switchTabPermissionPrompt.js
Gijs Kruitbosch 4dd2872dab Bug 1707208 - ensure that file: dialogs display something in the focus permission checkbox label and add a test, r=jaws
Now that I finally wrote a test, I also noticed that we were trying to write the
checkbox permission value when the dialog gets aborted (ie removed because the
page disappears due to another page loading or the tab/window being closed),
which then threw an exception because the event target is the window rather than
the dialog element, and dialog.querySelector in maybeSetAllowTabSwitchPermission
fails.

Differential Revision: https://phabricator.services.mozilla.com/D114023
2021-05-04 12:02:08 +00:00

40 lines
1.3 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
add_task(async function test_check_file_prompt() {
let initialTab = gBrowser.selectedTab;
await BrowserTestUtils.withNewTab("about:blank", async browser => {
await BrowserTestUtils.switchTab(gBrowser, initialTab);
let testHelper = async function(uri, expectedValue) {
BrowserTestUtils.loadURI(browser, uri);
await BrowserTestUtils.browserLoaded(browser, false, uri);
let dialogFinishedShowing = TestUtils.topicObserved(
"common-dialog-loaded"
);
await SpecialPowers.spawn(browser, [], () => {
content.setTimeout(() => {
content.alert("Hello");
}, 0);
});
let [dialogWin] = await dialogFinishedShowing;
let checkbox = dialogWin.document.getElementById("checkbox");
info("Got: " + checkbox.label);
ok(
checkbox.label.includes(expectedValue),
`Checkbox label should mention domain (${expectedValue}).`
);
dialogWin.document.querySelector("dialog").acceptDialog();
};
await testHelper("https://example.com/1", "example.com");
await testHelper("about:robots", "about:");
let file = Services.io.newFileURI(Services.dirsvc.get("Desk", Ci.nsIFile))
.spec;
await testHelper(file, "file://");
});
});