diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /comm/mailnews/local/test/unit/test_undoDelete.js | |
parent | Initial commit. (diff) | |
download | thunderbird-upstream.tar.xz thunderbird-upstream.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'comm/mailnews/local/test/unit/test_undoDelete.js')
-rw-r--r-- | comm/mailnews/local/test/unit/test_undoDelete.js | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/comm/mailnews/local/test/unit/test_undoDelete.js b/comm/mailnews/local/test/unit/test_undoDelete.js new file mode 100644 index 0000000000..a3a52e2fd5 --- /dev/null +++ b/comm/mailnews/local/test/unit/test_undoDelete.js @@ -0,0 +1,80 @@ +/* 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/. */ + +// This file tests undoing of an local folder message deleted to the trash. +// +// Original Author: David Bienvenu <dbienvenu@mozilla.com> + +// Globals +let gMsg1; +let gMessages = []; +let gMsgWindow; +let gCurTestNum; +let gMsgId1; +let gTestFolder; + +var { MessageGenerator, SyntheticMessageSet } = ChromeUtils.import( + "resource://testing-common/mailnews/MessageGenerator.jsm" +); +var { MessageInjection } = ChromeUtils.import( + "resource://testing-common/mailnews/MessageInjection.jsm" +); +var { PromiseTestUtils } = ChromeUtils.import( + "resource://testing-common/mailnews/PromiseTestUtils.jsm" +); + +var messageInjection = new MessageInjection({ mode: "local" }); + +add_setup(async function () { + gMsgWindow = Cc["@mozilla.org/messenger/msgwindow;1"].createInstance( + Ci.nsIMsgWindow + ); + + var messageGenerator = new MessageGenerator(); + gMsg1 = messageGenerator.makeMessage(); + let msg2 = messageGenerator.makeMessage({ inReplyTo: gMsg1 }); + + let messages = []; + messages = messages.concat([gMsg1, msg2]); + let msgSet = new SyntheticMessageSet(messages); + gTestFolder = await messageInjection.makeEmptyFolder(); + await messageInjection.addSetsToFolders([gTestFolder], [msgSet]); +}); + +add_task(async function deleteMessage() { + let msgToDelete = mailTestUtils.firstMsgHdr(gTestFolder); + gMsgId1 = msgToDelete.messageId; + gMessages.push(msgToDelete); + let copyListener = new PromiseTestUtils.PromiseCopyListener(); + gTestFolder.deleteMessages( + gMessages, + gMsgWindow, + false, + true, + copyListener, + true + ); + await copyListener.promise; +}); + +add_task(async function undoDelete() { + gMsgWindow.transactionManager.undoTransaction(); + // There's no listener for this, so we'll just have to wait a little. + await PromiseTestUtils.promiseDelay(1500); +}); + +add_task(function verifyFolders() { + let msgRestored = gTestFolder.msgDatabase.getMsgHdrForMessageID(gMsgId1); + let msg = mailTestUtils.loadMessageToString(gTestFolder, msgRestored); + Assert.equal(msg, gMsg1.toMboxString()); +}); + +add_task(function endTest() { + // Cleanup, null out everything. + gMessages = []; + gMsgWindow.closeWindow(); + gMsgWindow = null; + localAccountUtils.inboxFolder = null; + localAccountUtils.incomingServer = null; +}); |