browser/components/tabview/test/browser_tabview_bug628270.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* Any copyright is dedicated to the Public Domain.
     2    http://creativecommons.org/publicdomain/zero/1.0/ */
     4 function test() {
     5   let cw;
     6   let prefix = 'start';
     8   let createGroupItem = function () {
     9     let bounds = new cw.Rect(20, 20, 200, 200);
    10     let groupItem = new cw.GroupItem([], {bounds: bounds, immediately: true});
    12     cw.UI.setActive(groupItem);
    13     gBrowser.loadOneTab('http://mochi.test:8888/', {inBackground: true});
    14     gBrowser.loadOneTab('http://mochi.test:8888/', {inBackground: true});
    16     let groupItemId = groupItem.id;
    17     registerCleanupFunction(function() {
    18       let groupItem = cw.GroupItems.groupItem(groupItemId);
    19       if (groupItem)
    20         groupItem.close();
    21     });
    22   }
    24   let getGroupItem = function (index) {
    25     return cw.GroupItems.groupItems[index];
    26   }
    28   let activateFirstGroupItem = function () {
    29     let activeTabItem = getGroupItem(0).getChild(0);
    30     cw.GroupItems.updateActiveGroupItemAndTabBar(activeTabItem);
    31   }
    33   let assertTabViewIsHidden = function () {
    34     ok(!TabView.isVisible(), prefix + ': tabview is hidden');
    35   }
    37   let assertNumberOfGroups = function (num) {
    38     is(cw.GroupItems.groupItems.length, num, prefix + ': there are ' + num + ' groups');
    39   }
    41   let assertNumberOfTabs = function (num) {
    42     is(gBrowser.visibleTabs.length, num, prefix + ': there are ' + num + ' tabs');
    43   }
    45   let assertNumberOfPinnedTabs = function (num) {
    46     is(gBrowser._numPinnedTabs, num, prefix + ': there are ' + num + ' pinned tabs');
    47   }
    49   let assertNumberOfTabsInGroup = function (groupItem, num) {
    50     is(groupItem.getChildren().length, num, prefix + ': there are ' + num + ' tabs in the group');
    51   }
    53   let assertValidPrerequisites = function () {
    54     assertNumberOfTabs(1);
    55     assertNumberOfGroups(1);
    56     assertNumberOfPinnedTabs(0);
    57   }
    59   let finishTest = function () {
    60     prefix = 'finish';
    61     assertValidPrerequisites();
    62     assertTabViewIsHidden();
    63     finish();
    64   }
    66   let testRestoreTabFromInactiveGroup = function () {
    67     prefix = 'restore';
    68     activateFirstGroupItem();
    70     let groupItem = getGroupItem(1);
    71     let tabItem = groupItem.getChild(0);
    73     EventUtils.synthesizeMouseAtCenter(
    74       tabItem.$close[0], {}, TabView.getContentWindow());
    75     assertNumberOfTabsInGroup(groupItem, 1);
    77     restoreTab(function () {
    78       assertNumberOfTabsInGroup(groupItem, 2);
    80       activateFirstGroupItem();
    81       gBrowser.removeTab(gBrowser.tabs[1]);
    82       gBrowser.removeTab(gBrowser.tabs[1]);
    83       hideTabView(finishTest);
    84     });
    85   }
    87   waitForExplicitFinish();
    88   assertTabViewIsHidden();
    89   registerCleanupFunction(function () TabView.hide());
    91   showTabView(function () {
    92     cw = TabView.getContentWindow();
    93     assertValidPrerequisites();
    95     createGroupItem();
    96     afterAllTabsLoaded(testRestoreTabFromInactiveGroup);
    97   });
    98 }

mercurial