summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/general/browser_ctrlTab.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/general/browser_ctrlTab.js')
-rw-r--r--browser/base/content/test/general/browser_ctrlTab.js185
1 files changed, 0 insertions, 185 deletions
diff --git a/browser/base/content/test/general/browser_ctrlTab.js b/browser/base/content/test/general/browser_ctrlTab.js
deleted file mode 100644
index d16aaeca4..000000000
--- a/browser/base/content/test/general/browser_ctrlTab.js
+++ /dev/null
@@ -1,185 +0,0 @@
-add_task(function* () {
- gPrefService.setBoolPref("browser.ctrlTab.previews", true);
-
- gBrowser.addTab();
- gBrowser.addTab();
- gBrowser.addTab();
-
- checkTabs(4);
-
- yield ctrlTabTest([2], 1, 0);
- yield ctrlTabTest([2, 3, 1], 2, 2);
- yield ctrlTabTest([], 4, 2);
-
- {
- let selectedIndex = gBrowser.tabContainer.selectedIndex;
- yield pressCtrlTab();
- yield pressCtrlTab(true);
- yield releaseCtrl();
- is(gBrowser.tabContainer.selectedIndex, selectedIndex,
- "Ctrl+Tab -> Ctrl+Shift+Tab keeps the selected tab");
- }
-
- { // test for bug 445369
- let tabs = gBrowser.tabs.length;
- yield pressCtrlTab();
- yield synthesizeCtrlW();
- is(gBrowser.tabs.length, tabs - 1, "Ctrl+Tab -> Ctrl+W removes one tab");
- yield releaseCtrl();
- }
-
- { // test for bug 667314
- let tabs = gBrowser.tabs.length;
- yield pressCtrlTab();
- yield pressCtrlTab(true);
- yield synthesizeCtrlW();
- is(gBrowser.tabs.length, tabs - 1, "Ctrl+Tab -> Ctrl+W removes the selected tab");
- yield releaseCtrl();
- }
-
- gBrowser.addTab();
- checkTabs(3);
- yield ctrlTabTest([2, 1, 0], 7, 1);
-
- { // test for bug 1292049
- let tabToClose = yield BrowserTestUtils.openNewForegroundTab(gBrowser, "about:buildconfig");
- checkTabs(4);
- selectTabs([0, 1, 2, 3]);
-
- yield BrowserTestUtils.removeTab(tabToClose);
- checkTabs(3);
- undoCloseTab();
- checkTabs(4);
- is(gBrowser.tabContainer.selectedIndex, 3, "tab is selected after closing and restoring it");
-
- yield ctrlTabTest([], 1, 2);
- }
-
- { // test for bug 445369
- checkTabs(4);
- selectTabs([1, 2, 0]);
-
- let selectedTab = gBrowser.selectedTab;
- let tabToRemove = gBrowser.tabs[1];
-
- yield pressCtrlTab();
- yield pressCtrlTab();
- yield synthesizeCtrlW();
- ok(!tabToRemove.parentNode,
- "Ctrl+Tab*2 -> Ctrl+W removes the second most recently selected tab");
-
- yield pressCtrlTab(true);
- yield pressCtrlTab(true);
- yield releaseCtrl();
- ok(selectedTab.selected,
- "Ctrl+Tab*2 -> Ctrl+W -> Ctrl+Shift+Tab*2 keeps the selected tab");
- }
- gBrowser.removeTab(gBrowser.tabContainer.lastChild);
- checkTabs(2);
-
- yield ctrlTabTest([1], 1, 0);
-
- gBrowser.removeTab(gBrowser.tabContainer.lastChild);
- checkTabs(1);
-
- { // test for bug 445768
- let focusedWindow = document.commandDispatcher.focusedWindow;
- let eventConsumed = true;
- let detectKeyEvent = function (event) {
- eventConsumed = event.defaultPrevented;
- };
- document.addEventListener("keypress", detectKeyEvent, false);
- yield pressCtrlTab();
- document.removeEventListener("keypress", detectKeyEvent, false);
- ok(eventConsumed, "Ctrl+Tab consumed by the tabbed browser if one tab is open");
- is(focusedWindow, document.commandDispatcher.focusedWindow,
- "Ctrl+Tab doesn't change focus if one tab is open");
- }
-
- // cleanup
- if (gPrefService.prefHasUserValue("browser.ctrlTab.previews"))
- gPrefService.clearUserPref("browser.ctrlTab.previews");
-
- /* private utility functions */
-
- function* pressCtrlTab(aShiftKey) {
- let promise;
- if (!isOpen() && canOpen()) {
- promise = BrowserTestUtils.waitForEvent(ctrlTab.panel, "popupshown");
- } else {
- promise = BrowserTestUtils.waitForEvent(document, "keyup");
- }
- EventUtils.synthesizeKey("VK_TAB", { ctrlKey: true, shiftKey: !!aShiftKey });
- return promise;
- }
-
- function* releaseCtrl() {
- let promise;
- if (isOpen()) {
- promise = BrowserTestUtils.waitForEvent(ctrlTab.panel, "popuphidden");
- } else {
- promise = BrowserTestUtils.waitForEvent(document, "keyup");
- }
- EventUtils.synthesizeKey("VK_CONTROL", { type: "keyup" });
- return promise;
- }
-
- function* synthesizeCtrlW() {
- let promise = BrowserTestUtils.waitForEvent(gBrowser.tabContainer, "TabClose");
- EventUtils.synthesizeKey("w", { ctrlKey: true });
- return promise;
- }
-
- function isOpen() {
- return ctrlTab.isOpen;
- }
-
- function canOpen() {
- return gPrefService.getBoolPref("browser.ctrlTab.previews") && gBrowser.tabs.length > 2;
- }
-
- function checkTabs(aTabs) {
- is(gBrowser.tabs.length, aTabs, "number of open tabs should be " + aTabs);
- }
-
- function selectTabs(tabs) {
- tabs.forEach(function (index) {
- gBrowser.selectedTab = gBrowser.tabs[index];
- });
- }
-
- function* ctrlTabTest(tabsToSelect, tabTimes, expectedIndex) {
- selectTabs(tabsToSelect);
-
- var indexStart = gBrowser.tabContainer.selectedIndex;
- var tabCount = gBrowser.tabs.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++) {
- yield pressCtrlTab();
-
- if (tabCount > 2)
- is(gBrowser.tabContainer.selectedIndex, indexStart,
- "Selected tab doesn't change while tabbing");
- }
-
- if (tabCount > 2) {
- ok(isOpen(),
- "With " + tabCount + " tabs open, Ctrl+Tab opens the preview panel");
-
- yield releaseCtrl();
-
- ok(!isOpen(),
- "Releasing Ctrl closes the preview panel");
- } else {
- ok(!isOpen(),
- "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);
- }
-});