/* 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/. */ requestLongerTimeout(2); var { MailServices } = ChromeUtils.import( "resource:///modules/MailServices.jsm" ); let account = createAccount("pop3"); createAccount("local"); MailServices.accounts.defaultAccount = account; let defaultIdentity = addIdentity(account); defaultIdentity.composeHtml = true; let nonDefaultIdentity = addIdentity(account); nonDefaultIdentity.composeHtml = false; let rootFolder = account.incomingServer.rootFolder; rootFolder.createSubfolder("test", null); let folder = rootFolder.getChildNamed("test"); createMessages(folder, 4); add_task(async function testBody() { let files = { "background.js": async () => { let accounts = await browser.accounts.list(); browser.test.assertEq(2, accounts.length, "number of accounts"); let popAccount = accounts.find(a => a.type == "pop3"); browser.test.assertEq( 2, popAccount.identities.length, "number of identities" ); let [htmlIdentity, plainTextIdentity] = popAccount.identities; let folder = popAccount.folders.find(f => f.name == "test"); let { messages } = await browser.messages.list(folder); browser.test.assertEq(4, messages.length, "number of messages"); let message0 = await browser.messages.getFull(messages[0].id); let message0body = message0.parts[0].body; // Editor content of a newly opened composeWindow without setting a body. let defaultHTML = "
I'm an HTML message!
" }], expected: { isHTML: true, htmlIncludes: "I'm an HTML message!
", plainTextIs: "I'm an HTML message!", }, }, { // Non-empty plain text. funcName: "beginNew", arguments: [{ plainTextBody: "I'm a plain text message!" }], expected: { isHTML: false, htmlIncludes: plainTextBodyTag + "I'm a plain text message!", plainTextIs: "I'm a plain text message!", }, }, { // Non-empty plain text and isPlainText. funcName: "beginNew", arguments: [ { plainTextBody: "I'm a plain text message!", isPlainText: true, }, ], expected: { isHTML: false, htmlIncludes: plainTextBodyTag + "I'm a plain text message!