|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 * http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 "use strict"; |
|
5 |
|
6 |
|
7 add_task(function* checkNoAddingToPanel() { |
|
8 let area = CustomizableUI.AREA_PANEL; |
|
9 let previousPlacements = getAreaWidgetIds(area); |
|
10 CustomizableUI.addWidgetToArea("separator", area); |
|
11 CustomizableUI.addWidgetToArea("spring", area); |
|
12 CustomizableUI.addWidgetToArea("spacer", area); |
|
13 assertAreaPlacements(area, previousPlacements); |
|
14 |
|
15 let oldNumberOfItems = previousPlacements.length; |
|
16 if (getAreaWidgetIds(area).length != oldNumberOfItems) { |
|
17 CustomizableUI.reset(); |
|
18 } |
|
19 }); |
|
20 |
|
21 add_task(function* checkAddingToToolbar() { |
|
22 let area = CustomizableUI.AREA_NAVBAR; |
|
23 let previousPlacements = getAreaWidgetIds(area); |
|
24 CustomizableUI.addWidgetToArea("separator", area); |
|
25 CustomizableUI.addWidgetToArea("spring", area); |
|
26 CustomizableUI.addWidgetToArea("spacer", area); |
|
27 let expectedPlacements = [...previousPlacements].concat([ |
|
28 /separator/, |
|
29 /spring/, |
|
30 /spacer/ |
|
31 ]); |
|
32 assertAreaPlacements(area, expectedPlacements); |
|
33 |
|
34 let newlyAddedElements = getAreaWidgetIds(area).slice(-3); |
|
35 while (newlyAddedElements.length) { |
|
36 CustomizableUI.removeWidgetFromArea(newlyAddedElements.shift()); |
|
37 } |
|
38 |
|
39 assertAreaPlacements(area, previousPlacements); |
|
40 |
|
41 let oldNumberOfItems = previousPlacements.length; |
|
42 if (getAreaWidgetIds(area).length != oldNumberOfItems) { |
|
43 CustomizableUI.reset(); |
|
44 } |
|
45 }); |
|
46 |
|
47 |
|
48 add_task(function* checkDragging() { |
|
49 let startArea = CustomizableUI.AREA_NAVBAR; |
|
50 let targetArea = CustomizableUI.AREA_PANEL; |
|
51 let startingToolbarPlacements = getAreaWidgetIds(startArea); |
|
52 let startingTargetPlacements = getAreaWidgetIds(targetArea); |
|
53 |
|
54 CustomizableUI.addWidgetToArea("separator", startArea); |
|
55 CustomizableUI.addWidgetToArea("spring", startArea); |
|
56 CustomizableUI.addWidgetToArea("spacer", startArea); |
|
57 |
|
58 let placementsWithSpecials = getAreaWidgetIds(startArea); |
|
59 let elementsToMove = []; |
|
60 for (let id of placementsWithSpecials) { |
|
61 if (CustomizableUI.isSpecialWidget(id)) { |
|
62 elementsToMove.push(id); |
|
63 } |
|
64 } |
|
65 is(elementsToMove.length, 3, "Should have 3 elements to try and drag."); |
|
66 |
|
67 yield startCustomizing(); |
|
68 for (let id of elementsToMove) { |
|
69 simulateItemDrag(document.getElementById(id), PanelUI.contents); |
|
70 } |
|
71 |
|
72 assertAreaPlacements(startArea, placementsWithSpecials); |
|
73 assertAreaPlacements(targetArea, startingTargetPlacements); |
|
74 |
|
75 for (let id of elementsToMove) { |
|
76 simulateItemDrag(document.getElementById(id), gCustomizeMode.visiblePalette); |
|
77 } |
|
78 |
|
79 assertAreaPlacements(startArea, startingToolbarPlacements); |
|
80 assertAreaPlacements(targetArea, startingTargetPlacements); |
|
81 |
|
82 ok(!gCustomizeMode.visiblePalette.querySelector("toolbarspring,toolbarseparator,toolbarspacer"), |
|
83 "No specials should make it to the palette alive."); |
|
84 yield endCustomizing(); |
|
85 }); |
|
86 |
|
87 |
|
88 add_task(function* asyncCleanup() { |
|
89 yield endCustomizing(); |
|
90 CustomizableUI.reset(); |
|
91 }); |
|
92 |