browser/components/tabview/test/browser_tabview_bug624847.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 win;
     7   let groupItemId;
     8   let prefix = 'start';
    10   let assertTabViewIsHidden = function () {
    11     ok(!win.TabView.isVisible(), prefix + ': tabview is hidden');
    12   }
    14   let assertNumberOfGroups = function (num) {
    15     is(cw.GroupItems.groupItems.length, num, prefix + ': there should be ' + num + ' groups');
    16   }
    18   let assertNumberOfTabs = function (num) {
    19     is(win.gBrowser.visibleTabs.length, num, prefix + ': there should be ' + num + ' tabs');
    20   }
    22   let assertNumberOfPinnedTabs = function (num) {
    23     is(win.gBrowser._numPinnedTabs, num, prefix + ': there should be ' + num + ' pinned tabs');
    24   }
    26   let assertGroupItemPreserved = function () {
    27     is(cw.GroupItems.groupItems[0].id, groupItemId, prefix + ': groupItem was preserved');
    28   }
    30   let assertValidPrerequisites = function () {
    31     assertNumberOfTabs(1);
    32     assertNumberOfGroups(1);
    33     assertNumberOfPinnedTabs(0);
    34     assertTabViewIsHidden();
    35   }
    37   let createTab = function (url) {
    38     return win.gBrowser.loadOneTab(url || 'http://mochi.test:8888/', {inBackground: true});
    39   }
    41   let createBlankTab = function () {
    42     return createTab('about:blank');
    43   }
    45   let finishTest = function () {
    46     prefix = 'finish';
    47     assertValidPrerequisites();
    48     promiseWindowClosed(win).then(finish);
    49   }
    51   let testUndoCloseWithSelectedBlankTab = function () {
    52     prefix = 'unpinned';
    53     let tab = createTab();
    54     assertNumberOfTabs(2);
    56     afterAllTabsLoaded(function () {
    57       win.gBrowser.removeTab(tab);
    58       assertNumberOfTabs(1);
    59       assertNumberOfPinnedTabs(0);
    61       restoreTab(function () {
    62         prefix = 'unpinned-restored';
    63         assertValidPrerequisites();
    64         assertGroupItemPreserved();
    66         createBlankTab();
    67         afterAllTabsLoaded(testUndoCloseWithSelectedBlankPinnedTab, win);
    68       }, 0, win);
    69     }, win);
    70   }
    72   let testUndoCloseWithSelectedBlankPinnedTab = function () {
    73     prefix = 'pinned';
    74     assertNumberOfTabs(2);
    76     afterAllTabsLoaded(function () {
    77       win.gBrowser.removeTab(win.gBrowser.tabs[0]);
    78       win.gBrowser.pinTab(win.gBrowser.tabs[0]);
    80       assertNumberOfTabs(1);
    81       assertNumberOfPinnedTabs(1);
    83       restoreTab(function () {
    84         prefix = 'pinned-restored';
    85         assertValidPrerequisites();
    86         assertGroupItemPreserved();
    88         createBlankTab();
    89         win.gBrowser.removeTab(win.gBrowser.tabs[0]);
    91         afterAllTabsLoaded(finishTest, win);
    92       }, 0, win);
    93     }, win);
    94   }
    96   waitForExplicitFinish();
    98   newWindowWithTabView(window => {
    99     win = window;
   101     hideTabView(function () {
   102       cw = win.TabView.getContentWindow();
   103       groupItemId = cw.GroupItems.groupItems[0].id;
   105       assertValidPrerequisites();
   106       testUndoCloseWithSelectedBlankTab();
   107     }, win);
   108   });
   109 }

mercurial