diff options
Diffstat (limited to 'comm/mailnews/local/test/unit/test_pop3Password3.js')
-rw-r--r-- | comm/mailnews/local/test/unit/test_pop3Password3.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/comm/mailnews/local/test/unit/test_pop3Password3.js b/comm/mailnews/local/test/unit/test_pop3Password3.js new file mode 100644 index 0000000000..b12181e746 --- /dev/null +++ b/comm/mailnews/local/test/unit/test_pop3Password3.js @@ -0,0 +1,75 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/** + * Extra tests for POP3 passwords (forgetPassword) + */ + +/* import-globals-from ../../../test/resources/passwordStorage.js */ +load("../../../resources/passwordStorage.js"); + +var kUser1 = "testpop3"; +var kUser2 = "testpop3a"; +var kProtocol = "pop3"; +var kHostname = "localhost"; +var kServerUrl = "mailbox://" + kHostname; + +add_task(async function () { + // Prepare files for passwords (generated by a script in bug 1018624). + await setupForPassword("signons-mailnews1.8-multiple.json"); + + // Set up the basic accounts and folders. + // We would use createPop3ServerAndLocalFolders() however we want to have + // a different username and NO password for this test (as we expect to load + // it from the signons json file in which the login information is stored). + localAccountUtils.loadLocalMailAccount(); + + let incomingServer1 = MailServices.accounts.createIncomingServer( + kUser1, + kHostname, + kProtocol + ); + + let incomingServer2 = MailServices.accounts.createIncomingServer( + kUser2, + kHostname, + kProtocol + ); + + // Test - Check there are two logins to begin with. + var logins = Services.logins.findLogins(kServerUrl, null, kServerUrl); + + Assert.equal(logins.length, 2); + + // These will either be one way around or the other. + if (logins[0].username == kUser1) { + Assert.equal(logins[1].username, kUser2); + } else { + Assert.equal(logins[0].username, kUser2); + Assert.equal(logins[1].username, kUser1); + } + + // Test - Remove a login via the incoming server + incomingServer1.forgetPassword(); + + logins = Services.logins.findLogins(kServerUrl, null, kServerUrl); + + // should be one login left for kUser2 + Assert.equal(logins.length, 1); + Assert.equal(logins[0].username, kUser2); + + // Bug 561056 - Expand username to also contain domain (i.e. full email). + incomingServer2.username = kUser2 + "@local.host"; + + logins = Services.logins.findLogins(kServerUrl, null, kServerUrl); + + // There should still be the one login left for kUser2 + Assert.equal(logins.length, 1); + // LoginInfo should be migrated in MsgIncomingServer.jsm. + Assert.equal(logins[0].username, incomingServer2.username); + + // Change username to another one. + incomingServer2.username = "testpop"; + logins = Services.logins.findLogins(kServerUrl, null, kServerUrl); + + // LoginInfo should be migrated in MsgIncomingServer.jsm. + Assert.equal(logins.length, 1); +}); |