gecko/browser/components/customizableui/test/browser_967000_button_tabView.js

56 lines
1.7 KiB
JavaScript

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