1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 /* import-globals-from ../../mochitest/role.js */
8 loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
11 * Test that popover gets a minimum role.
15 <div id="generic" popover>generic</div>
16 <div id="alert" role="alert" popover>alert</div>
17 <blockquote id="blockquote" popover>blockquote</div>
19 async function testPopover(browser, docAcc) {
20 let generic = findAccessibleChildByID(docAcc, "generic");
21 ok(!generic, "generic doesn't have an Accessible");
22 info("Showing generic");
23 let shown = waitForEvent(EVENT_SHOW, "generic");
24 await invokeContentTask(browser, [], () => {
25 content.document.getElementById("generic").showPopover();
27 generic = (await shown).accessible;
28 testRole(generic, ROLE_GROUPING, "generic has minimum role group");
29 info("Setting popover to null on generic");
30 // Setting popover to null causes the Accessible to be recreated.
31 shown = waitForEvent(EVENT_SHOW, "generic");
32 await invokeContentTask(browser, [], () => {
33 content.document.getElementById("generic").popover = null;
35 generic = (await shown).accessible;
36 testRole(generic, ROLE_SECTION, "generic has generic role");
38 let alert = findAccessibleChildByID(docAcc, "alert");
39 ok(!alert, "alert doesn't have an Accessible");
40 info("Showing alert");
41 shown = waitForEvent(EVENT_SHOW, "alert");
42 await invokeContentTask(browser, [], () => {
43 content.document.getElementById("alert").showPopover();
45 alert = (await shown).accessible;
46 testRole(alert, ROLE_ALERT, "alert has role alert");
48 let blockquote = findAccessibleChildByID(docAcc, "blockquote");
49 ok(!blockquote, "blockquote doesn't have an Accessible");
50 info("Showing blockquote");
51 shown = waitForEvent(EVENT_SHOW, "blockquote");
52 await invokeContentTask(browser, [], () => {
53 content.document.getElementById("blockquote").showPopover();
55 blockquote = (await shown).accessible;
56 testRole(blockquote, ROLE_BLOCKQUOTE, "blockquote has role blockquote");
58 { chrome: true, topLevel: true }