summaryrefslogtreecommitdiffstats
path: root/comm/mailnews/import/test/unit/test_outlook_settings.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mailnews/import/test/unit/test_outlook_settings.js')
-rw-r--r--comm/mailnews/import/test/unit/test_outlook_settings.js158
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);
+}