fune/remote/test/browser/browser_page_javascriptDialog_confirm.js
Andreas Tolfsen 37c8f955e6 bug 1570378: remote: add bc test helper setup() for empty documents r=remote-protocol-reviewers,jdescottes
For many browser-chrome (bc) tests is does not matter what the
document is, as long as it is does not cause state to bleed over
from the previous test.

For these cases this patch introduces a shorthand, setup(), which
calls setupForURL(url) with an empty document generated by toDataURL("").

Differential Revision: https://phabricator.services.mozilla.com/D40216

--HG--
extra : moz-landing-system : lando
2019-08-05 11:43:58 +00:00

51 lines
1.5 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// Test for window.confirm(). Check that the dialog is correctly detected and that it can
// be rejected or accepted.
add_task(async function() {
const { client, tab } = await setup();
const { Page } = client;
info("Enable the page domain");
await Page.enable();
info("Create a confirm dialog to open");
const { message, type } = await createConfirmDialog(Page);
is(type, "confirm", "dialog event contains the correct type");
is(message, "confirm-1234?", "dialog event contains the correct text");
info("Accept the dialog");
await Page.handleJavaScriptDialog({ accept: true });
let isConfirmed = await getContentProperty("isConfirmed");
ok(isConfirmed, "The confirm dialog was accepted");
await createConfirmDialog(Page);
info("Trigger another confirm in the test page");
info("Reject the dialog");
await Page.handleJavaScriptDialog({ accept: false });
isConfirmed = await getContentProperty("isConfirmed");
ok(!isConfirmed, "The confirm dialog was rejected");
await client.close();
ok(true, "The client is closed");
BrowserTestUtils.removeTab(tab);
await RemoteAgent.close();
});
function createConfirmDialog(Page) {
const onDialogOpen = Page.javascriptDialogOpening();
info("Trigger a confirm in the test page");
ContentTask.spawn(gBrowser.selectedBrowser, null, () => {
content.isConfirmed = content.confirm("confirm-1234?");
});
return onDialogOpen;
}