summaryrefslogtreecommitdiffstats
path: root/remote/cdp/test/browser/page/browser_javascriptDialog_confirm.js
blob: eec7e9828de8e3b5095b501224e18dd74a49c9b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/* 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 ({ client }) {
  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");
});

function createConfirmDialog(Page) {
  const onDialogOpen = Page.javascriptDialogOpening();

  info("Trigger a confirm in the test page");
  SpecialPowers.spawn(gBrowser.selectedBrowser, [], () => {
    content.isConfirmed = content.confirm("confirm-1234?");
  });

  return onDialogOpen;
}