forked from mirrors/gecko-dev
		
	Automatic changes by ESLint, except for manual corrections for .xml files. Differential Revision: https://phabricator.services.mozilla.com/D4439 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			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.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();
 | 
						|
});
 |