gecko-dev/browser/components/tabview/test/browser_tabview_bug716880.js
Blair McBride b660c827ef Bug 1065265 - Improve infrastructure dealing with moz-action: autocomplete results. r=mak
--HG--
extra : transplant_source : %EC%FDu%A45%17%A73%1D%BF%E92%FC%1F%D7%1B%E6J/%B3
2014-09-16 16:01:58 +12:00

92 lines
No EOL
2.7 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
let contentWindow;
let pinnedTab;
function test() {
waitForExplicitFinish();
registerCleanupFunction(function() {
while (gBrowser.tabs[1])
gBrowser.removeTab(gBrowser.tabs[1]);
hideTabView();
});
pinnedTab = gBrowser.addTab("about:blank");
gBrowser.pinTab(pinnedTab);
ok(pinnedTab.pinned, "Tab 1 is pinned");
gBrowser.addTab("about:mozilla");
showTabView(setup);
}
function setup() {
let prefix = "setup: ";
registerCleanupFunction(function() {
let groupItem = contentWindow.GroupItems.groupItem(groupItemTwoId);
if (groupItem)
closeGroupItem(groupItem);
});
contentWindow = TabView.getContentWindow();
let groupItemOne = contentWindow.GroupItems.groupItems[0];
is(contentWindow.GroupItems.groupItems.length, 1,
prefix + "There is only one group");
is(groupItemOne.getChildren().length, 2,
prefix + "The number of tabs in group one is 2");
// Create a second group with a dummy page.
let groupItemTwo =
createGroupItemWithTabs(window, 300, 300, 310, ["about:blank"]);
let groupItemTwoId = groupItemTwo.id;
// Add a new tab to the second group, from where we will execute the switch
// to tab.
groupItemTwo.newTab("about:blank");
is(contentWindow.GroupItems.getActiveGroupItem(), groupItemTwo,
prefix + "The group two is the active group");
is(contentWindow.UI.getActiveTab(), groupItemTwo.getChild(1),
prefix + "The second tab item in group two is active");
hideTabView(function () { switchToURL(groupItemOne, groupItemTwo) } );
}
function switchToURL(groupItemOne, groupItemTwo) {
let prefix = "after switching: ";
/**
* At this point, focus is on group two. Let's switch to a tab with an URL
* contained in group one and then go to the pinned tab after the
* switch. The selected group should be group one.
*/
// Set the urlbar to include the moz-action.
gURLBar.value = "moz-action:switchtab," + JSON.stringify({url: "about:mozilla"});
// Focus the urlbar so we can press enter.
gURLBar.focus();
// Press enter.
EventUtils.synthesizeKey("VK_RETURN", {});
// Focus on the app tab.
EventUtils.synthesizeKey("1", { accelKey: true });
// Check group one is active after a "switch to tab" action was executed and
// the app tab receives focus.
is(contentWindow.GroupItems.getActiveGroupItem(), groupItemOne,
prefix + "The group one is the active group");
is(groupItemOne.getChildren().length, 2,
prefix + "The number of tabs in group one is 2");
is(groupItemTwo.getChildren().length, 1,
prefix + "The number of tabs in group two is 1");
gBrowser.removeTab(pinnedTab);
finish();
}