tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

browser_981418-widget-onbeforecreated-handler.js (2198B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 /* eslint-disable mozilla/no-arbitrary-setTimeout */
      5 
      6 "use strict";
      7 const kWidgetId = "test-981418-widget-onbeforecreated";
      8 
      9 // Should be able to add broken view widget
     10 add_task(async function testAddOnBeforeCreatedWidget() {
     11  let onBeforeCreatedCalled = false;
     12  let widgetSpec = {
     13    id: kWidgetId,
     14    type: "view",
     15    viewId: kWidgetId + "idontexistyet",
     16    tooltiptext: "I am an accessible name",
     17    onBeforeCreated(doc) {
     18      let view = doc.createXULElement("panelview");
     19      view.id = kWidgetId + "idontexistyet";
     20      document.getElementById("appMenu-viewCache").appendChild(view);
     21      onBeforeCreatedCalled = true;
     22    },
     23  };
     24 
     25  CustomizableUI.createWidget(widgetSpec);
     26  CustomizableUI.addWidgetToArea(kWidgetId, CustomizableUI.AREA_NAVBAR);
     27 
     28  ok(onBeforeCreatedCalled, "onBeforeCreated should have been called");
     29 
     30  let widgetNode = document.getElementById(kWidgetId);
     31  let viewNode = document.getElementById(kWidgetId + "idontexistyet");
     32  ok(widgetNode, "Widget should exist");
     33  ok(viewNode, "Panelview should exist");
     34 
     35  let viewShownPromise = BrowserTestUtils.waitForEvent(viewNode, "ViewShown");
     36  widgetNode.click();
     37  await viewShownPromise;
     38 
     39  let widgetPanel = document.getElementById("customizationui-widget-panel");
     40  ok(widgetPanel, "Widget panel should exist");
     41 
     42  let panelHiddenPromise = promisePanelElementHidden(window, widgetPanel);
     43  widgetPanel.hidePopup();
     44  await panelHiddenPromise;
     45 
     46  CustomizableUI.addWidgetToArea(
     47    kWidgetId,
     48    CustomizableUI.AREA_FIXED_OVERFLOW_PANEL
     49  );
     50  await waitForOverflowButtonShown();
     51  await document.getElementById("nav-bar").overflowable.show();
     52 
     53  viewShownPromise = BrowserTestUtils.waitForEvent(viewNode, "ViewShown");
     54  widgetNode.click();
     55  await viewShownPromise;
     56 
     57  let panelHidden = promiseOverflowHidden(window);
     58  PanelUI.overflowPanel.hidePopup();
     59  await panelHidden;
     60 
     61  CustomizableUI.destroyWidget(kWidgetId);
     62 });
     63 
     64 add_task(async function asyncCleanup() {
     65  await resetCustomization();
     66 });