forked from mirrors/gecko-dev
58 lines
1.9 KiB
JavaScript
58 lines
1.9 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
"use strict";
|
|
|
|
const kButtonId = "test-886323-removable-moved-node";
|
|
const kLazyAreaId = "test-886323-lazy-area-for-removability-testing";
|
|
|
|
var gNavBar = document.getElementById(CustomizableUI.AREA_NAVBAR);
|
|
var gLazyArea;
|
|
|
|
// Removable nodes shouldn't be moved by buildArea
|
|
add_task(async function () {
|
|
let dummyBtn = createDummyXULButton(kButtonId, "Dummy");
|
|
dummyBtn.setAttribute("removable", "true");
|
|
CustomizableUI.getCustomizationTarget(gNavBar).appendChild(dummyBtn);
|
|
let popupSet = document.getElementById("mainPopupSet");
|
|
gLazyArea = document.createXULElement("panel");
|
|
gLazyArea.id = kLazyAreaId;
|
|
gLazyArea.hidden = true;
|
|
popupSet.appendChild(gLazyArea);
|
|
CustomizableUI.registerArea(kLazyAreaId, {
|
|
type: CustomizableUI.TYPE_PANEL,
|
|
defaultPlacements: [],
|
|
});
|
|
CustomizableUI.addWidgetToArea(kButtonId, kLazyAreaId);
|
|
assertAreaPlacements(
|
|
kLazyAreaId,
|
|
[kButtonId],
|
|
"Placements should have changed because widget is removable."
|
|
);
|
|
let btn = document.getElementById(kButtonId);
|
|
btn.setAttribute("removable", "false");
|
|
gLazyArea._customizationTarget = gLazyArea;
|
|
CustomizableUI.registerToolbarNode(gLazyArea, []);
|
|
assertAreaPlacements(
|
|
kLazyAreaId,
|
|
[],
|
|
"Placements should no longer include widget."
|
|
);
|
|
is(
|
|
btn.parentNode.id,
|
|
CustomizableUI.getCustomizationTarget(gNavBar).id,
|
|
"Button shouldn't actually have moved as it's not removable"
|
|
);
|
|
btn = document.getElementById(kButtonId);
|
|
if (btn) {
|
|
btn.remove();
|
|
}
|
|
CustomizableUI.removeWidgetFromArea(kButtonId);
|
|
CustomizableUI.unregisterArea(kLazyAreaId);
|
|
gLazyArea.remove();
|
|
});
|
|
|
|
add_task(async function asyncCleanup() {
|
|
await resetCustomization();
|
|
});
|