diff -r 000000000000 -r 6474c204b198 browser/components/tabview/test/browser_tabview_bug608037.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browser/components/tabview/test/browser_tabview_bug608037.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,42 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +let tabOne; +let tabTwo; + +function test() { + waitForExplicitFinish(); + + tabOne = gBrowser.addTab("http://mochi.test:8888/"); + tabTwo = gBrowser.addTab("http://mochi.test:8888/browser/browser/components/tabview/test/dummy_page.html"); + + afterAllTabsLoaded(function () { + // make sure the tab one is selected because undoCloseTab() would remove + // the selected tab if it's a blank tab. + gBrowser.selectedTab = tabOne; + showTabView(onTabViewWindowLoaded); + }); +} + +function onTabViewWindowLoaded() { + let contentWindow = TabView.getContentWindow(); + let groupItems = contentWindow.GroupItems.groupItems; + is(groupItems.length, 1, "There is only one group"); + is(groupItems[0].getChildren().length, 3, "The group has three tab items"); + + gBrowser.removeTab(tabTwo); + ok(TabView.isVisible(), "Tab View is still visible after removing a tab"); + is(groupItems[0].getChildren().length, 2, "The group has two tab items"); + + restoreTab(function (tabTwo) { + ok(TabView.isVisible(), "Tab View is still visible after restoring a tab"); + is(groupItems[0].getChildren().length, 3, "The group still has three tab items"); + + // clean up and finish + hideTabView(function () { + gBrowser.removeTab(tabOne); + gBrowser.removeTab(tabTwo); + finish(); + }); + }); +}