112 lines
3.1 KiB
JavaScript
112 lines
3.1 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
https://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
const LEFT_POSITION = 0;
|
|
const CUSTOM_POSITION = 2;
|
|
|
|
add_setup(async function () {
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [
|
|
["sidebar.revamp", true],
|
|
["sidebar.position_start", true],
|
|
["sidebar.verticalTabs", false],
|
|
],
|
|
});
|
|
CustomizableUI.reset();
|
|
});
|
|
|
|
registerCleanupFunction(() => {
|
|
CustomizableUI.reset();
|
|
});
|
|
|
|
function assertPositionEnd(message) {
|
|
const widgets = CustomizableUI.getWidgetIdsInArea(CustomizableUI.AREA_NAVBAR);
|
|
Assert.equal(widgets.at(-1), "sidebar-button", message);
|
|
}
|
|
|
|
add_task(async function test_moving_sidebar_updates_button_placement() {
|
|
Assert.equal(
|
|
CustomizableUI.getPlacementOfWidget("sidebar-button").position,
|
|
LEFT_POSITION,
|
|
"By default, the sidebar button is on the left."
|
|
);
|
|
|
|
info("Move sidebar to the right.");
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [["sidebar.position_start", false]],
|
|
});
|
|
assertPositionEnd(
|
|
"When the sidebar moves to the right, the toolbar button moves to the right."
|
|
);
|
|
|
|
info("Move sidebar back to the left.");
|
|
await SpecialPowers.popPrefEnv();
|
|
Assert.equal(
|
|
CustomizableUI.getPlacementOfWidget("sidebar-button").position,
|
|
LEFT_POSITION,
|
|
"When the sidebar moves back to the left, the toolbar button moves to the left."
|
|
);
|
|
});
|
|
|
|
add_task(async function test_retain_user_customized_button_placement() {
|
|
info("Move sidebar to the right.");
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [["sidebar.position_start", false]],
|
|
});
|
|
|
|
info("Move the sidebar button around.");
|
|
CustomizableUI.moveWidgetWithinArea("sidebar-button", CUSTOM_POSITION);
|
|
|
|
info("Move sidebar back to the left.");
|
|
await SpecialPowers.popPrefEnv();
|
|
Assert.equal(
|
|
CustomizableUI.getPlacementOfWidget("sidebar-button").position,
|
|
CUSTOM_POSITION,
|
|
"If user has customized the button placement, it does not auto-move."
|
|
);
|
|
|
|
CustomizableUI.reset();
|
|
});
|
|
|
|
add_task(async function test_reset_after_moving_sidebar() {
|
|
info("Move sidebar to the right.");
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [["sidebar.position_start", false]],
|
|
});
|
|
|
|
info("Reset CustomizableUI.");
|
|
CustomizableUI.reset();
|
|
Assert.ok(
|
|
Services.prefs.getBoolPref("sidebar.position_start"),
|
|
"After reset, the sidebar is on the left."
|
|
);
|
|
Assert.equal(
|
|
CustomizableUI.getPlacementOfWidget("sidebar-button").position,
|
|
LEFT_POSITION,
|
|
"After reset, the sidebar button is on the left."
|
|
);
|
|
|
|
info("Undo CustomizableUI reset.");
|
|
CustomizableUI.undoReset();
|
|
Assert.equal(
|
|
Services.prefs.getBoolPref("sidebar.position_start"),
|
|
false,
|
|
"After undo reset, the sidebar is on the right."
|
|
);
|
|
assertPositionEnd("After undo reset, the sidebar button is on the right.");
|
|
});
|
|
|
|
add_task(async function test_update_placement_vertical_tabs() {
|
|
info("Move sidebar to the right and enable vertical tabs.");
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [
|
|
["sidebar.position_start", false],
|
|
["sidebar.verticalTabs", true],
|
|
],
|
|
});
|
|
assertPositionEnd(
|
|
"Toolbar button is on the right side of the vertical tabs navbar."
|
|
);
|
|
});
|