From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../browser/composition/browser_messageBody.js | 109 +++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 comm/mail/test/browser/composition/browser_messageBody.js (limited to 'comm/mail/test/browser/composition/browser_messageBody.js') diff --git a/comm/mail/test/browser/composition/browser_messageBody.js b/comm/mail/test/browser/composition/browser_messageBody.js new file mode 100644 index 0000000000..c9b16cc370 --- /dev/null +++ b/comm/mail/test/browser/composition/browser_messageBody.js @@ -0,0 +1,109 @@ +/* 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 related to message body. + */ + +var { get_msg_source, open_compose_new_mail, setup_msg_contents } = + ChromeUtils.import("resource://testing-common/mozmill/ComposeHelpers.jsm"); +var { + be_in_folder, + get_special_folder, + get_about_message, + press_delete, + select_click_row, +} = ChromeUtils.import( + "resource://testing-common/mozmill/FolderDisplayHelpers.jsm" +); +var { plan_for_window_close, wait_for_window_close } = ChromeUtils.import( + "resource://testing-common/mozmill/WindowHelpers.jsm" +); + +var gOutboxFolder; + +add_setup(async function () { + gOutboxFolder = await get_special_folder(Ci.nsMsgFolderFlags.Queue); +}); + +/** + * Tests that sending link with invalid data uri works. + */ +add_task(async function test_invalid_data_uri() { + let cwc = open_compose_new_mail(); + setup_msg_contents( + cwc, + "someone@example.com", + "Test sending link with invalid data uri", + "" + ); + + cwc.window + .GetCurrentEditor() + .insertHTML("invalid data uri"); + plan_for_window_close(cwc); + cwc.window.goDoCommand("cmd_sendLater"); + wait_for_window_close(); + + await be_in_folder(gOutboxFolder); + let msgLoaded = BrowserTestUtils.waitForEvent( + get_about_message(), + "MsgLoaded" + ); + let outMsg = select_click_row(0); + await msgLoaded; + let outMsgContent = await get_msg_source(outMsg); + + ok( + outMsgContent.includes("invalid data uri"), + "message containing invalid data uri should be sent" + ); + + press_delete(); // Delete the msg from Outbox. +}); + +/** + * Tests that when converting $2 to text/plain, if $1 matches + * with $2, $1 should be discarded to prevent duplicated links. + */ +add_task(async function test_freeTextLink() { + let prevSendFormat = Services.prefs.getIntPref("mail.default_send_format"); + Services.prefs.setIntPref( + "mail.default_send_format", + Ci.nsIMsgCompSendFormat.PlainText + ); + let cwc = open_compose_new_mail(); + setup_msg_contents(cwc, "someone@example.com", "Test free text link", ""); + + let link1 = "https://example.com"; + let link2 = "name@example.com"; + let link3 = "https://example.net"; + cwc.window + .GetCurrentEditor() + .insertHTML( + `${link1} ${link2} link3` + ); + plan_for_window_close(cwc); + cwc.window.goDoCommand("cmd_sendLater"); + wait_for_window_close(); + + await be_in_folder(gOutboxFolder); + let msgLoaded = BrowserTestUtils.waitForEvent( + get_about_message(), + "MsgLoaded" + ); + let outMsg = select_click_row(0); + await msgLoaded; + let outMsgContent = await get_msg_source(outMsg); + + Assert.equal( + getMessageBody(outMsgContent), + `${link1} ${link2} link3 <${link3}>\r\n`, + "Links should be correctly converted to plain text" + ); + + press_delete(); // Delete the msg from Outbox. + + Services.prefs.setIntPref("mail.default_send_format", prevSendFormat); +}); -- cgit v1.2.3