summaryrefslogtreecommitdiffstats
path: root/comm/mail/test/browser/composition/browser_customHeaders.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mail/test/browser/composition/browser_customHeaders.js')
-rw-r--r--comm/mail/test/browser/composition/browser_customHeaders.js92
1 files changed, 92 insertions, 0 deletions
diff --git a/comm/mail/test/browser/composition/browser_customHeaders.js b/comm/mail/test/browser/composition/browser_customHeaders.js
new file mode 100644
index 0000000000..308c800c04
--- /dev/null
+++ b/comm/mail/test/browser/composition/browser_customHeaders.js
@@ -0,0 +1,92 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/**
+ * Test mail.compose.other.header is rendered and handled correctly.
+ */
+var {
+ close_compose_window,
+ get_msg_source,
+ open_compose_new_mail,
+ save_compose_message,
+ open_compose_from_draft,
+} = ChromeUtils.import("resource://testing-common/mozmill/ComposeHelpers.jsm");
+var { be_in_folder, select_click_row, get_special_folder } = ChromeUtils.import(
+ "resource://testing-common/mozmill/FolderDisplayHelpers.jsm"
+);
+var { wait_for_window_focused } = ChromeUtils.import(
+ "resource://testing-common/mozmill/WindowHelpers.jsm"
+);
+
+/**
+ * Test custom headers are set and encoded correctly.
+ */
+add_task(async function test_customHeaders() {
+ let draftsFolder = await get_special_folder(Ci.nsMsgFolderFlags.Drafts, true);
+
+ // Set other.header so that they will be rendered in compose window.
+ let otherHeaders = Services.prefs.getCharPref("mail.compose.other.header");
+ Services.prefs.setCharPref(
+ "mail.compose.other.header",
+ "X-Header1, X-Header2, Approved ,Supersedes"
+ );
+
+ // Set values to custom headers.
+ let cwc = open_compose_new_mail();
+ let inputs = cwc.window.document.querySelectorAll(".address-row-raw input");
+ inputs[0].value = "Test äöü";
+ inputs[1].value = "Test 😃";
+ inputs[2].value = "moderator@tinderbox.com";
+ inputs[3].value = "<message-id-1234@tinderbox.com>";
+
+ await save_compose_message(cwc.window);
+ close_compose_window(cwc);
+ await TestUtils.waitForCondition(
+ () => draftsFolder.getTotalMessages(false) == 1,
+ "message saved to drafts folder"
+ );
+
+ await be_in_folder(draftsFolder);
+ let draftMsg = select_click_row(0);
+ let draftMsgLines = (await get_msg_source(draftMsg)).split("\n");
+
+ // Check header values are set and encoded correctly.
+ Assert.ok(
+ draftMsgLines.some(
+ line => line.trim() == "X-Header1: =?UTF-8?B?VGVzdCDDpMO2w7w=?="
+ ),
+ "Correct X-Header1 found"
+ );
+ Assert.ok(
+ draftMsgLines.some(
+ line => line.trim() == "X-Header2: =?UTF-8?B?VGVzdCDwn5iD?="
+ ),
+ "Correct X-Header2 found"
+ );
+ Assert.ok(
+ draftMsgLines.some(
+ line => line.trim() == "Approved: moderator@tinderbox.com"
+ ),
+ "Correct Approved found"
+ );
+ Assert.ok(
+ draftMsgLines.some(
+ line => line.trim() == "Supersedes: <message-id-1234@tinderbox.com>"
+ ),
+ "Correct Supersedes found"
+ );
+
+ cwc = open_compose_from_draft();
+ let inputs2 = cwc.window.document.querySelectorAll(".address-row-raw input");
+
+ Assert.equal(inputs2[0].value, "Test äöü");
+ Assert.equal(inputs2[1].value, "Test 😃");
+ Assert.equal(inputs2[2].value, "moderator@tinderbox.com");
+ Assert.equal(inputs2[3].value, "<message-id-1234@tinderbox.com>");
+
+ close_compose_window(cwc);
+
+ // Reset other.header.
+ Services.prefs.setCharPref("mail.compose.other.header", otherHeaders);
+});