зеркало из https://github.com/mozilla/gecko-dev.git
79 строки
2.8 KiB
JavaScript
79 строки
2.8 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
function test() {
|
|
waitForExplicitFinish();
|
|
|
|
newWindowWithTabView(function (win) {
|
|
registerCleanupFunction(function () win.close());
|
|
waitForFocus(function () testScenarios(win));
|
|
});
|
|
}
|
|
|
|
function testScenarios(win) {
|
|
let simulateDragDrop = function (target) {
|
|
EventUtils.synthesizeMouseAtCenter(target, {type: "mousedown"}, cw);
|
|
EventUtils.synthesizeMouse(target, 40, 20, {type: "mousemove"}, cw);
|
|
EventUtils.synthesizeMouse(target, 80, 20, {type: "mouseup"}, cw);
|
|
}
|
|
|
|
let dragOutOfGroup = function (target) {
|
|
EventUtils.synthesizeMouseAtCenter(target, {type: "mousedown"}, cw);
|
|
EventUtils.synthesizeMouse(target, 600, 5, {type: "mousemove"}, cw);
|
|
EventUtils.synthesizeMouse(target, 600, 5, {type: "mouseup"}, cw);
|
|
}
|
|
|
|
let dragIntoGroup = function (target) {
|
|
EventUtils.synthesizeMouseAtCenter(target, {type: "mousedown"}, cw);
|
|
EventUtils.synthesizeMouse(target, -200, 5, {type: "mousemove"}, cw);
|
|
EventUtils.synthesizeMouse(target, -200, 5, {type: "mouseup"}, cw);
|
|
}
|
|
|
|
let assertActiveOrphan = function (tabItem) {
|
|
ok(!cw.GroupItems.getActiveGroupItem(), "no groupItem is active");
|
|
is(cw.UI.getActiveTab(), tabItem, "orphan tab is active");
|
|
is(cw.UI.getActiveOrphanTab(), tabItem, "orphan tab is active");
|
|
}
|
|
|
|
let cw = win.TabView.getContentWindow();
|
|
let groupItem = cw.GroupItems.groupItems[0];
|
|
let groupItem2 = createGroupItemWithBlankTabs(win, 400, 300, 20, 4);
|
|
|
|
// move group
|
|
cw.UI.setActive(groupItem);
|
|
simulateDragDrop(groupItem2.container);
|
|
is(cw.GroupItems.getActiveGroupItem(), groupItem2, "second groupItem is active");
|
|
is(cw.UI.getActiveTab(), groupItem2.getChild(0), "second groupItem's first tab is active");
|
|
|
|
// resize group
|
|
cw.UI.setActive(groupItem);
|
|
let tabItem = groupItem2.getChild(2);
|
|
groupItem2.setActiveTab(tabItem);
|
|
simulateDragDrop(groupItem2.$resizer[0]);
|
|
is(cw.GroupItems.getActiveGroupItem(), groupItem2, "second groupItem is active");
|
|
is(cw.UI.getActiveTab(), tabItem, "second groupItem's third tab is active");
|
|
|
|
// drag tab out of group
|
|
tabItem = groupItem2.getChild(0);
|
|
dragOutOfGroup(tabItem.container);
|
|
is(cw.UI.getActiveTab(), tabItem, "the dragged tab is active");
|
|
|
|
// drag back into group
|
|
dragIntoGroup(tabItem.container);
|
|
cw.UI.setActive(groupItem);
|
|
cw.UI.setActive(groupItem2);
|
|
is(cw.UI.getActiveTab(), tabItem, "the dropped tab is active");
|
|
|
|
// hide + unhide groupItem
|
|
hideGroupItem(groupItem2, function () {
|
|
is(cw.GroupItems.getActiveGroupItem(), groupItem, "first groupItem is active");
|
|
|
|
unhideGroupItem(groupItem2, function () {
|
|
is(cw.GroupItems.getActiveGroupItem(), groupItem2, "second groupItem is active");
|
|
is(cw.UI.getActiveTab(), tabItem, "the dropped tab is active");
|
|
|
|
finish();
|
|
});
|
|
});
|
|
}
|