|
| 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/. */ |
| 4 | + |
| 5 | +"use strict"; |
| 6 | + |
| 7 | +/* import-globals-from ../../mochitest/role.js */ |
| 8 | +loadScripts({ name: "role.js", dir: MOCHITESTS_DIR }); |
| 9 | + |
| 10 | +/** |
| 11 | + * Test that popover gets a minimum role. |
| 12 | + */ |
| 13 | +addAccessibleTask( |
| 14 | + ` |
| 15 | +<div id="generic" popover>generic</div> |
| 16 | +<div id="alert" role="alert" popover>alert</div> |
| 17 | +<blockquote id="blockquote" popover>blockquote</div> |
| 18 | + `, |
| 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(); |
| 26 | + }); |
| 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; |
| 34 | + }); |
| 35 | + generic = (await shown).accessible; |
| 36 | + testRole(generic, ROLE_SECTION, "generic has generic role"); |
| 37 | + |
| 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(); |
| 44 | + }); |
| 45 | + alert = (await shown).accessible; |
| 46 | + testRole(alert, ROLE_ALERT, "alert has role alert"); |
| 47 | + |
| 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(); |
| 54 | + }); |
| 55 | + blockquote = (await shown).accessible; |
| 56 | + testRole(blockquote, ROLE_BLOCKQUOTE, "blockquote has role blockquote"); |
| 57 | + }, |
| 58 | + { chrome: true, topLevel: true } |
| 59 | +); |
0 commit comments