diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /comm/mailnews/import/test/unit/test_outlook_settings.js | |
parent | Initial commit. (diff) | |
download | thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | comm/mailnews/import/test/unit/test_outlook_settings.js | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/comm/mailnews/import/test/unit/test_outlook_settings.js b/comm/mailnews/import/test/unit/test_outlook_settings.js new file mode 100644 index 0000000000..0f0313dcad --- /dev/null +++ b/comm/mailnews/import/test/unit/test_outlook_settings.js @@ -0,0 +1,158 @@ +var { MailServices } = ChromeUtils.import( + "resource:///modules/MailServices.jsm" +); + +/* import-globals-from resources/mock_windows_reg_factory.js */ +load("resources/mock_windows_reg_factory.js"); + +function POP3Account() {} + +POP3Account.prototype = { + "Account Name": "POP3 Account Name", + "POP3 Server": "pop.host.invalid", + "POP3 User Name": "pop3user", + "Leave Mail On Server": 1, + "SMTP Server": "smtp.host.invalid", + "SMTP Display Name": "SMTP Display Name", + "SMTP Email Address": "pop3user@host.invalid", + "SMTP Reply To Email Address": "pop3user@host.invalid", + "SMTP Organization Name": "SMTP Organization Name", + "SMTP User Name": "smtpuser", +}; + +function IMAPAccount() {} + +IMAPAccount.prototype = { + "Account Name": "IMAP Account Name", + "IMAP Server": "imap.host.invalid", + "IMAP User Name": "imapuser", + "SMTP Server": "smtp.host.invalid", + "SMTP Display Name": "SMTP Display Name", + "SMTP Email Address": "imapuser@host.invalid", + "SMTP Reply To Email Address": "imapuser@host.invalid", + "SMTP Organization Name": "SMTP Organization Name", + "SMTP User Name": "smtpuser", +}; + +/* Outlook 98 */ +function Outlook98Registry(defaultAccount) { + this._defaultAccount = defaultAccount; +} + +Outlook98Registry.prototype = { + get "Software\\Microsoft\\Office\\8.0\\Outlook\\OMI Account Manager"() { + return { + "Default Mail Account": "00000001", + "00000001": this._defaultAccount, + }; + }, +}; + +/* Outlook 2003 - */ +function Outlook2003Registry(defaultAccount) { + this._defaultAccount = defaultAccount; +} + +Outlook2003Registry.prototype = { + get "Software\\Microsoft\\Office\\Outlook\\OMI Account Manager"() { + return { + "Default Mail Account": "00000001", + "00000001": this._defaultAccount, + }; + }, +}; + +var expectedPop3Account = { + incomingServer: { + prettyName: "POP3 Account Name", + type: "pop3", + hostName: "pop.host.invalid", + username: "pop3user", + leaveMessagesOnServer: true, + + // These are account default values, not imported from Outlook. + // They should probably be omitted, but the check functions in + // import_helper.js expect to find them. + deleteMailLeftOnServer: false, + deleteByAgeFromServer: false, + numDaysToLeaveOnServer: 7, + port: 110, + isSecure: false, + authMethod: Ci.nsMsgAuthMethod.passwordCleartext, + socketType: Ci.nsMsgSocketType.plain, + doBiff: true, + biffMinutes: 10, + }, + identity: { + fullName: "SMTP Display Name", + email: "pop3user@host.invalid", + replyTo: "pop3user@host.invalid", + organization: "SMTP Organization Name", + }, + smtpServer: { + hostname: "smtp.host.invalid", + username: "smtpuser", + port: 0, // default port + authMethod: Ci.nsMsgAuthMethod.passwordCleartext, + socketType: Ci.nsMsgSocketType.plain, + }, +}; + +var expectedImapAccount = { + incomingServer: { + prettyName: "IMAP Account Name", + type: "imap", + hostName: "imap.host.invalid", + username: "imapuser", + + // These are account default values, not imported from Outlook. + // They should probably be omitted, but the check functions in + // import_helper.js expect to find them. + port: 143, + isSecure: false, + authMethod: Ci.nsMsgAuthMethod.passwordCleartext, + socketType: Ci.nsMsgSocketType.plain, + doBiff: true, + biffMinutes: 10, + }, + identity: { + fullName: "SMTP Display Name", + email: "imapuser@host.invalid", + replyTo: "imapuser@host.invalid", + organization: "SMTP Organization Name", + }, + smtpServer: { + hostname: "smtp.host.invalid", + username: "smtpuser", + port: 0, // default port + authMethod: Ci.nsMsgAuthMethod.passwordCleartext, + socketType: Ci.nsMsgSocketType.plain, + }, +}; + +function teardown() { + for (let server of MailServices.smtp.servers) { + MailServices.smtp.deleteServer(server); + } + + teardown_mock_registry(); +} + +function _test(registry, expectedAccount) { + try { + setup_mock_registry(registry); + new SettingsImportHelper(null, "Outlook", [expectedAccount]).beginImport(); + } catch (e) { + teardown(); + do_throw(e); + } + teardown(); +} + +function run_test() { + _test(new Outlook2003Registry(new POP3Account()), expectedPop3Account); + _test(new Outlook2003Registry(new IMAPAccount()), expectedImapAccount); + + _test(new Outlook98Registry(new POP3Account()), expectedPop3Account); + _test(new Outlook98Registry(new IMAPAccount()), expectedImapAccount); +} |