diff options
Diffstat (limited to 'comm/mail/test/browser/composition/browser_replySignature.js')
-rw-r--r-- | comm/mail/test/browser/composition/browser_replySignature.js | 117 |
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" + ); +} |