forked from mirrors/gecko-dev
		
	 1f830c96da
			
		
	
	
		1f830c96da
		
	
	
	
	
		
			
			# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D36042 --HG-- extra : source : d3afcafdce650a6f36cebbc126ee93b17f13cf52
		
			
				
	
	
		
			65 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* This Source Code Form is subject to the terms of the Mozilla Public
 | |
|  * License, v. 2.0. If a copy of the MPL was not distributed with this
 | |
|  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | |
| /* eslint-disable mozilla/no-arbitrary-setTimeout */
 | |
| 
 | |
| "use strict";
 | |
| const kWidgetId = "test-981418-widget-onbeforecreated";
 | |
| 
 | |
| // Should be able to add broken view widget
 | |
| add_task(async function testAddOnBeforeCreatedWidget() {
 | |
|   let onBeforeCreatedCalled = false;
 | |
|   let widgetSpec = {
 | |
|     id: kWidgetId,
 | |
|     type: "view",
 | |
|     viewId: kWidgetId + "idontexistyet",
 | |
|     onBeforeCreated(doc) {
 | |
|       let view = doc.createXULElement("panelview");
 | |
|       view.id = kWidgetId + "idontexistyet";
 | |
|       document.getElementById("appMenu-viewCache").appendChild(view);
 | |
|       onBeforeCreatedCalled = true;
 | |
|     },
 | |
|   };
 | |
| 
 | |
|   CustomizableUI.createWidget(widgetSpec);
 | |
|   CustomizableUI.addWidgetToArea(kWidgetId, CustomizableUI.AREA_NAVBAR);
 | |
| 
 | |
|   ok(onBeforeCreatedCalled, "onBeforeCreated should have been called");
 | |
| 
 | |
|   let widgetNode = document.getElementById(kWidgetId);
 | |
|   let viewNode = document.getElementById(kWidgetId + "idontexistyet");
 | |
|   ok(widgetNode, "Widget should exist");
 | |
|   ok(viewNode, "Panelview should exist");
 | |
| 
 | |
|   let viewShownPromise = BrowserTestUtils.waitForEvent(viewNode, "ViewShown");
 | |
|   widgetNode.click();
 | |
|   await viewShownPromise;
 | |
| 
 | |
|   let widgetPanel = document.getElementById("customizationui-widget-panel");
 | |
|   ok(widgetPanel, "Widget panel should exist");
 | |
| 
 | |
|   let panelHiddenPromise = promisePanelElementHidden(window, widgetPanel);
 | |
|   widgetPanel.hidePopup();
 | |
|   await panelHiddenPromise;
 | |
| 
 | |
|   CustomizableUI.addWidgetToArea(
 | |
|     kWidgetId,
 | |
|     CustomizableUI.AREA_FIXED_OVERFLOW_PANEL
 | |
|   );
 | |
|   await waitForOverflowButtonShown();
 | |
|   await document.getElementById("nav-bar").overflowable.show();
 | |
| 
 | |
|   viewShownPromise = BrowserTestUtils.waitForEvent(viewNode, "ViewShown");
 | |
|   widgetNode.click();
 | |
|   await viewShownPromise;
 | |
| 
 | |
|   let panelHidden = promiseOverflowHidden(window);
 | |
|   PanelUI.overflowPanel.hidePopup();
 | |
|   await panelHidden;
 | |
| 
 | |
|   CustomizableUI.destroyWidget(kWidgetId);
 | |
| });
 | |
| 
 | |
| add_task(async function asyncCleanup() {
 | |
|   await resetCustomization();
 | |
| });
 |