Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"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."
);
});