michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: function test() { michael@0: let cw; michael@0: michael@0: let createGroupItem = function () { michael@0: let bounds = new cw.Rect(20, 20, 400, 200); michael@0: let groupItem = new cw.GroupItem([], {bounds: bounds, immediately: true}); michael@0: michael@0: let groupItemId = groupItem.id; michael@0: registerCleanupFunction(function() { michael@0: let groupItem = cw.GroupItems.groupItem(groupItemId); michael@0: if (groupItem) michael@0: groupItem.close(); michael@0: }); michael@0: michael@0: return groupItem; michael@0: } michael@0: michael@0: let assertNumberOfGroups = function (num) { michael@0: is(cw.GroupItems.groupItems.length, num, 'there should be ' + num + ' groups'); michael@0: } michael@0: michael@0: let assertNumberOfTabs = function (num) { michael@0: is(gBrowser.tabs.length, num, 'there should be ' + num + ' tabs'); michael@0: } michael@0: michael@0: let simulateDoubleClick = function (target, button) { michael@0: for (let i=0; i<2; i++) michael@0: EventUtils.synthesizeMouseAtCenter(target, {button: button || 0}, cw); michael@0: } michael@0: michael@0: let finishTest = function () { michael@0: let tabItem = gBrowser.tabs[0]._tabViewTabItem; michael@0: cw.GroupItems.updateActiveGroupItemAndTabBar(tabItem); michael@0: michael@0: assertNumberOfGroups(1); michael@0: assertNumberOfTabs(1); michael@0: michael@0: finish(); michael@0: } michael@0: michael@0: let testDoubleClick = function () { michael@0: let groupItem = createGroupItem(); michael@0: assertNumberOfGroups(2); michael@0: assertNumberOfTabs(1); michael@0: michael@0: // simulate double click on group title michael@0: let input = groupItem.$title[0]; michael@0: simulateDoubleClick(input); michael@0: assertNumberOfTabs(1); michael@0: michael@0: // simulate double click on title bar michael@0: let titlebar = groupItem.$titlebar[0]; michael@0: simulateDoubleClick(titlebar); michael@0: assertNumberOfTabs(1); michael@0: michael@0: // simulate double click with middle mouse button michael@0: let container = groupItem.container; michael@0: simulateDoubleClick(container, 1); michael@0: assertNumberOfTabs(1); michael@0: michael@0: // simulate double click with right mouse button michael@0: simulateDoubleClick(container, 2); michael@0: assertNumberOfTabs(1); michael@0: michael@0: groupItem.close(); michael@0: hideTabView(finishTest); michael@0: } michael@0: michael@0: waitForExplicitFinish(); michael@0: registerCleanupFunction(function () TabView.hide()); michael@0: michael@0: showTabView(function () { michael@0: cw = TabView.getContentWindow(); michael@0: testDoubleClick(); michael@0: }); michael@0: }