mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-07-04 19:29:55 +00:00
108 lines
3.5 KiB
JavaScript
108 lines
3.5 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
function simulateItemDragAndEnd(aToDrag, aTarget) {
|
|
var ds = Components.classes["@mozilla.org/widget/dragservice;1"].
|
|
getService(Components.interfaces.nsIDragService);
|
|
|
|
ds.startDragSession();
|
|
try {
|
|
var [result, dataTransfer] = ChromeUtils.synthesizeDragOver(aToDrag.parentNode, aTarget);
|
|
ChromeUtils.synthesizeDropAfterDragOver(result, dataTransfer, aTarget);
|
|
// Send dragend to move dragging item back to initial place.
|
|
EventUtils.sendDragEvent({ type: "dragend", dataTransfer: dataTransfer },
|
|
aToDrag.parentNode);
|
|
} finally {
|
|
ds.endDragSession(true);
|
|
}
|
|
}
|
|
|
|
add_task(function* checkNoAddingToPanel() {
|
|
let area = CustomizableUI.AREA_PANEL;
|
|
let previousPlacements = getAreaWidgetIds(area);
|
|
CustomizableUI.addWidgetToArea("separator", area);
|
|
CustomizableUI.addWidgetToArea("spring", area);
|
|
CustomizableUI.addWidgetToArea("spacer", area);
|
|
assertAreaPlacements(area, previousPlacements);
|
|
|
|
let oldNumberOfItems = previousPlacements.length;
|
|
if (getAreaWidgetIds(area).length != oldNumberOfItems) {
|
|
CustomizableUI.reset();
|
|
}
|
|
});
|
|
|
|
add_task(function* checkAddingToToolbar() {
|
|
let area = CustomizableUI.AREA_NAVBAR;
|
|
let previousPlacements = getAreaWidgetIds(area);
|
|
CustomizableUI.addWidgetToArea("separator", area);
|
|
CustomizableUI.addWidgetToArea("spring", area);
|
|
CustomizableUI.addWidgetToArea("spacer", area);
|
|
let expectedPlacements = [...previousPlacements].concat([
|
|
/separator/,
|
|
/spring/,
|
|
/spacer/
|
|
]);
|
|
assertAreaPlacements(area, expectedPlacements);
|
|
|
|
let newlyAddedElements = getAreaWidgetIds(area).slice(-3);
|
|
while (newlyAddedElements.length) {
|
|
CustomizableUI.removeWidgetFromArea(newlyAddedElements.shift());
|
|
}
|
|
|
|
assertAreaPlacements(area, previousPlacements);
|
|
|
|
let oldNumberOfItems = previousPlacements.length;
|
|
if (getAreaWidgetIds(area).length != oldNumberOfItems) {
|
|
CustomizableUI.reset();
|
|
}
|
|
});
|
|
|
|
|
|
add_task(function* checkDragging() {
|
|
let startArea = CustomizableUI.AREA_NAVBAR;
|
|
let targetArea = CustomizableUI.AREA_PANEL;
|
|
let startingToolbarPlacements = getAreaWidgetIds(startArea);
|
|
let startingTargetPlacements = getAreaWidgetIds(targetArea);
|
|
|
|
CustomizableUI.addWidgetToArea("separator", startArea);
|
|
CustomizableUI.addWidgetToArea("spring", startArea);
|
|
CustomizableUI.addWidgetToArea("spacer", startArea);
|
|
|
|
let placementsWithSpecials = getAreaWidgetIds(startArea);
|
|
let elementsToMove = [];
|
|
for (let id of placementsWithSpecials) {
|
|
if (CustomizableUI.isSpecialWidget(id)) {
|
|
elementsToMove.push(id);
|
|
}
|
|
}
|
|
is(elementsToMove.length, 3, "Should have 3 elements to try and drag.");
|
|
|
|
yield startCustomizing();
|
|
for (let id of elementsToMove) {
|
|
simulateItemDragAndEnd(document.getElementById(id), PanelUI.contents);
|
|
}
|
|
|
|
assertAreaPlacements(startArea, placementsWithSpecials);
|
|
assertAreaPlacements(targetArea, startingTargetPlacements);
|
|
|
|
for (let id of elementsToMove) {
|
|
simulateItemDrag(document.getElementById(id), gCustomizeMode.visiblePalette);
|
|
}
|
|
|
|
assertAreaPlacements(startArea, startingToolbarPlacements);
|
|
assertAreaPlacements(targetArea, startingTargetPlacements);
|
|
|
|
ok(!gCustomizeMode.visiblePalette.querySelector("toolbarspring,toolbarseparator,toolbarspacer"),
|
|
"No specials should make it to the palette alive.");
|
|
yield endCustomizing();
|
|
});
|
|
|
|
|
|
add_task(function* asyncCleanup() {
|
|
yield endCustomizing();
|
|
CustomizableUI.reset();
|
|
});
|
|
|