45 lines
1.4 KiB
JavaScript
45 lines
1.4 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
// Test for window.prompt(). Check that the dialog is correctly detected and that it can
|
|
// be rejected or accepted, with a custom prompt text.
|
|
add_task(async function ({ client }) {
|
|
const { Page } = client;
|
|
|
|
info("Enable the page domain");
|
|
await Page.enable();
|
|
|
|
info("Create a prompt dialog to open");
|
|
const { message, type } = await createPromptDialog(Page);
|
|
|
|
is(type, "prompt", "dialog event contains the correct type");
|
|
is(message, "prompt-1234", "dialog event contains the correct text");
|
|
|
|
info("Accept the prompt");
|
|
await Page.handleJavaScriptDialog({ accept: true, promptText: "some-text" });
|
|
|
|
let promptResult = await getContentProperty("promptResult");
|
|
is(promptResult, "some-text", "The prompt text was correctly applied");
|
|
|
|
await createPromptDialog(Page);
|
|
info("Trigger another prompt in the test page");
|
|
|
|
info("Reject the prompt");
|
|
await Page.handleJavaScriptDialog({ accept: false, promptText: "new-text" });
|
|
|
|
promptResult = await getContentProperty("promptResult");
|
|
ok(!promptResult, "The prompt dialog was rejected");
|
|
});
|
|
|
|
function createPromptDialog(Page) {
|
|
const onDialogOpen = Page.javascriptDialogOpening();
|
|
|
|
info("Trigger a prompt in the test page");
|
|
SpecialPowers.spawn(gBrowser.selectedBrowser, [], () => {
|
|
content.promptResult = content.prompt("prompt-1234");
|
|
});
|
|
|
|
return onDialogOpen;
|
|
}
|