|
1 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
2 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
4 |
|
5 "use strict"; |
|
6 |
|
7 add_task(function() { |
|
8 info("Check Tab Groups button functionality"); |
|
9 let deferred = Promise.defer(); |
|
10 let timeout = null; |
|
11 |
|
12 // add the Tab View button to the panel |
|
13 CustomizableUI.addWidgetToArea("tabview-button", CustomizableUI.AREA_PANEL); |
|
14 |
|
15 window.addEventListener("tabviewhidden", function tabViewHidden() { |
|
16 clearTimeout(timeout); |
|
17 window.removeEventListener("tabviewhidden", tabViewHidden, false); |
|
18 ok(true, "Tab View is closed"); |
|
19 deferred.resolve(); |
|
20 }, false); |
|
21 |
|
22 window.addEventListener("tabviewshown", function tabViewShown() { |
|
23 window.removeEventListener("tabviewshown", tabViewShown, false); |
|
24 ok(true, "Tab Groups are loaded"); |
|
25 // close tabs view |
|
26 window.TabView.hide(); |
|
27 timeout = setTimeout(() => { |
|
28 window.removeEventListener("tabviewhidden", tabViewHidden, false); |
|
29 deferred.reject("Tabs view wasn't hidden within 20000ms"); |
|
30 }, 20000); |
|
31 }, false); |
|
32 |
|
33 // check the button's functionality |
|
34 yield PanelUI.show(); |
|
35 |
|
36 let tabViewButton = document.getElementById("tabview-button"); |
|
37 ok(tabViewButton, "Tab Groups button was added to the Panel Menu"); |
|
38 tabViewButton.click(); |
|
39 |
|
40 yield deferred.promise; |
|
41 |
|
42 ok(!isPanelUIOpen(), "The panel is closed"); |
|
43 |
|
44 if(isPanelUIOpen()) { |
|
45 let panelHidePromise = promisePanelHidden(window); |
|
46 PanelUI.hide(); |
|
47 yield panelHidePromise; |
|
48 } |
|
49 }); |
|
50 |
|
51 add_task(function asyncCleanup() { |
|
52 // reset the panel to the default state |
|
53 yield resetCustomization(); |
|
54 ok(CustomizableUI.inDefaultState, "UI is in default state again."); |
|
55 }); |