summaryrefslogtreecommitdiffstats
path: root/comm/mailnews/local/test/unit/test_folderLoaded.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mailnews/local/test/unit/test_folderLoaded.js')
-rw-r--r--comm/mailnews/local/test/unit/test_folderLoaded.js89
1 files changed, 89 insertions, 0 deletions
diff --git a/comm/mailnews/local/test/unit/test_folderLoaded.js b/comm/mailnews/local/test/unit/test_folderLoaded.js
new file mode 100644
index 0000000000..398aa6bff4
--- /dev/null
+++ b/comm/mailnews/local/test/unit/test_folderLoaded.js
@@ -0,0 +1,89 @@
+/* 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/. */
+
+/**
+ * The intent of this file is to show a folder loaded event after a load
+ * with a null database.
+ */
+
+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 testSubjects = [
+ "[Bug 397009] A filter will let me tag, but not untag",
+ "Hello, did you receive my bugmail?",
+];
+var gMsgFile1 = do_get_file("../../../data/bugmail1");
+var gMsgFile2 = do_get_file("../../../data/draft1");
+
+var gTargetFolder = null;
+
+add_setup(async function () {
+ if (typeof localAccountUtils.inboxFolder == "undefined") {
+ localAccountUtils.loadLocalMailAccount();
+ }
+ localAccountUtils.rootFolder.createSubfolder("target", null);
+ gTargetFolder = localAccountUtils.rootFolder.getChildNamed("target");
+
+ let copyListenerFile1 = new PromiseTestUtils.PromiseCopyListener();
+ MailServices.copy.copyFileMessage(
+ gMsgFile1,
+ gTargetFolder,
+ null,
+ false,
+ 0,
+ "",
+ copyListenerFile1,
+ null
+ );
+ await copyListenerFile1.promise;
+
+ let copyListenerFile2 = new PromiseTestUtils.PromiseCopyListener();
+ MailServices.copy.copyFileMessage(
+ gMsgFile2,
+ gTargetFolder,
+ null,
+ false,
+ 0,
+ "",
+ copyListenerFile2,
+ null
+ );
+ await copyListenerFile2.promise;
+});
+
+add_task(async function firstUpdate() {
+ // Get message headers for the target folder.
+ var msgCount = 0;
+ for (let hdr of gTargetFolder.msgDatabase.enumerateMessages()) {
+ msgCount++;
+ Assert.equal(hdr.subject, testSubjects[msgCount - 1]);
+ }
+ Assert.equal(msgCount, 2);
+
+ let folderAddedListener = PromiseTestUtils.promiseFolderEvent(
+ gTargetFolder,
+ "FolderLoaded"
+ );
+ gTargetFolder.updateFolder(null);
+ await folderAddedListener;
+});
+
+add_task(async function secondUpdate() {
+ // If the following executes, the test hangs in bug 787557.
+ gTargetFolder.msgDatabase = null;
+ let folderAddedListener = PromiseTestUtils.promiseFolderEvent(
+ gTargetFolder,
+ "FolderLoaded"
+ );
+ gTargetFolder.updateFolder(null);
+ await folderAddedListener;
+});