registerCleanupFunction(() => { SidebarUI.hide(); }); function showSwitcherPanelPromise() { return new Promise(resolve => { SidebarUI._switcherPanel.addEventListener("popupshown", () => { resolve(); }, {once: true}); SidebarUI.showSwitcherPanel(); }); } function clickSwitcherButton(querySelector) { let sidebarPopup = document.querySelector("#sidebarMenu-popup"); let switcherPromise = Promise.all([ BrowserTestUtils.waitForEvent(window, "SidebarFocused"), BrowserTestUtils.waitForEvent(sidebarPopup, "popuphidden"), ]); document.querySelector(querySelector).click(); return switcherPromise; } add_task(async function() { // If a sidebar is already open, close it. if (!document.getElementById("sidebar-box").hidden) { ok(false, "Unexpected sidebar found - a previous test failed to cleanup correctly"); SidebarUI.hide(); } let sidebar = document.querySelector("#sidebar-box"); await SidebarUI.show("viewBookmarksSidebar"); await showSwitcherPanelPromise(); await clickSwitcherButton("#sidebar-switcher-history"); is(sidebar.getAttribute("sidebarcommand"), "viewHistorySidebar", "History sidebar loaded"); await showSwitcherPanelPromise(); await clickSwitcherButton("#sidebar-switcher-tabs"); is(sidebar.getAttribute("sidebarcommand"), "viewTabsSidebar", "Tabs sidebar loaded"); await showSwitcherPanelPromise(); await clickSwitcherButton("#sidebar-switcher-bookmarks"); is(sidebar.getAttribute("sidebarcommand"), "viewBookmarksSidebar", "Bookmarks sidebar loaded"); });