toolkit/components/satchel/test/browser/browser_privbrowsing_perwindowpb.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 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 let FormHistory = (Components.utils.import("resource://gre/modules/FormHistory.jsm", {})).FormHistory;
     7 /** Test for Bug 472396 **/
     8 function test() {
     9   // initialization
    10   waitForExplicitFinish();
    11   let windowsToClose = [];
    12   let testURI =
    13     "http://example.com/tests/toolkit/components/satchel/test/subtst_privbrowsing.html";
    15   function doTest(aIsPrivateMode, aShouldValueExist, aWindow, aCallback) {
    16     aWindow.gBrowser.selectedBrowser.addEventListener("load", function onLoad() {
    17       if (aWindow.content.location != testURI) {
    18         aWindow.gBrowser.selectedBrowser.loadURI(testURI);
    19         return;
    20       }
    21       aWindow.gBrowser.selectedBrowser.removeEventListener("load", onLoad, true);
    23       let checks = 0;
    24       function doneCheck() {
    25         checks++;
    26         if (checks == 2) {
    27           executeSoon(aCallback);
    28         }
    29       }
    31       // Wait for the second load of the page to call the callback,
    32       // because the first load submits the form and the page reloads after
    33       // the form submission.
    34       aWindow.gBrowser.selectedBrowser.addEventListener("load", function onLoad() {
    35         aWindow.gBrowser.selectedBrowser.removeEventListener("load", onLoad, true);
    36         doneCheck();
    37       }, true);
    39       let count = 0;
    40       FormHistory.count({ fieldname: "field", value: "value" },
    41         { handleResult: function(result) {
    42             count = result;
    43           },
    44           handleError: function (error) {
    45             do_throw("Error occurred searching form history: " + error);
    46           },
    47           handleCompletion: function(num) {
    48             is(count >= 1, aShouldValueExist, "Checking value exists in form history");
    49             doneCheck();
    50           }
    51         });
    52     }, true);
    54     aWindow.gBrowser.selectedBrowser.loadURI(testURI);
    55   }
    57   function testOnWindow(aOptions, aCallback) {
    58     whenNewWindowLoaded(aOptions, function(aWin) {
    59       windowsToClose.push(aWin);
    60       executeSoon(function() aCallback(aWin));
    61     });
    62   };
    64   registerCleanupFunction(function() {
    65     windowsToClose.forEach(function(aWin) {
    66       aWin.close();
    67     });
    68   });
    71   testOnWindow({private: true}, function(aWin) {
    72     doTest(true, false, aWin, function() {
    73       // Test when not on private mode after visiting a site on private
    74       // mode. The form history should no exist.
    75       testOnWindow({}, function(aWin) {
    76         doTest(false, false, aWin, function() {
    77           finish();
    78         });
    79       });
    80     });
    81   });
    82 }

mercurial