Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

"use strict";
const { AppMenuNotifications } = ChromeUtils.importESModule(
"resource://gre/modules/AppMenuNotifications.sys.mjs"
);
add_task(async function testFullscreen() {
is(
PanelUI.notificationPanel.state,
"closed",
"update-manual doorhanger is closed."
);
let mainActionCalled = false;
let mainAction = {
callback: () => {
mainActionCalled = true;
},
};
AppMenuNotifications.showNotification("update-manual", mainAction);
isnot(
PanelUI.notificationPanel.state,
"closed",
"update-manual doorhanger is showing."
);
let notifications = [...PanelUI.notificationPanel.children].filter(
n => !n.hidden
);
is(
notifications.length,
1,
"PanelUI doorhanger is only displaying one notification."
);
let doorhanger = notifications[0];
is(
doorhanger.id,
"appMenu-update-manual-notification",
"PanelUI is displaying the update-manual notification."
);
let popuphiddenPromise = BrowserTestUtils.waitForEvent(
PanelUI.notificationPanel,
"popuphidden"
);
document.documentElement.focus();
EventUtils.synthesizeKey("KEY_F11");
await popuphiddenPromise;
await new Promise(executeSoon);
is(
PanelUI.notificationPanel.state,
"closed",
"update-manual doorhanger is closed."
);
FullScreen.showNavToolbox();
is(
PanelUI.menuButton.getAttribute("badge-status"),
"update-manual",
"Badge is displaying on PanelUI button."
);
let popupshownPromise = BrowserTestUtils.waitForEvent(
PanelUI.notificationPanel,
"popupshown"
);
EventUtils.synthesizeKey("KEY_F11");
await popupshownPromise;
await new Promise(executeSoon);
isnot(
PanelUI.notificationPanel.state,
"closed",
"update-manual doorhanger is showing."
);
isnot(
PanelUI.menuButton.getAttribute("badge-status"),
"update-manual",
"Badge is not displaying on PanelUI button."
);
doorhanger.button.click();
ok(mainActionCalled, "Main action callback was called");
is(
PanelUI.notificationPanel.state,
"closed",
"update-manual doorhanger is closed."
);
is(
PanelUI.menuButton.hasAttribute("badge-status"),
false,
"Should not have a badge status"
);
});