forked from mirrors/gecko-dev
		
	 a1f393ad66
			
		
	
	
		a1f393ad66
		
	
	
	
	
		
			
			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);
 | |
|   }
 | |
| });
 |