browser/components/tabview/test/browser_tabview_bug628270.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:28a0479d2b0f
1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
3
4 function test() {
5 let cw;
6 let prefix = 'start';
7
8 let createGroupItem = function () {
9 let bounds = new cw.Rect(20, 20, 200, 200);
10 let groupItem = new cw.GroupItem([], {bounds: bounds, immediately: true});
11
12 cw.UI.setActive(groupItem);
13 gBrowser.loadOneTab('http://mochi.test:8888/', {inBackground: true});
14 gBrowser.loadOneTab('http://mochi.test:8888/', {inBackground: true});
15
16 let groupItemId = groupItem.id;
17 registerCleanupFunction(function() {
18 let groupItem = cw.GroupItems.groupItem(groupItemId);
19 if (groupItem)
20 groupItem.close();
21 });
22 }
23
24 let getGroupItem = function (index) {
25 return cw.GroupItems.groupItems[index];
26 }
27
28 let activateFirstGroupItem = function () {
29 let activeTabItem = getGroupItem(0).getChild(0);
30 cw.GroupItems.updateActiveGroupItemAndTabBar(activeTabItem);
31 }
32
33 let assertTabViewIsHidden = function () {
34 ok(!TabView.isVisible(), prefix + ': tabview is hidden');
35 }
36
37 let assertNumberOfGroups = function (num) {
38 is(cw.GroupItems.groupItems.length, num, prefix + ': there are ' + num + ' groups');
39 }
40
41 let assertNumberOfTabs = function (num) {
42 is(gBrowser.visibleTabs.length, num, prefix + ': there are ' + num + ' tabs');
43 }
44
45 let assertNumberOfPinnedTabs = function (num) {
46 is(gBrowser._numPinnedTabs, num, prefix + ': there are ' + num + ' pinned tabs');
47 }
48
49 let assertNumberOfTabsInGroup = function (groupItem, num) {
50 is(groupItem.getChildren().length, num, prefix + ': there are ' + num + ' tabs in the group');
51 }
52
53 let assertValidPrerequisites = function () {
54 assertNumberOfTabs(1);
55 assertNumberOfGroups(1);
56 assertNumberOfPinnedTabs(0);
57 }
58
59 let finishTest = function () {
60 prefix = 'finish';
61 assertValidPrerequisites();
62 assertTabViewIsHidden();
63 finish();
64 }
65
66 let testRestoreTabFromInactiveGroup = function () {
67 prefix = 'restore';
68 activateFirstGroupItem();
69
70 let groupItem = getGroupItem(1);
71 let tabItem = groupItem.getChild(0);
72
73 EventUtils.synthesizeMouseAtCenter(
74 tabItem.$close[0], {}, TabView.getContentWindow());
75 assertNumberOfTabsInGroup(groupItem, 1);
76
77 restoreTab(function () {
78 assertNumberOfTabsInGroup(groupItem, 2);
79
80 activateFirstGroupItem();
81 gBrowser.removeTab(gBrowser.tabs[1]);
82 gBrowser.removeTab(gBrowser.tabs[1]);
83 hideTabView(finishTest);
84 });
85 }
86
87 waitForExplicitFinish();
88 assertTabViewIsHidden();
89 registerCleanupFunction(function () TabView.hide());
90
91 showTabView(function () {
92 cw = TabView.getContentWindow();
93 assertValidPrerequisites();
94
95 createGroupItem();
96 afterAllTabsLoaded(testRestoreTabFromInactiveGroup);
97 });
98 }

mercurial