|
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 |
|
5 "use strict"; |
|
6 |
|
7 const kButtonId = "test-886323-removable-moved-node"; |
|
8 const kLazyAreaId = "test-886323-lazy-area-for-removability-testing"; |
|
9 |
|
10 let gNavBar = document.getElementById(CustomizableUI.AREA_NAVBAR); |
|
11 let gLazyArea; |
|
12 |
|
13 // Removable nodes shouldn't be moved by buildArea |
|
14 add_task(function() { |
|
15 let dummyBtn = createDummyXULButton(kButtonId, "Dummy"); |
|
16 dummyBtn.setAttribute("removable", "true"); |
|
17 gNavBar.customizationTarget.appendChild(dummyBtn); |
|
18 let popupSet = document.getElementById("mainPopupSet"); |
|
19 gLazyArea = document.createElementNS(kNSXUL, "panel"); |
|
20 gLazyArea.id = kLazyAreaId; |
|
21 gLazyArea.setAttribute("hidden", "true"); |
|
22 popupSet.appendChild(gLazyArea); |
|
23 CustomizableUI.registerArea(kLazyAreaId, { |
|
24 type: CustomizableUI.TYPE_MENU_PANEL, |
|
25 defaultPlacements: [] |
|
26 }); |
|
27 CustomizableUI.addWidgetToArea(kButtonId, kLazyAreaId); |
|
28 assertAreaPlacements(kLazyAreaId, [kButtonId], |
|
29 "Placements should have changed because widget is removable."); |
|
30 let btn = document.getElementById(kButtonId); |
|
31 btn.setAttribute("removable", "false"); |
|
32 gLazyArea.customizationTarget = gLazyArea; |
|
33 CustomizableUI.registerToolbarNode(gLazyArea, []); |
|
34 assertAreaPlacements(kLazyAreaId, [], "Placements should no longer include widget."); |
|
35 is(btn.parentNode.id, gNavBar.customizationTarget.id, |
|
36 "Button shouldn't actually have moved as it's not removable"); |
|
37 let btn = document.getElementById(kButtonId); |
|
38 if (btn) btn.remove(); |
|
39 CustomizableUI.removeWidgetFromArea(kButtonId); |
|
40 CustomizableUI.unregisterArea(kLazyAreaId); |
|
41 gLazyArea.remove(); |
|
42 }); |
|
43 |
|
44 add_task(function asyncCleanup() { |
|
45 yield resetCustomization(); |
|
46 }); |