summaryrefslogtreecommitdiffstats
path: root/comm/mailnews/extensions/mdn/test/unit/test_mdnFlags.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mailnews/extensions/mdn/test/unit/test_mdnFlags.js')
-rw-r--r--comm/mailnews/extensions/mdn/test/unit/test_mdnFlags.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/comm/mailnews/extensions/mdn/test/unit/test_mdnFlags.js b/comm/mailnews/extensions/mdn/test/unit/test_mdnFlags.js
new file mode 100644
index 0000000000..4d6094e89d
--- /dev/null
+++ b/comm/mailnews/extensions/mdn/test/unit/test_mdnFlags.js
@@ -0,0 +1,60 @@
+/**
+ * This tests that setting mdn flags works correctly, so that we don't
+ * reprompt when the user re-selects a message.
+ */
+
+localAccountUtils.loadLocalMailAccount();
+
+var localAccount = MailServices.accounts.FindAccountForServer(
+ localAccountUtils.incomingServer
+);
+var identity = MailServices.accounts.createIdentity();
+identity.email = "bob@t2.example.net";
+localAccount.addIdentity(identity);
+localAccount.defaultIdentity = identity;
+
+function run_test() {
+ var headers =
+ "from: alice@t1.example.com\r\n" +
+ "to: bob@t2.example.net\r\n" +
+ "return-path: alice@t1.example.com\r\n" +
+ "Disposition-Notification-To: alice@t1.example.com\r\n";
+
+ let mimeHdr = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(
+ Ci.nsIMimeHeaders
+ );
+ mimeHdr.initialize(headers);
+ mimeHdr.extractHeader("To", false);
+
+ localAccountUtils.inboxFolder.QueryInterface(Ci.nsIMsgLocalMailFolder);
+ localAccountUtils.inboxFolder.addMessage(
+ "From \r\n" + headers + "\r\nhello\r\n"
+ );
+ // Need to setup some prefs
+ Services.prefs.setBoolPref("mail.mdn.report.enabled", true);
+ Services.prefs.setIntPref("mail.mdn.report.not_in_to_cc", 2);
+ Services.prefs.setIntPref("mail.mdn.report.other", 2);
+ Services.prefs.setIntPref("mail.mdn.report.outside_domain", 2);
+
+ var msgFolder = localAccountUtils.inboxFolder;
+
+ var msgWindow = {};
+
+ var msgHdr = mailTestUtils.firstMsgHdr(localAccountUtils.inboxFolder);
+
+ // Everything looks good so far, let's generate the MDN response.
+ var mdnGenerator = Cc[
+ "@mozilla.org/messenger-mdn/generator;1"
+ ].createInstance(Ci.nsIMsgMdnGenerator);
+ mdnGenerator.process(
+ Ci.nsIMsgMdnGenerator.eDisplayed,
+ msgWindow,
+ msgFolder,
+ msgHdr.messageKey,
+ mimeHdr,
+ false
+ );
+ mdnGenerator.userDeclined();
+ Assert.notEqual(msgHdr.flags & Ci.nsMsgMessageFlags.MDNReportSent, 0);
+ Assert.equal(msgHdr.flags & Ci.nsMsgMessageFlags.MDNReportNeeded, 0);
+}