gecko/browser/components/tabview/test/browser_tabview_bug640765.js

76 lines
2.6 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
let contentWindow;
let groupItem;
function test() {
waitForExplicitFinish();
let newTabOne = gBrowser.addTab();
let newTabTwo = gBrowser.addTab();
let newTabThree = gBrowser.addTab();
registerCleanupFunction(function() {
TabView.hide();
while (gBrowser.tabs.length > 1)
gBrowser.removeTab(gBrowser.tabs[0]);
});
showTabView(function() {
contentWindow = document.getElementById("tab-view").contentWindow;
is(contentWindow.GroupItems.groupItems.length, 1, "Has only one group");
groupItem = contentWindow.GroupItems.groupItems[0];
whenAppTabIconAdded(groupItem, function () {
whenAppTabIconAdded(groupItem, function () {
whenAppTabIconAdded(groupItem, function () {
is(xulTabForAppTabIcon(0), newTabOne,
"New tab one matches the first app tab icon in tabview");
is(xulTabForAppTabIcon(1), newTabTwo,
"New tab two matches the second app tab icon in tabview");
is(xulTabForAppTabIcon(2), newTabThree,
"New tab three matches the third app tab icon in tabview");
// move the last tab to the first position
gBrowser.moveTabTo(newTabThree, 0);
is(xulTabForAppTabIcon(0), newTabThree,
"New tab three matches the first app tab icon in tabview");
is(xulTabForAppTabIcon(1), newTabOne,
"New tab one matches the second app tab icon in tabview");
is(xulTabForAppTabIcon(2), newTabTwo,
"New tab two matches the third app tab icon in tabview");
// move the first tab to the second position
gBrowser.moveTabTo(newTabThree, 1);
is(xulTabForAppTabIcon(0), newTabOne,
"New tab one matches the first app tab icon in tabview");
is(xulTabForAppTabIcon(1), newTabThree,
"New tab three matches the second app tab icon in tabview");
is(xulTabForAppTabIcon(2), newTabTwo,
"New tab two matches the third app tab icon in tabview");
hideTabView(function() {
gBrowser.removeTab(newTabOne);
gBrowser.removeTab(newTabTwo);
gBrowser.removeTab(newTabThree);
finish();
});
});
gBrowser.pinTab(newTabThree);
});
gBrowser.pinTab(newTabTwo);
});
gBrowser.pinTab(newTabOne);
});
}
function xulTabForAppTabIcon(index) {
return contentWindow.iQ(
contentWindow.iQ(".appTabIcon",
groupItem.$appTabTray)[index]).data("xulTab");
}