summaryrefslogtreecommitdiffstats
path: root/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js')
-rw-r--r--toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js192
1 files changed, 0 insertions, 192 deletions
diff --git a/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js b/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js
deleted file mode 100644
index 57cfa9f83..000000000
--- a/toolkit/components/passwordmgr/test/browser/browser_passwordmgrdlg.js
+++ /dev/null
@@ -1,192 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-function test() {
- waitForExplicitFinish();
-
- let pwmgr = Cc["@mozilla.org/login-manager;1"].
- getService(Ci.nsILoginManager);
- pwmgr.removeAllLogins();
-
- // Add some initial logins
- let urls = [
- "http://example.com/",
- "http://example.org/",
- "http://mozilla.com/",
- "http://mozilla.org/",
- "http://spreadfirefox.com/",
- "http://planet.mozilla.org/",
- "https://developer.mozilla.org/",
- "http://hg.mozilla.org/",
- "http://dxr.mozilla.org/",
- "http://feeds.mozilla.org/",
- ];
- let nsLoginInfo = new Components.Constructor("@mozilla.org/login-manager/loginInfo;1",
- Ci.nsILoginInfo, "init");
- let logins = [
- new nsLoginInfo(urls[0], urls[0], null, "user", "password", "u1", "p1"),
- new nsLoginInfo(urls[1], urls[1], null, "username", "password", "u2", "p2"),
- new nsLoginInfo(urls[2], urls[2], null, "ehsan", "mypass", "u3", "p3"),
- new nsLoginInfo(urls[3], urls[3], null, "ehsan", "mypass", "u4", "p4"),
- new nsLoginInfo(urls[4], urls[4], null, "john", "smith", "u5", "p5"),
- new nsLoginInfo(urls[5], urls[5], null, "what?", "very secret", "u6", "p6"),
- new nsLoginInfo(urls[6], urls[6], null, "really?", "super secret", "u7", "p7"),
- new nsLoginInfo(urls[7], urls[7], null, "you sure?", "absolutely", "u8", "p8"),
- new nsLoginInfo(urls[8], urls[8], null, "my user name", "mozilla", "u9", "p9"),
- new nsLoginInfo(urls[9], urls[9], null, "my username", "mozilla.com", "u10", "p10"),
- ];
- logins.forEach(login => pwmgr.addLogin(login));
-
- // Open the password manager dialog
- const PWMGR_DLG = "chrome://passwordmgr/content/passwordManager.xul";
- let pwmgrdlg = window.openDialog(PWMGR_DLG, "Toolkit:PasswordManager", "");
- SimpleTest.waitForFocus(doTest, pwmgrdlg);
-
- // the meat of the test
- function doTest() {
- let doc = pwmgrdlg.document;
- let win = doc.defaultView;
- let filter = doc.getElementById("filter");
- let tree = doc.getElementById("signonsTree");
- let view = tree.view;
-
- is(filter.value, "", "Filter box should initially be empty");
- is(view.rowCount, 10, "There should be 10 passwords initially");
-
- // Prepare a set of tests
- // filter: the text entered in the filter search box
- // count: the number of logins which should match the respective filter
- // count2: the number of logins which should match the respective filter
- // if the passwords are being shown as well
- // Note: if a test doesn't have count2 set, count is used instead.
- let tests = [
- {filter: "pass", count: 0, count2: 4},
- {filter: "", count: 10}, // test clearing the filter
- {filter: "moz", count: 7},
- {filter: "mozi", count: 7},
- {filter: "mozil", count: 7},
- {filter: "mozill", count: 7},
- {filter: "mozilla", count: 7},
- {filter: "mozilla.com", count: 1, count2: 2},
- {filter: "user", count: 4},
- {filter: "user ", count: 1},
- {filter: " user", count: 2},
- {filter: "http", count: 10},
- {filter: "https", count: 1},
- {filter: "secret", count: 0, count2: 2},
- {filter: "secret!", count: 0},
- ];
-
- let toggleCalls = 0;
- function toggleShowPasswords(func) {
- let toggleButton = doc.getElementById("togglePasswords");
- let showMode = (toggleCalls++ % 2) == 0;
-
- // only watch for a confirmation dialog every other time being called
- if (showMode) {
- Services.ww.registerNotification(function (aSubject, aTopic, aData) {
- if (aTopic == "domwindowclosed")
- Services.ww.unregisterNotification(arguments.callee);
- else if (aTopic == "domwindowopened") {
- let targetWin = aSubject.QueryInterface(Ci.nsIDOMEventTarget);
- SimpleTest.waitForFocus(function() {
- EventUtils.sendKey("RETURN", targetWin);
- }, targetWin);
- }
- });
- }
-
- Services.obs.addObserver(function (aSubject, aTopic, aData) {
- if (aTopic == "passwordmgr-password-toggle-complete") {
- Services.obs.removeObserver(arguments.callee, aTopic);
- func();
- }
- }, "passwordmgr-password-toggle-complete", false);
-
- EventUtils.synthesizeMouse(toggleButton, 1, 1, {}, win);
- }
-
- function runTests(mode, endFunction) {
- let testCounter = 0;
-
- function setFilter(string) {
- filter.value = string;
- filter.doCommand();
- }
-
- function runOneTest(testCase) {
- function tester() {
- is(view.rowCount, expected, expected + " logins should match '" + testCase.filter + "'");
- }
-
- let expected;
- switch (mode) {
- case 1: // without showing passwords
- expected = testCase.count;
- break;
- case 2: // showing passwords
- expected = ("count2" in testCase) ? testCase.count2 : testCase.count;
- break;
- case 3: // toggle
- expected = testCase.count;
- tester();
- toggleShowPasswords(function () {
- expected = ("count2" in testCase) ? testCase.count2 : testCase.count;
- tester();
- toggleShowPasswords(proceed);
- });
- return;
- }
- tester();
- proceed();
- }
-
- function proceed() {
- // run the next test if necessary or proceed with the tests
- if (testCounter != tests.length)
- runNextTest();
- else
- endFunction();
- }
-
- function runNextTest() {
- let testCase = tests[testCounter++];
- setFilter(testCase.filter);
- setTimeout(runOneTest, 0, testCase);
- }
-
- runNextTest();
- }
-
- function step1() {
- runTests(1, step2);
- }
-
- function step2() {
- toggleShowPasswords(function() {
- runTests(2, step3);
- });
- }
-
- function step3() {
- toggleShowPasswords(function() {
- runTests(3, lastStep);
- });
- }
-
- function lastStep() {
- // cleanup
- Services.ww.registerNotification(function (aSubject, aTopic, aData) {
- // unregister ourself
- Services.ww.unregisterNotification(arguments.callee);
-
- pwmgr.removeAllLogins();
- finish();
- });
- pwmgrdlg.close();
- }
-
- step1();
- }
-}