54 lines
1.8 KiB
JavaScript
54 lines
1.8 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
/* import-globals-from ../../mochitest/role.js */
|
|
loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
|
|
|
|
// Verify we receive hide and show notifications when the chrome
|
|
// XUL alert is closed or opened. Mac expects both notifications to
|
|
// properly communicate live region changes.
|
|
async function runTests(browser) {
|
|
ok(PopupNotifications, "PopupNotifications object exists");
|
|
ok(PopupNotifications.panel, "PopupNotifications panel exists");
|
|
|
|
// When available, the popup panel makes itself a child of the chrome window.
|
|
// To verify it isn't accessible without reproducing the entirety of the chrome
|
|
// window tree, we check instead that the panel is not accessible.
|
|
ok(!isAccessible(PopupNotifications.panel), "Popup panel is not accessible");
|
|
|
|
const panelShown = waitForEvent(EVENT_SHOW, PopupNotifications.panel);
|
|
const notification = PopupNotifications.show(
|
|
browser,
|
|
"test-notification",
|
|
"hello world",
|
|
PopupNotifications.panel.id
|
|
);
|
|
|
|
await panelShown;
|
|
|
|
ok(isAccessible(PopupNotifications.panel), "Popup panel is accessible");
|
|
testAccessibleTree(PopupNotifications.panel, {
|
|
ALERT: [
|
|
{ LABEL: [{ TEXT_LEAF: [] }] },
|
|
{ PUSHBUTTON: [] },
|
|
{ PUSHBUTTON: [] },
|
|
],
|
|
});
|
|
// Verify the popup panel is associated with the chrome window.
|
|
is(
|
|
PopupNotifications.panel.ownerGlobal,
|
|
getMainChromeWindow(window),
|
|
"Popup panel is associated with the chrome window"
|
|
);
|
|
|
|
const panelHidden = waitForEvent(EVENT_HIDE, PopupNotifications.panel);
|
|
PopupNotifications.remove(notification);
|
|
|
|
await panelHidden;
|
|
|
|
ok(!isAccessible(PopupNotifications.panel), "Popup panel is not accessible");
|
|
}
|
|
|
|
addAccessibleTask(``, runTests);
|