browser/components/sessionstore/test/browser_454908.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 "use strict";
     6 let tmp = {};
     7 Cu.import("resource:///modules/sessionstore/SessionSaver.jsm", tmp);
     8 let {SessionSaver} = tmp;
    10 const URL = ROOT + "browser_454908_sample.html";
    11 const PASS = "pwd-" + Math.random();
    13 /**
    14  * Bug 454908 - Don't save/restore values of password fields.
    15  */
    16 add_task(function test_dont_save_passwords() {
    17   // Make sure we do save form data.
    18   Services.prefs.clearUserPref("browser.sessionstore.privacy_level");
    20   // Add a tab with a password field.
    21   let tab = gBrowser.addTab(URL);
    22   let browser = tab.linkedBrowser;
    23   yield promiseBrowserLoaded(browser);
    25   // Fill in some values.
    26   let usernameValue = "User " + Math.random();
    27   yield setInputValue(browser, {id: "username", value: usernameValue});
    28   yield setInputValue(browser, {id: "passwd", value: PASS});
    30   // Close and restore the tab.
    31   gBrowser.removeTab(tab);
    32   tab = ss.undoCloseTab(window, 0);
    33   browser = tab.linkedBrowser;
    34   yield promiseTabRestored(tab);
    36   // Check that password fields aren't saved/restored.
    37   let username = yield getInputValue(browser, {id: "username"});
    38   is(username, usernameValue, "username was saved/restored");
    39   let passwd = yield getInputValue(browser, {id: "passwd"});
    40   is(passwd, "", "password wasn't saved/restored");
    42   // Write to disk and read our file.
    43   yield SessionSaver.run();
    44   let path = OS.Path.join(OS.Constants.Path.profileDir, "sessionstore.js");
    45   let data = yield OS.File.read(path);
    46   let state = new TextDecoder().decode(data);
    48   // Ensure that sessionstore.js doesn't contain our password.
    49   is(state.indexOf(PASS), -1, "password has not been written to disk");
    51   // Cleanup.
    52   gBrowser.removeTab(tab);
    53 });

mercurial