1
0
Fork 0
firefox/browser/components/sidebar/tests/unit/test_sidebar_state.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

88 lines
2.7 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
https://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
const { sinon } = ChromeUtils.importESModule(
"resource://testing-common/Sinon.sys.mjs"
);
const { SidebarState } = ChromeUtils.importESModule(
"moz-src:///browser/components/sidebar/SidebarState.sys.mjs"
);
const mockElement = {
setAttribute(name, value) {
this[name] = value;
},
style: { width: "200px" },
toggleAttribute: sinon.stub(),
};
const mockGlobal = {
document: { getElementById: () => mockElement },
gBrowser: { tabContainer: mockElement },
};
const mockController = {
_box: mockElement,
hide: sinon.stub(),
showInitially: sinon.stub(),
sidebarContainer: { ownerGlobal: mockGlobal },
sidebarMain: mockElement,
sidebarRevampEnabled: true,
sidebarRevampVisibility: "always-show",
sidebars: new Set(["viewBookmarksSidebar"]),
updateToolbarButton: sinon.stub(),
SidebarManager: { hasSidebarLauncherBeenVisible: false },
};
add_task(async function test_load_legacy_session_restore_data() {
const sidebarState = new SidebarState(mockController);
sidebarState.loadInitialState({
width: "300px",
command: "viewBookmarksSidebar",
expanded: true,
hidden: false,
});
const props = sidebarState.getProperties();
Assert.equal(props.panelWidth, 300, "The panel was resized.");
Assert.equal(props.launcherExpanded, true, "The launcher is expanded.");
Assert.equal(props.launcherVisible, true, "The launcher is visible.");
Assert.ok(
mockController.showInitially.calledWith("viewBookmarksSidebar"),
"Bookmarks panel was shown."
);
});
add_task(async function test_load_prerevamp_session_restore_data() {
const sidebarState = new SidebarState(mockController);
sidebarState.loadInitialState({
command: "viewBookmarksSidebar",
});
const props = sidebarState.getProperties();
Assert.ok(props.panelOpen, "The panel is marked as open.");
Assert.equal(props.launcherVisible, true, "The launcher is visible.");
Assert.equal(props.command, "viewBookmarksSidebar", "The command matches.");
Assert.ok(
mockController.showInitially.calledWith("viewBookmarksSidebar"),
"Bookmarks panel was shown."
);
});
add_task(async function test_load_hidden_panel_state() {
const sidebarState = new SidebarState(mockController);
sidebarState.loadInitialState({
command: "viewBookmarksSidebar",
panelOpen: false,
launcherVisible: true,
});
const props = sidebarState.getProperties();
Assert.ok(!props.panelOpen, "The panel is marked as closed.");
Assert.equal(props.launcherVisible, true, "The launcher is visible.");
Assert.equal(props.command, "viewBookmarksSidebar", "The command matches.");
});