|
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 |
|
7 let createGroupItem = function () { |
|
8 let bounds = new cw.Rect(20, 20, 400, 200); |
|
9 let groupItem = new cw.GroupItem([], {bounds: bounds, immediately: true}); |
|
10 |
|
11 let groupItemId = groupItem.id; |
|
12 registerCleanupFunction(function() { |
|
13 let groupItem = cw.GroupItems.groupItem(groupItemId); |
|
14 if (groupItem) |
|
15 groupItem.close(); |
|
16 }); |
|
17 |
|
18 return groupItem; |
|
19 } |
|
20 |
|
21 let assertNumberOfGroups = function (num) { |
|
22 is(cw.GroupItems.groupItems.length, num, 'there should be ' + num + ' groups'); |
|
23 } |
|
24 |
|
25 let assertNumberOfTabs = function (num) { |
|
26 is(gBrowser.tabs.length, num, 'there should be ' + num + ' tabs'); |
|
27 } |
|
28 |
|
29 let simulateDoubleClick = function (target, button) { |
|
30 for (let i=0; i<2; i++) |
|
31 EventUtils.synthesizeMouseAtCenter(target, {button: button || 0}, cw); |
|
32 } |
|
33 |
|
34 let finishTest = function () { |
|
35 let tabItem = gBrowser.tabs[0]._tabViewTabItem; |
|
36 cw.GroupItems.updateActiveGroupItemAndTabBar(tabItem); |
|
37 |
|
38 assertNumberOfGroups(1); |
|
39 assertNumberOfTabs(1); |
|
40 |
|
41 finish(); |
|
42 } |
|
43 |
|
44 let testDoubleClick = function () { |
|
45 let groupItem = createGroupItem(); |
|
46 assertNumberOfGroups(2); |
|
47 assertNumberOfTabs(1); |
|
48 |
|
49 // simulate double click on group title |
|
50 let input = groupItem.$title[0]; |
|
51 simulateDoubleClick(input); |
|
52 assertNumberOfTabs(1); |
|
53 |
|
54 // simulate double click on title bar |
|
55 let titlebar = groupItem.$titlebar[0]; |
|
56 simulateDoubleClick(titlebar); |
|
57 assertNumberOfTabs(1); |
|
58 |
|
59 // simulate double click with middle mouse button |
|
60 let container = groupItem.container; |
|
61 simulateDoubleClick(container, 1); |
|
62 assertNumberOfTabs(1); |
|
63 |
|
64 // simulate double click with right mouse button |
|
65 simulateDoubleClick(container, 2); |
|
66 assertNumberOfTabs(1); |
|
67 |
|
68 groupItem.close(); |
|
69 hideTabView(finishTest); |
|
70 } |
|
71 |
|
72 waitForExplicitFinish(); |
|
73 registerCleanupFunction(function () TabView.hide()); |
|
74 |
|
75 showTabView(function () { |
|
76 cw = TabView.getContentWindow(); |
|
77 testDoubleClick(); |
|
78 }); |
|
79 } |