browser/metro/base/tests/mochitest/browser_sessionstore.js

Wed, 31 Dec 2014 06:55:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:55:50 +0100
changeset 2
7e26c7da4463
permissions
-rw-r--r--

Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2

     1 /* vim: set ts=2 et sw=2 tw=80: */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 "use strict";
     8 var gSessionStore = Cc["@mozilla.org/browser/sessionstore;1"]
     9                     .getService(Ci.nsISessionStore);
    11 function test() {
    12   runTests();
    13 }
    15 function getState() {
    16   return JSON.parse(gSessionStore.getBrowserState());
    17 }
    19 function getTabData() {
    20   return getState().windows[0].tabs;
    21 }
    23 function isValidTabData(aData) {
    24   return aData && aData.entries && aData.entries.length &&
    25            typeof aData.index == "number";
    26 }
    28 gTests.push({
    29   desc: "getBrowserState tests",
    30   run: function() {
    31     // Wait for Session Manager to be initialized.
    32     yield waitForCondition(() => window.__SSID);
    33     info(window.__SSID);
    34     let tabData1 = getTabData();
    35     ok(tabData1.every(isValidTabData), "Tab data starts out valid");
    37     // Open a tab.
    38     let tab = Browser.addTab("about:mozilla");
    39     let tabData2 = getTabData();
    40     is(tabData2.length, tabData1.length, "New tab not added yet.");
    42     // Wait for the tab's session data to be initialized.
    43     yield waitForMessage("Content:SessionHistory", tab.browser.messageManager);
    44     yield waitForMs(0);
    45     let tabData3 = getTabData();
    46     is(tabData3.length, tabData1.length + 1, "New tab added.");
    47     ok(tabData3.every(isValidTabData), "Tab data still valid");
    49     // Close the tab.
    50     Browser.closeTab(tab, { forceClose: true } );
    51     let tabData4 = getTabData();
    52     is(tabData4.length, tabData1.length, "Closed tab removed.");
    53     ok(tabData4.every(isValidTabData), "Tab data valid again");
    54   }
    55 });

mercurial