|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 let fadeAwayUndoButtonDelay; |
|
5 let fadeAwayUndoButtonDuration; |
|
6 |
|
7 function test() { |
|
8 waitForExplicitFinish(); |
|
9 |
|
10 window.addEventListener("tabviewshown", testCloseLastGroup, false); |
|
11 TabView.toggle(); |
|
12 } |
|
13 |
|
14 function testCloseLastGroup() { |
|
15 window.removeEventListener("tabviewshown", testCloseLastGroup, false); |
|
16 ok(TabView.isVisible(), "Tab View is visible"); |
|
17 |
|
18 let contentWindow = document.getElementById("tab-view").contentWindow; |
|
19 |
|
20 is(contentWindow.GroupItems.groupItems.length, 1, "Has one group only"); |
|
21 |
|
22 let groupItem = contentWindow.GroupItems.groupItems[0]; |
|
23 |
|
24 let checkExistence = function() { |
|
25 is(contentWindow.GroupItems.groupItems.length, 1, |
|
26 "Still has one group after delay"); |
|
27 |
|
28 EventUtils.sendMouseEvent( |
|
29 { type: "click" }, groupItem.$undoContainer[0], contentWindow); |
|
30 }; |
|
31 |
|
32 groupItem.addSubscriber("groupHidden", function onHidden() { |
|
33 groupItem.removeSubscriber("groupHidden", onHidden); |
|
34 // it should still stay after 3 ms. |
|
35 setTimeout(checkExistence, 3); |
|
36 }); |
|
37 |
|
38 groupItem.addSubscriber("groupShown", function onShown() { |
|
39 groupItem.removeSubscriber("groupShown", onShown); |
|
40 |
|
41 let endGame = function() { |
|
42 window.removeEventListener("tabviewhidden", endGame, false); |
|
43 ok(!TabView.isVisible(), "Tab View is hidden"); |
|
44 |
|
45 groupItem.fadeAwayUndoButtonDelay = fadeAwayUndoButtonDelay; |
|
46 groupItem.fadeAwayUndoButtonDuration = fadeAwayUndoButtonDuration; |
|
47 |
|
48 finish(); |
|
49 }; |
|
50 window.addEventListener("tabviewhidden", endGame, false); |
|
51 |
|
52 TabView.toggle(); |
|
53 }); |
|
54 |
|
55 let closeButton = groupItem.container.getElementsByClassName("close"); |
|
56 ok(closeButton, "Group item close button exists"); |
|
57 |
|
58 // store the original values |
|
59 fadeAwayUndoButtonDelay = groupItem.fadeAwayUndoButtonDelay; |
|
60 fadeAwayUndoButtonDuration = groupItem.fadeAwayUndoButtonDuration; |
|
61 |
|
62 // set both fade away delay and duration to 1ms |
|
63 groupItem.fadeAwayUndoButtonDelay = 1; |
|
64 groupItem.fadeAwayUndoButtonDuration = 1; |
|
65 |
|
66 EventUtils.sendMouseEvent({ type: "click" }, closeButton[0], contentWindow); |
|
67 } |