diff options
Diffstat (limited to 'toolkit/components/passwordmgr/test/unit/test_logins_decrypt_failure.js')
-rw-r--r-- | toolkit/components/passwordmgr/test/unit/test_logins_decrypt_failure.js | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/toolkit/components/passwordmgr/test/unit/test_logins_decrypt_failure.js b/toolkit/components/passwordmgr/test/unit/test_logins_decrypt_failure.js deleted file mode 100644 index ffbedb4de..000000000 --- a/toolkit/components/passwordmgr/test/unit/test_logins_decrypt_failure.js +++ /dev/null @@ -1,77 +0,0 @@ -/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ -/* vim: set ts=2 et sw=2 tw=80: */ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -/** - * Tests the case where there are logins that cannot be decrypted. - */ - -"use strict"; - -// Globals - -/** - * Resets the token used to decrypt logins. This is equivalent to resetting the - * master password when it is not known. - */ -function resetMasterPassword() -{ - let token = Cc["@mozilla.org/security/pk11tokendb;1"] - .getService(Ci.nsIPK11TokenDB).getInternalKeyToken(); - token.reset(); - token.changePassword("", ""); -} - -// Tests - -/** - * Resets the master password after some logins were added to the database. - */ -add_task(function test_logins_decrypt_failure() -{ - let logins = TestData.loginList(); - for (let loginInfo of logins) { - Services.logins.addLogin(loginInfo); - } - - // This makes the existing logins non-decryptable. - resetMasterPassword(); - - // These functions don't see the non-decryptable entries anymore. - do_check_eq(Services.logins.getAllLogins().length, 0); - do_check_eq(Services.logins.findLogins({}, "", "", "").length, 0); - do_check_eq(Services.logins.searchLogins({}, newPropertyBag()).length, 0); - Assert.throws(() => Services.logins.modifyLogin(logins[0], newPropertyBag()), - /No matching logins/); - Assert.throws(() => Services.logins.removeLogin(logins[0]), - /No matching logins/); - - // The function that counts logins sees the non-decryptable entries also. - do_check_eq(Services.logins.countLogins("", "", ""), logins.length); - - // Equivalent logins can be added. - for (let loginInfo of logins) { - Services.logins.addLogin(loginInfo); - } - LoginTestUtils.checkLogins(logins); - do_check_eq(Services.logins.countLogins("", "", ""), logins.length * 2); - - // Finding logins doesn't return the non-decryptable duplicates. - do_check_eq(Services.logins.findLogins({}, "http://www.example.com", - "", "").length, 1); - let matchData = newPropertyBag({ hostname: "http://www.example.com" }); - do_check_eq(Services.logins.searchLogins({}, matchData).length, 1); - - // Removing single logins does not remove non-decryptable logins. - for (let loginInfo of TestData.loginList()) { - Services.logins.removeLogin(loginInfo); - } - do_check_eq(Services.logins.getAllLogins().length, 0); - do_check_eq(Services.logins.countLogins("", "", ""), logins.length); - - // Removing all logins removes the non-decryptable entries also. - Services.logins.removeAllLogins(); - do_check_eq(Services.logins.getAllLogins().length, 0); - do_check_eq(Services.logins.countLogins("", "", ""), 0); -}); |