forked from mirrors/gecko-dev
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
40 lines
1.3 KiB
JavaScript
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://");
|
|
});
|
|
});
|