forked from mirrors/gecko-dev
		
	 81684073f2
			
		
	
	
		81684073f2
		
	
	
	
	
		
			
			Backed out changeset 2dad70b2a723 (bug 1440333) Backed out changeset c705b49c2bae (bug 1440333) Backed out changeset 9906b468eb78 (bug 1440333)
		
			
				
	
	
		
			62 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			62 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.createElement("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();
 | |
| });
 |