michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: let win; michael@0: michael@0: function test() { michael@0: waitForExplicitFinish(); michael@0: michael@0: newWindowWithTabView(function(newWin) { michael@0: win = newWin; michael@0: michael@0: registerCleanupFunction(function() { michael@0: win.close(); michael@0: }); michael@0: michael@0: let cw = win.TabView.getContentWindow(); michael@0: let groupItemOne = cw.GroupItems.groupItems[0]; michael@0: let groupItemTwo = createGroupItemWithBlankTabs(win, 300, 300, 20, 10); michael@0: michael@0: is(win.gBrowser.tabContainer.getAttribute("overflow"), "true", michael@0: "The tabstrip is overflow"); michael@0: michael@0: is(groupItemOne.getChildren().length, 10, "Group one has 10 tabs"); michael@0: is(groupItemTwo.getChildren().length, 10, "Group two has 10 tabs"); michael@0: michael@0: checkSelectedTabVisible("two", function() { michael@0: showTabView(function() { michael@0: checkSelectedTabVisible("one", finish); michael@0: groupItemOne.getChild(9).zoomIn(); michael@0: }, win); michael@0: }); michael@0: groupItemTwo.getChild(9).zoomIn(); michael@0: }, function(newWin) { michael@0: for (let i = 0; i < 9; i++) michael@0: newWin.gBrowser.addTab(); michael@0: }); michael@0: } michael@0: michael@0: function isSelectedTabVisible() { michael@0: let tabstrip = win.gBrowser.tabContainer.mTabstrip; michael@0: let scrollRect = tabstrip.scrollClientRect; michael@0: let tab = win.gBrowser.selectedTab.getBoundingClientRect(); michael@0: michael@0: return (scrollRect.left <= tab.left && tab.right <= scrollRect.right); michael@0: } michael@0: michael@0: function checkSelectedTabVisible(groupName, callback) { michael@0: whenTabViewIsHidden(function() { michael@0: ok(isSelectedTabVisible(), "Group " + groupName + " selected tab is visible"); michael@0: callback(); michael@0: }, win); michael@0: }