diff -r 000000000000 -r 6474c204b198 browser/components/tabview/test/browser_tabview_bug635696.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browser/components/tabview/test/browser_tabview_bug635696.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,77 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +function test() { + let cw; + + let createGroupItem = function () { + let groupItem = createGroupItemWithBlankTabs(window, 200, 200, 10, 1); + + let groupItemId = groupItem.id; + registerCleanupFunction(function() { + let groupItem = cw.GroupItems.groupItem(groupItemId); + if (groupItem) + groupItem.close(); + }); + + return groupItem; + } + + let testSingleGroupItem = function () { + let groupItem = cw.GroupItems.groupItems[0]; + is(cw.GroupItems.getActiveGroupItem(), groupItem, "groupItem is active"); + + let tabItem = groupItem.getChild(0); + is(cw.UI.getActiveTab(), tabItem, "tabItem is active"); + + hideGroupItem(groupItem, function () { + unhideGroupItem(groupItem, function () { + is(cw.GroupItems.getActiveGroupItem(), groupItem, "groupItem is still active"); + is(cw.UI.getActiveTab(), tabItem, "tabItem is still active"); + next(); + }); + }); + } + + let testTwoGroupItems = function () { + let groupItem = cw.GroupItems.groupItems[0]; + let tabItem = groupItem.getChild(0); + + let groupItem2 = createGroupItem(); + let tabItem2 = groupItem2.getChild(0); + + hideGroupItem(groupItem, function () { + is(cw.UI.getActiveTab(), tabItem2, "tabItem2 is active"); + unhideGroupItem(groupItem, function () { + cw.UI.setActive(tabItem); + closeGroupItem(groupItem2, next); + }); + }); + } + + let tests = [testSingleGroupItem, testTwoGroupItems]; + + let next = function () { + let test = tests.shift(); + if (test) + test(); + else + hideTabView(finishTest); + } + + let finishTest = function () { + is(cw.GroupItems.groupItems.length, 1, "there is one groupItem"); + is(gBrowser.tabs.length, 1, "there is one tab"); + ok(!TabView.isVisible(), "tabview is hidden"); + + finish(); + } + + waitForExplicitFinish(); + + showTabView(function () { + registerCleanupFunction(function () TabView.hide()); + cw = TabView.getContentWindow(); + next(); + }); +}