forked from mirrors/gecko-dev
		
	Depends on D166923 Differential Revision: https://phabricator.services.mozilla.com/D166934
		
			
				
	
	
		
			91 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* Any copyright is dedicated to the Public Domain.
 | 
						|
   http://creativecommons.org/publicdomain/zero/1.0/ */
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
/**
 | 
						|
 * Tests that if Unified Extensions UI is enabled that resetting the toolbars
 | 
						|
 * puts all browser action buttons into the AREA_ADDONS area.
 | 
						|
 */
 | 
						|
add_task(async function test_reset_with_unified_extensions_ui() {
 | 
						|
  const kWebExtensionWidgetIDs = [
 | 
						|
    "ext0-browser-action",
 | 
						|
    "ext1-browser-action",
 | 
						|
    "ext2-browser-action",
 | 
						|
    "ext3-browser-action",
 | 
						|
    "ext4-browser-action",
 | 
						|
    "ext5-browser-action",
 | 
						|
    "ext6-browser-action",
 | 
						|
    "ext7-browser-action",
 | 
						|
    "ext8-browser-action",
 | 
						|
    "ext9-browser-action",
 | 
						|
    "ext10-browser-action",
 | 
						|
  ];
 | 
						|
 | 
						|
  for (let widgetID of kWebExtensionWidgetIDs) {
 | 
						|
    CustomizableUI.createWidget({
 | 
						|
      id: widgetID,
 | 
						|
      label: "Test extension widget",
 | 
						|
      defaultArea: CustomizableUI.AREA_NAVBAR,
 | 
						|
      webExtension: true,
 | 
						|
    });
 | 
						|
  }
 | 
						|
 | 
						|
  // Now let's put these browser actions in a bunch of different places.
 | 
						|
  // Regardless of where they go, we're going to expect them in AREA_ADDONS
 | 
						|
  // after we reset.
 | 
						|
  CustomizableUI.addWidgetToArea(
 | 
						|
    kWebExtensionWidgetIDs[0],
 | 
						|
    CustomizableUI.AREA_TABSTRIP
 | 
						|
  );
 | 
						|
  CustomizableUI.addWidgetToArea(
 | 
						|
    kWebExtensionWidgetIDs[1],
 | 
						|
    CustomizableUI.AREA_TABSTRIP
 | 
						|
  );
 | 
						|
 | 
						|
  // macOS doesn't have AREA_MENUBAR registered, so we'll leave these widgets
 | 
						|
  // behind in the AREA_NAVBAR there, and put them into the menubar on the
 | 
						|
  // other platforms.
 | 
						|
  if (AppConstants.platform != "macosx") {
 | 
						|
    CustomizableUI.addWidgetToArea(
 | 
						|
      kWebExtensionWidgetIDs[2],
 | 
						|
      CustomizableUI.AREA_MENUBAR
 | 
						|
    );
 | 
						|
    CustomizableUI.addWidgetToArea(
 | 
						|
      kWebExtensionWidgetIDs[3],
 | 
						|
      CustomizableUI.AREA_MENUBAR
 | 
						|
    );
 | 
						|
  }
 | 
						|
 | 
						|
  CustomizableUI.addWidgetToArea(
 | 
						|
    kWebExtensionWidgetIDs[4],
 | 
						|
    CustomizableUI.AREA_BOOKMARKS
 | 
						|
  );
 | 
						|
  CustomizableUI.addWidgetToArea(
 | 
						|
    kWebExtensionWidgetIDs[5],
 | 
						|
    CustomizableUI.AREA_BOOKMARKS
 | 
						|
  );
 | 
						|
  CustomizableUI.addWidgetToArea(
 | 
						|
    kWebExtensionWidgetIDs[6],
 | 
						|
    CustomizableUI.AREA_ADDONS
 | 
						|
  );
 | 
						|
  CustomizableUI.addWidgetToArea(
 | 
						|
    kWebExtensionWidgetIDs[7],
 | 
						|
    CustomizableUI.AREA_ADDONS
 | 
						|
  );
 | 
						|
 | 
						|
  CustomizableUI.reset();
 | 
						|
 | 
						|
  // Let's force the Unified Extensions panel to register itself now if it
 | 
						|
  // wasn't already done. Using the getter should be sufficient.
 | 
						|
  Assert.ok(gUnifiedExtensions.panel, "Should have found the panel.");
 | 
						|
 | 
						|
  for (let widgetID of kWebExtensionWidgetIDs) {
 | 
						|
    let { area } = CustomizableUI.getPlacementOfWidget(widgetID);
 | 
						|
    Assert.equal(area, CustomizableUI.AREA_ADDONS);
 | 
						|
    // Let's double-check that they're actually in there in the DOM too.
 | 
						|
    let widget = CustomizableUI.getWidget(widgetID).forWindow(window);
 | 
						|
    Assert.equal(widget.node.parentElement.id, CustomizableUI.AREA_ADDONS);
 | 
						|
    CustomizableUI.destroyWidget(widgetID);
 | 
						|
  }
 | 
						|
});
 |