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/imap/test/unit/test_filterCustomHeaders.js | |
parent | Initial commit. (diff) | |
download | thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.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/imap/test/unit/test_filterCustomHeaders.js')
-rw-r--r-- | comm/mailnews/imap/test/unit/test_filterCustomHeaders.js | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/comm/mailnews/imap/test/unit/test_filterCustomHeaders.js b/comm/mailnews/imap/test/unit/test_filterCustomHeaders.js new file mode 100644 index 0000000000..05e2a71b66 --- /dev/null +++ b/comm/mailnews/imap/test/unit/test_filterCustomHeaders.js @@ -0,0 +1,66 @@ +/* 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 hdr parsing in the filter running context, specifically + * filters on custom headers. + * See https://bugzilla.mozilla.org/show_bug.cgi?id=655578 + * for more info. + * + * Original author: David Bienvenu <bienvenu@mozilla.com> + */ + +var { PromiseTestUtils } = ChromeUtils.import( + "resource://testing-common/mailnews/PromiseTestUtils.jsm" +); + +// IMAP pump + +var { IMAPPump, setupIMAPPump, teardownIMAPPump } = ChromeUtils.import( + "resource://testing-common/mailnews/IMAPpump.jsm" +); + +add_setup(async function () { + setupIMAPPump(); + // Create a test filter. + let filterList = IMAPPump.incomingServer.getFilterList(null); + let filter = filterList.createFilter("test list-id"); + let searchTerm = filter.createTerm(); + searchTerm.attrib = Ci.nsMsgSearchAttrib.OtherHeader + 1; + searchTerm.op = Ci.nsMsgSearchOp.Contains; + let value = searchTerm.value; + value.attrib = Ci.nsMsgSearchAttrib.OtherHeader; + value.str = "gnupg-users.gnupg.org"; + searchTerm.value = value; + searchTerm.booleanAnd = false; + searchTerm.arbitraryHeader = "List-Id"; + filter.appendTerm(searchTerm); + filter.enabled = true; + + // create a mark read action + let action = filter.createAction(); + action.type = Ci.nsMsgFilterAction.MarkRead; + filter.appendAction(action); + filterList.insertFilterAt(0, filter); + Services.prefs.setBoolPref( + "mail.server.default.autosync_offline_stores", + false + ); + let file = do_get_file("../../../data/bugmail19"); + let msgfileuri = Services.io.newFileURI(file).QueryInterface(Ci.nsIFileURL); + + IMAPPump.mailbox.addMessage( + new ImapMessage(msgfileuri.spec, IMAPPump.mailbox.uidnext++, []) + ); + let listener = new PromiseTestUtils.PromiseUrlListener(); + IMAPPump.inbox.updateFolderWithListener(null, listener); + await listener.promise; +}); + +add_task(function checkFilterResults() { + let msgHdr = mailTestUtils.firstMsgHdr(IMAPPump.inbox); + Assert.ok(msgHdr.isRead); + IMAPPump.server.performTest("UID STORE"); + teardownIMAPPump(); +}); |