Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
// Tests the dialog which allows the user to unblock a downloaded file.
registerCleanupFunction(() => {});
async function assertDialogResult({ args, buttonToClick, expectedResult }) {
let promise = BrowserTestUtils.promiseAlertDialog(buttonToClick);
is(
await DownloadsCommon.confirmUnblockDownload(args),
expectedResult,
`Expect ${expectedResult} from ${buttonToClick}`
);
await promise;
}
/**
* Tests the "unblock" dialog, for each of the possible verdicts.
*/
add_task(async function test_unblock_dialog_unblock() {
for (let verdict of [
Downloads.Error.BLOCK_VERDICT_MALWARE,
Downloads.Error.BLOCK_VERDICT_POTENTIALLY_UNWANTED,
Downloads.Error.BLOCK_VERDICT_INSECURE,
Downloads.Error.BLOCK_VERDICT_UNCOMMON,
]) {
let args = { verdict, window, dialogType: "unblock" };
// Test both buttons.
await assertDialogResult({
args,
buttonToClick: "accept",
expectedResult: "unblock",
});
await assertDialogResult({
args,
buttonToClick: "cancel",
expectedResult: "cancel",
});
}
});
/**
* Tests the "chooseUnblock" dialog for potentially unwanted downloads.
*/
add_task(async function test_chooseUnblock_dialog() {
for (let verdict of [
Downloads.Error.BLOCK_VERDICT_POTENTIALLY_UNWANTED,
Downloads.Error.BLOCK_VERDICT_INSECURE,
]) {
let args = {
verdict,
window,
dialogType: "chooseUnblock",
};
// Test each of the three buttons.
await assertDialogResult({
args,
buttonToClick: "accept",
expectedResult: "unblock",
});
await assertDialogResult({
args,
buttonToClick: "cancel",
expectedResult: "cancel",
});
await assertDialogResult({
args,
buttonToClick: "extra1",
expectedResult: "confirmBlock",
});
}
});
/**
* Tests the "chooseOpen" dialog for uncommon downloads.
*/
add_task(async function test_chooseOpen_dialog() {
for (let verdict of [
Downloads.Error.BLOCK_VERDICT_UNCOMMON,
Downloads.Error.BLOCK_VERDICT_INSECURE,
]) {
let args = {
verdict,
window,
dialogType: "chooseOpen",
};
// Test each of the three buttons.
await assertDialogResult({
args,
buttonToClick: "accept",
expectedResult: "open",
});
await assertDialogResult({
args,
buttonToClick: "cancel",
expectedResult: "cancel",
});
await assertDialogResult({
args,
buttonToClick: "extra1",
expectedResult: "confirmBlock",
});
}
});