michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: "use strict"; michael@0: michael@0: add_task(function() { michael@0: info("Check Tab Groups button functionality"); michael@0: let deferred = Promise.defer(); michael@0: let timeout = null; michael@0: michael@0: // add the Tab View button to the panel michael@0: CustomizableUI.addWidgetToArea("tabview-button", CustomizableUI.AREA_PANEL); michael@0: michael@0: window.addEventListener("tabviewhidden", function tabViewHidden() { michael@0: clearTimeout(timeout); michael@0: window.removeEventListener("tabviewhidden", tabViewHidden, false); michael@0: ok(true, "Tab View is closed"); michael@0: deferred.resolve(); michael@0: }, false); michael@0: michael@0: window.addEventListener("tabviewshown", function tabViewShown() { michael@0: window.removeEventListener("tabviewshown", tabViewShown, false); michael@0: ok(true, "Tab Groups are loaded"); michael@0: // close tabs view michael@0: window.TabView.hide(); michael@0: timeout = setTimeout(() => { michael@0: window.removeEventListener("tabviewhidden", tabViewHidden, false); michael@0: deferred.reject("Tabs view wasn't hidden within 20000ms"); michael@0: }, 20000); michael@0: }, false); michael@0: michael@0: // check the button's functionality michael@0: yield PanelUI.show(); michael@0: michael@0: let tabViewButton = document.getElementById("tabview-button"); michael@0: ok(tabViewButton, "Tab Groups button was added to the Panel Menu"); michael@0: tabViewButton.click(); michael@0: michael@0: yield deferred.promise; michael@0: michael@0: ok(!isPanelUIOpen(), "The panel is closed"); michael@0: michael@0: if(isPanelUIOpen()) { michael@0: let panelHidePromise = promisePanelHidden(window); michael@0: PanelUI.hide(); michael@0: yield panelHidePromise; michael@0: } michael@0: }); michael@0: michael@0: add_task(function asyncCleanup() { michael@0: // reset the panel to the default state michael@0: yield resetCustomization(); michael@0: ok(CustomizableUI.inDefaultState, "UI is in default state again."); michael@0: });