1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/browser/components/tabview/test/browser_tabview_bug595521.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,67 @@ 1.4 +/* Any copyright is dedicated to the Public Domain. 1.5 + http://creativecommons.org/publicdomain/zero/1.0/ */ 1.6 + 1.7 +let fadeAwayUndoButtonDelay; 1.8 +let fadeAwayUndoButtonDuration; 1.9 + 1.10 +function test() { 1.11 + waitForExplicitFinish(); 1.12 + 1.13 + window.addEventListener("tabviewshown", testCloseLastGroup, false); 1.14 + TabView.toggle(); 1.15 +} 1.16 + 1.17 +function testCloseLastGroup() { 1.18 + window.removeEventListener("tabviewshown", testCloseLastGroup, false); 1.19 + ok(TabView.isVisible(), "Tab View is visible"); 1.20 + 1.21 + let contentWindow = document.getElementById("tab-view").contentWindow; 1.22 + 1.23 + is(contentWindow.GroupItems.groupItems.length, 1, "Has one group only"); 1.24 + 1.25 + let groupItem = contentWindow.GroupItems.groupItems[0]; 1.26 + 1.27 + let checkExistence = function() { 1.28 + is(contentWindow.GroupItems.groupItems.length, 1, 1.29 + "Still has one group after delay"); 1.30 + 1.31 + EventUtils.sendMouseEvent( 1.32 + { type: "click" }, groupItem.$undoContainer[0], contentWindow); 1.33 + }; 1.34 + 1.35 + groupItem.addSubscriber("groupHidden", function onHidden() { 1.36 + groupItem.removeSubscriber("groupHidden", onHidden); 1.37 + // it should still stay after 3 ms. 1.38 + setTimeout(checkExistence, 3); 1.39 + }); 1.40 + 1.41 + groupItem.addSubscriber("groupShown", function onShown() { 1.42 + groupItem.removeSubscriber("groupShown", onShown); 1.43 + 1.44 + let endGame = function() { 1.45 + window.removeEventListener("tabviewhidden", endGame, false); 1.46 + ok(!TabView.isVisible(), "Tab View is hidden"); 1.47 + 1.48 + groupItem.fadeAwayUndoButtonDelay = fadeAwayUndoButtonDelay; 1.49 + groupItem.fadeAwayUndoButtonDuration = fadeAwayUndoButtonDuration; 1.50 + 1.51 + finish(); 1.52 + }; 1.53 + window.addEventListener("tabviewhidden", endGame, false); 1.54 + 1.55 + TabView.toggle(); 1.56 + }); 1.57 + 1.58 + let closeButton = groupItem.container.getElementsByClassName("close"); 1.59 + ok(closeButton, "Group item close button exists"); 1.60 + 1.61 + // store the original values 1.62 + fadeAwayUndoButtonDelay = groupItem.fadeAwayUndoButtonDelay; 1.63 + fadeAwayUndoButtonDuration = groupItem.fadeAwayUndoButtonDuration; 1.64 + 1.65 + // set both fade away delay and duration to 1ms 1.66 + groupItem.fadeAwayUndoButtonDelay = 1; 1.67 + groupItem.fadeAwayUndoButtonDuration = 1; 1.68 + 1.69 + EventUtils.sendMouseEvent({ type: "click" }, closeButton[0], contentWindow); 1.70 +}