forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			92 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "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"
 | |
|   );
 | |
| });
 | 
