mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
79 lines
2.6 KiB
JavaScript
79 lines
2.6 KiB
JavaScript
function test() {
|
|
while (gBrowser.mTabs.length > 1)
|
|
gBrowser.removeCurrentTab();
|
|
|
|
gBrowser.addTab();
|
|
gBrowser.addTab();
|
|
gBrowser.addTab();
|
|
|
|
ctrlTabTest([2] , 1, 0);
|
|
ctrlTabTest([2, 3, 1], 2, 2);
|
|
ctrlTabTest([] , 4, 2);
|
|
|
|
gBrowser.removeTab(gBrowser.tabContainer.lastChild);
|
|
|
|
ctrlTabTest([2, 1, 0], 7, 1);
|
|
|
|
gBrowser.removeTab(gBrowser.tabContainer.lastChild);
|
|
|
|
ctrlTabTest([1] , 1, 0);
|
|
|
|
gBrowser.removeTab(gBrowser.tabContainer.lastChild);
|
|
|
|
var focusedWindow = document.commandDispatcher.focusedWindow;
|
|
var eventConsumed = true;
|
|
var detectKeyEvent = function (event) {
|
|
eventConsumed = event.getPreventDefault();
|
|
};
|
|
document.addEventListener("keypress", detectKeyEvent, false);
|
|
pressCtrlTab();
|
|
document.removeEventListener("keypress", detectKeyEvent, false);
|
|
ok(eventConsumed, "Ctrl+Tab consumed by the tabbed browser if one tab is open");
|
|
is(focusedWindow.location, document.commandDispatcher.focusedWindow.location,
|
|
"Ctrl+Tab doesn't change focus if one tab is open");
|
|
}
|
|
|
|
function pressCtrlTab() EventUtils.synthesizeKey("VK_TAB", { ctrlKey: true });
|
|
|
|
function releaseCtrl() EventUtils.synthesizeKey("VK_CONTROL", { type: "keyup" });
|
|
|
|
function ctrlTabTest(tabsToSelect, tabTimes, expectedIndex) {
|
|
tabsToSelect.forEach(function (index) {
|
|
gBrowser.selectedTab = gBrowser.mTabs[index];
|
|
});
|
|
|
|
var indexStart = gBrowser.tabContainer.selectedIndex;
|
|
var tabCount = gBrowser.mTabs.length;
|
|
var normalized = tabTimes % tabCount;
|
|
var where = normalized == 1 ? "back to the previously selected tab" :
|
|
normalized + " tabs back in most-recently-selected order";
|
|
|
|
for (let i = 0; i < tabTimes; i++) {
|
|
pressCtrlTab();
|
|
|
|
if (tabCount > 2)
|
|
is(gBrowser.tabContainer.selectedIndex, indexStart,
|
|
"Selected tab doesn't change while tabbing");
|
|
}
|
|
|
|
if (tabCount > 2) {
|
|
ok(ctrlTab.panel.state == "showing" || ctrlTab.panel.state == "open",
|
|
"With " + tabCount + " tabs open, Ctrl+Tab opens the preview panel");
|
|
|
|
is(ctrlTab.label.value, gBrowser.mTabs[expectedIndex].label,
|
|
"Preview panel displays label of expected tab");
|
|
|
|
releaseCtrl();
|
|
|
|
ok(ctrlTab.panel.state == "hiding" || ctrlTab.panel.state == "closed",
|
|
"Releasing Ctrl closes the preview panel");
|
|
} else {
|
|
ok(ctrlTab.panel.state == "hiding" || ctrlTab.panel.state == "closed",
|
|
"With " + tabCount + " tabs open, Ctrl+Tab doesn't open the preview panel");
|
|
}
|
|
|
|
is(gBrowser.tabContainer.selectedIndex, expectedIndex,
|
|
"With "+ tabCount +" tabs open and tab " + indexStart
|
|
+ " selected, Ctrl+Tab*" + tabTimes + " goes " + where);
|
|
}
|