summaryrefslogtreecommitdiffstats
path: root/comm/mail/test/browser/composition/browser_replySignature.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mail/test/browser/composition/browser_replySignature.js')
-rw-r--r--comm/mail/test/browser/composition/browser_replySignature.js117
1 files changed, 117 insertions, 0 deletions
diff --git a/comm/mail/test/browser/composition/browser_replySignature.js b/comm/mail/test/browser/composition/browser_replySignature.js
new file mode 100644
index 0000000000..6053171468
--- /dev/null
+++ b/comm/mail/test/browser/composition/browser_replySignature.js
@@ -0,0 +1,117 @@
+/* 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/. */
+
+/**
+ * Tests the mail.strip_sig_on_reply pref.
+ */
+
+"use strict";
+
+var { close_compose_window, get_compose_body, open_compose_with_reply } =
+ ChromeUtils.import("resource://testing-common/mozmill/ComposeHelpers.jsm");
+var {
+ add_message_to_folder,
+ assert_selected_and_displayed,
+ be_in_folder,
+ create_folder,
+ create_message,
+ mc,
+ select_click_row,
+} = ChromeUtils.import(
+ "resource://testing-common/mozmill/FolderDisplayHelpers.jsm"
+);
+
+var sig = "roses are red";
+var folder;
+
+add_setup(async function () {
+ folder = await create_folder("SigStripTest");
+ registerCleanupFunction(() => folder.deleteSelf(null));
+
+ let msg = create_message({
+ subject: "msg with signature; format=flowed",
+ body: {
+ body:
+ "get with the flow! get with the flow! get with the flow! " +
+ "get with the \n flow! get with the flow!\n-- \n" +
+ sig +
+ "\n",
+ contentType: "text/plain",
+ charset: "UTF-8",
+ format: "flowed",
+ },
+ });
+ await add_message_to_folder([folder], msg);
+ let msg2 = create_message({
+ subject: "msg with signature; format not flowed",
+ body: {
+ body:
+ "not flowed! not flowed! not flowed! \n" +
+ "not flowed!\n-- \n" +
+ sig +
+ "\n",
+ contentType: "text/plain",
+ charset: "UTF-8",
+ format: "",
+ },
+ });
+ await add_message_to_folder([folder], msg2);
+});
+
+/** Test sig strip true for format flowed. */
+add_task(async function test_sig_strip_true_ff() {
+ Services.prefs.setBoolPref("mail.strip_sig_on_reply", true);
+ await check_sig_strip_works(0, true);
+ Services.prefs.clearUserPref("mail.strip_sig_on_reply");
+});
+
+/** Test sig strip false for format flowed. */
+add_task(async function test_sig_strip_false_ff() {
+ Services.prefs.setBoolPref("mail.strip_sig_on_reply", false);
+ await check_sig_strip_works(0, false);
+ Services.prefs.clearUserPref("mail.strip_sig_on_reply");
+});
+
+/** Test sig strip true for non-format flowed. */
+add_task(async function test_sig_strip_true_nonff() {
+ Services.prefs.setBoolPref("mail.strip_sig_on_reply", true);
+ await check_sig_strip_works(1, true);
+ Services.prefs.clearUserPref("mail.strip_sig_on_reply");
+});
+
+/** Test sig strip false for non-format flowed. */
+add_task(async function test_sig_strip_false_nonff() {
+ Services.prefs.setBoolPref("mail.strip_sig_on_reply", false);
+ await check_sig_strip_works(1, false);
+ Services.prefs.clearUserPref("mail.strip_sig_on_reply");
+});
+
+/**
+ * Helper function to check signature stripping works as it should.
+ *
+ * @param aRow the row index of the message to test
+ * @param aShouldStrip true if the signature should be stripped
+ */
+async function check_sig_strip_works(aRow, aShouldStrip) {
+ await be_in_folder(folder);
+ let msg = select_click_row(aRow);
+ assert_selected_and_displayed(mc, msg);
+
+ let rwc = open_compose_with_reply();
+ let body = get_compose_body(rwc);
+
+ if (aShouldStrip && body.textContent.includes(sig)) {
+ throw new Error("signature was not stripped; body=" + body.textContent);
+ } else if (!aShouldStrip && !body.textContent.includes(sig)) {
+ throw new Error("signature stripped; body=" + body.textContent);
+ }
+ close_compose_window(rwc);
+
+ Assert.report(
+ false,
+ undefined,
+ undefined,
+ "Test ran to completion successfully"
+ );
+}