forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			76 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* Any copyright is dedicated to the Public Domain.
 | |
|    http://creativecommons.org/publicdomain/zero/1.0/ */
 | |
| 
 | |
| "use strict";
 | |
| 
 | |
| /**
 | |
|  * Test that widgets provided by extensions can be added to the
 | |
|  * ADDONS area, but all other widgets cannot.
 | |
|  */
 | |
| add_task(async function test_only_extension_widgets_in_addons_area() {
 | |
|   registerCleanupFunction(async () => {
 | |
|     await CustomizableUI.reset();
 | |
|   });
 | |
| 
 | |
|   Assert.ok(
 | |
|     !CustomizableUI.canWidgetMoveToArea(
 | |
|       "home-button",
 | |
|       CustomizableUI.AREA_ADDONS
 | |
|     ),
 | |
|     "Cannot move a built-in button to the ADDONS area."
 | |
|   );
 | |
| 
 | |
|   // Now double-check that we cannot accidentally default a non-extension
 | |
|   // widget into the ADDONS area.
 | |
|   const kTestDynamicWidget = "a-test-widget";
 | |
|   CustomizableUI.createWidget({
 | |
|     id: kTestDynamicWidget,
 | |
|     label: "Test widget",
 | |
|     defaultArea: CustomizableUI.AREA_ADDONS,
 | |
|   });
 | |
|   Assert.equal(
 | |
|     CustomizableUI.getPlacementOfWidget(kTestDynamicWidget),
 | |
|     null,
 | |
|     "An attempt to put a non-extension widget into the ADDONS area by default should fail."
 | |
|   );
 | |
|   CustomizableUI.destroyWidget(kTestDynamicWidget);
 | |
| 
 | |
|   const kWebExtensionButtonID1 = "a-test-extension-button";
 | |
| 
 | |
|   CustomizableUI.createWidget({
 | |
|     id: kWebExtensionButtonID1,
 | |
|     label: "Test extension widget",
 | |
|     defaultArea: CustomizableUI.AREA_NAVBAR,
 | |
|     webExtension: true,
 | |
|   });
 | |
| 
 | |
|   Assert.ok(
 | |
|     CustomizableUI.canWidgetMoveToArea(
 | |
|       kWebExtensionButtonID1,
 | |
|       CustomizableUI.AREA_ADDONS
 | |
|     ),
 | |
|     "Can move extension button to the addons area."
 | |
|   );
 | |
| 
 | |
|   CustomizableUI.destroyWidget(kWebExtensionButtonID1);
 | |
| 
 | |
|   // Now check that extension buttons can default to the ADDONS area, if need
 | |
|   // be.
 | |
| 
 | |
|   const kWebExtensionButtonID2 = "a-test-extension-button-2";
 | |
| 
 | |
|   CustomizableUI.createWidget({
 | |
|     id: kWebExtensionButtonID2,
 | |
|     label: "Test extension widget 2",
 | |
|     defaultArea: CustomizableUI.AREA_ADDONS,
 | |
|     webExtension: true,
 | |
|   });
 | |
| 
 | |
|   Assert.equal(
 | |
|     CustomizableUI.getPlacementOfWidget(kWebExtensionButtonID2)?.area,
 | |
|     CustomizableUI.AREA_ADDONS,
 | |
|     "An attempt to put an extension widget into the ADDONS area by default should work."
 | |
|   );
 | |
| 
 | |
|   CustomizableUI.destroyWidget(kWebExtensionButtonID2);
 | |
| });
 | 
