summaryrefslogtreecommitdiffstats
path: root/toolkit/components/aboutwebauthn/tests/browser/head.js
blob: f6ea51ab3af58626e4bf5b32c8c55a770b3a7f4e (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
function set_text(field, text) {
  field.value = text;
  field.dispatchEvent(new Event("input"));
}

async function reset_about_page(doc) {
  let info_text = doc.getElementById("info-text-div");
  let msg = JSON.stringify({ type: "listen-success" });
  let promise = BrowserTestUtils.waitForMutationCondition(
    info_text,
    { attributes: true, attributeFilter: ["hidden"] },
    () => info_text.hidden !== false
  );
  Services.obs.notifyObservers(null, "about-webauthn-prompt", msg);
  await promise;
}

async function send_auth_info_and_check_categories(doc, ops) {
  let info_text = doc.getElementById("info-text-div");
  let msg = JSON.stringify({
    type: "selected-device",
    auth_info: { options: ops },
  });

  let promise = BrowserTestUtils.waitForMutationCondition(
    info_text,
    { attributes: true, attributeFilter: ["hidden"] },
    () => info_text.hidden
  );
  Services.obs.notifyObservers(null, "about-webauthn-prompt", msg);
  await promise;

  // Info should be shown always, so we use it as a canary
  let info_tab_button = doc.getElementById("info-tab-button");
  isnot(
    info_tab_button.style.display,
    "none",
    "Info button in the sidebar not visible"
  );
}