81 lines
2.4 KiB
JavaScript
81 lines
2.4 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";
|
|
|
|
requestLongerTimeout(2);
|
|
|
|
const kTestBarID = "testBar";
|
|
const kWidgetID = "characterencoding-button";
|
|
|
|
function createTestBar() {
|
|
let testBar = document.createXULElement("toolbar");
|
|
testBar.id = kTestBarID;
|
|
testBar.setAttribute("customizable", "true");
|
|
CustomizableUI.registerArea(kTestBarID, {
|
|
type: CustomizableUI.TYPE_TOOLBAR,
|
|
});
|
|
gNavToolbox.appendChild(testBar);
|
|
CustomizableUI.registerToolbarNode(testBar);
|
|
return testBar;
|
|
}
|
|
|
|
/**
|
|
* Helper function that does the following:
|
|
*
|
|
* 1) Creates a custom toolbar and registers it
|
|
* with CustomizableUI.
|
|
* 2) Adds the widget with ID aWidgetID to that new
|
|
* toolbar.
|
|
* 3) Enters customize mode and makes sure that the
|
|
* widget is still in the right toolbar.
|
|
* 4) Exits customize mode, then removes and deregisters
|
|
* the custom toolbar.
|
|
* 5) Checks that the widget has no placement.
|
|
* 6) Re-adds and re-registers a custom toolbar with the same
|
|
* ID and options as the first one.
|
|
* 7) Enters customize mode and checks that the widget is
|
|
* properly back in the toolbar.
|
|
* 8) Exits customize mode, removes and de-registers the
|
|
* toolbar, and resets the toolbars to default.
|
|
*/
|
|
function checkRestoredPresence(aWidgetID) {
|
|
return (async function () {
|
|
let testBar = createTestBar();
|
|
CustomizableUI.addWidgetToArea(aWidgetID, kTestBarID);
|
|
let placement = CustomizableUI.getPlacementOfWidget(aWidgetID);
|
|
is(
|
|
placement.area,
|
|
kTestBarID,
|
|
"Expected " + aWidgetID + " to be in the test toolbar"
|
|
);
|
|
|
|
CustomizableUI.unregisterArea(testBar.id);
|
|
testBar.remove();
|
|
|
|
placement = CustomizableUI.getPlacementOfWidget(aWidgetID);
|
|
is(placement, null, "Expected " + aWidgetID + " to be in the palette");
|
|
|
|
testBar = createTestBar();
|
|
|
|
await startCustomizing();
|
|
placement = CustomizableUI.getPlacementOfWidget(aWidgetID);
|
|
is(
|
|
placement.area,
|
|
kTestBarID,
|
|
"Expected " + aWidgetID + " to be in the test toolbar"
|
|
);
|
|
await endCustomizing();
|
|
|
|
CustomizableUI.unregisterArea(testBar.id);
|
|
testBar.remove();
|
|
|
|
await resetCustomization();
|
|
})();
|
|
}
|
|
|
|
add_task(async function () {
|
|
await checkRestoredPresence("downloads-button");
|
|
await checkRestoredPresence("characterencoding-button");
|
|
});
|