diff -r 000000000000 -r 6474c204b198 browser/components/tabview/test/browser_tabview_bug630157.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browser/components/tabview/test/browser_tabview_bug630157.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,79 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +function test() { + let cw; + + let createGroupItem = function () { + let bounds = new cw.Rect(20, 20, 400, 200); + let groupItem = new cw.GroupItem([], {bounds: bounds, immediately: true}); + + let groupItemId = groupItem.id; + registerCleanupFunction(function() { + let groupItem = cw.GroupItems.groupItem(groupItemId); + if (groupItem) + groupItem.close(); + }); + + return groupItem; + } + + let assertNumberOfGroups = function (num) { + is(cw.GroupItems.groupItems.length, num, 'there should be ' + num + ' groups'); + } + + let assertNumberOfTabs = function (num) { + is(gBrowser.tabs.length, num, 'there should be ' + num + ' tabs'); + } + + let simulateDoubleClick = function (target, button) { + for (let i=0; i<2; i++) + EventUtils.synthesizeMouseAtCenter(target, {button: button || 0}, cw); + } + + let finishTest = function () { + let tabItem = gBrowser.tabs[0]._tabViewTabItem; + cw.GroupItems.updateActiveGroupItemAndTabBar(tabItem); + + assertNumberOfGroups(1); + assertNumberOfTabs(1); + + finish(); + } + + let testDoubleClick = function () { + let groupItem = createGroupItem(); + assertNumberOfGroups(2); + assertNumberOfTabs(1); + + // simulate double click on group title + let input = groupItem.$title[0]; + simulateDoubleClick(input); + assertNumberOfTabs(1); + + // simulate double click on title bar + let titlebar = groupItem.$titlebar[0]; + simulateDoubleClick(titlebar); + assertNumberOfTabs(1); + + // simulate double click with middle mouse button + let container = groupItem.container; + simulateDoubleClick(container, 1); + assertNumberOfTabs(1); + + // simulate double click with right mouse button + simulateDoubleClick(container, 2); + assertNumberOfTabs(1); + + groupItem.close(); + hideTabView(finishTest); + } + + waitForExplicitFinish(); + registerCleanupFunction(function () TabView.hide()); + + showTabView(function () { + cw = TabView.getContentWindow(); + testDoubleClick(); + }); +}