summaryrefslogtreecommitdiffstats
path: root/comm/mail/components/cloudfile/test/browser/head.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mail/components/cloudfile/test/browser/head.js')
-rw-r--r--comm/mail/components/cloudfile/test/browser/head.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/comm/mail/components/cloudfile/test/browser/head.js b/comm/mail/components/cloudfile/test/browser/head.js
new file mode 100644
index 0000000000..3dd17de883
--- /dev/null
+++ b/comm/mail/components/cloudfile/test/browser/head.js
@@ -0,0 +1,48 @@
+/* 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/. */
+
+var { MailServices } = ChromeUtils.import(
+ "resource:///modules/MailServices.jsm"
+);
+
+add_setup(async function () {
+ let gAccount = createAccount();
+ addIdentity(gAccount);
+ let rootFolder = gAccount.incomingServer.rootFolder;
+
+ let about3Pane = document.getElementById("tabmail").currentAbout3Pane;
+ about3Pane.displayFolder(rootFolder.URI);
+ await new Promise(resolve => executeSoon(resolve));
+});
+
+function createAccount() {
+ registerCleanupFunction(() => {
+ MailServices.accounts.accounts.forEach(cleanUpAccount);
+ });
+
+ MailServices.accounts.createLocalMailAccount();
+ let account = MailServices.accounts.accounts[0];
+ info(`Created account ${account.toString()}`);
+
+ return account;
+}
+
+function cleanUpAccount(account) {
+ info(`Cleaning up account ${account.toString()}`);
+ MailServices.accounts.removeAccount(account, true);
+}
+
+function addIdentity(account) {
+ let identity = MailServices.accounts.createIdentity();
+ identity.email = "mochitest@localhost";
+ account.addIdentity(identity);
+ account.defaultIdentity = identity;
+ info(`Created identity ${identity.toString()}`);
+}
+
+async function promiseAnimationFrame(win = window) {
+ await new Promise(win.requestAnimationFrame);
+ // dispatchToMainThread throws if used as the first argument of Promise.
+ return new Promise(resolve => Services.tm.dispatchToMainThread(resolve));
+}