|
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 // Dragging an item from the palette to another button in the panel should work. |
|
8 add_task(function() { |
|
9 yield startCustomizing(); |
|
10 let btn = document.getElementById("feed-button"); |
|
11 let panel = document.getElementById(CustomizableUI.AREA_PANEL); |
|
12 let placements = getAreaWidgetIds(CustomizableUI.AREA_PANEL); |
|
13 |
|
14 let lastButtonIndex = placements.length - 1; |
|
15 let lastButton = placements[lastButtonIndex]; |
|
16 let placementsAfterInsert = placements.slice(0, lastButtonIndex).concat(["feed-button", lastButton]); |
|
17 let lastButtonNode = document.getElementById(lastButton); |
|
18 simulateItemDrag(btn, lastButtonNode); |
|
19 assertAreaPlacements(CustomizableUI.AREA_PANEL, placementsAfterInsert); |
|
20 ok(!CustomizableUI.inDefaultState, "Should no longer be in default state."); |
|
21 let palette = document.getElementById("customization-palette"); |
|
22 simulateItemDrag(btn, palette); |
|
23 ok(CustomizableUI.inDefaultState, "Should be in default state again."); |
|
24 }); |
|
25 |
|
26 // Dragging an item from the palette to the panel itself should also work. |
|
27 add_task(function() { |
|
28 yield startCustomizing(); |
|
29 let btn = document.getElementById("feed-button"); |
|
30 let panel = document.getElementById(CustomizableUI.AREA_PANEL); |
|
31 let placements = getAreaWidgetIds(CustomizableUI.AREA_PANEL); |
|
32 |
|
33 let placementsAfterAppend = placements.concat(["feed-button"]); |
|
34 simulateItemDrag(btn, panel); |
|
35 assertAreaPlacements(CustomizableUI.AREA_PANEL, placementsAfterAppend); |
|
36 ok(!CustomizableUI.inDefaultState, "Should no longer be in default state."); |
|
37 let palette = document.getElementById("customization-palette"); |
|
38 simulateItemDrag(btn, palette); |
|
39 ok(CustomizableUI.inDefaultState, "Should be in default state again."); |
|
40 }); |
|
41 |
|
42 // Dragging an item from the palette to an empty panel should also work. |
|
43 add_task(function() { |
|
44 let widgetIds = getAreaWidgetIds(CustomizableUI.AREA_PANEL); |
|
45 while (widgetIds.length) { |
|
46 CustomizableUI.removeWidgetFromArea(widgetIds.shift()); |
|
47 } |
|
48 yield startCustomizing(); |
|
49 let btn = document.getElementById("feed-button"); |
|
50 let panel = document.getElementById(CustomizableUI.AREA_PANEL); |
|
51 |
|
52 assertAreaPlacements(panel.id, []); |
|
53 |
|
54 let placementsAfterAppend = ["feed-button"]; |
|
55 simulateItemDrag(btn, panel); |
|
56 assertAreaPlacements(CustomizableUI.AREA_PANEL, placementsAfterAppend); |
|
57 ok(!CustomizableUI.inDefaultState, "Should no longer be in default state."); |
|
58 let palette = document.getElementById("customization-palette"); |
|
59 simulateItemDrag(btn, palette); |
|
60 assertAreaPlacements(panel.id, []); |
|
61 }); |
|
62 |
|
63 add_task(function asyncCleanup() { |
|
64 yield endCustomizing(); |
|
65 yield resetCustomization(); |
|
66 }); |