summaryrefslogtreecommitdiffstats
path: root/comm/mail/test/browser/account/browser_portSetting.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mail/test/browser/account/browser_portSetting.js')
-rw-r--r--comm/mail/test/browser/account/browser_portSetting.js87
1 files changed, 87 insertions, 0 deletions
diff --git a/comm/mail/test/browser/account/browser_portSetting.js b/comm/mail/test/browser/account/browser_portSetting.js
new file mode 100644
index 0000000000..ae2c613b56
--- /dev/null
+++ b/comm/mail/test/browser/account/browser_portSetting.js
@@ -0,0 +1,87 @@
+/* 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/. */
+
+"use strict";
+
+var { click_account_tree_row, get_account_tree_row, open_advanced_settings } =
+ ChromeUtils.import(
+ "resource://testing-common/mozmill/AccountManagerHelpers.jsm"
+ );
+var { FAKE_SERVER_HOSTNAME, mc } = ChromeUtils.import(
+ "resource://testing-common/mozmill/FolderDisplayHelpers.jsm"
+);
+var { input_value, delete_all_existing } = ChromeUtils.import(
+ "resource://testing-common/mozmill/KeyboardHelpers.jsm"
+);
+
+var { MailServices } = ChromeUtils.import(
+ "resource:///modules/MailServices.jsm"
+);
+
+var PORT_NUMBERS_TO_TEST = [
+ "110", // The original port number. We don't input this though.
+ "456", // Random port number.
+ "995", // The SSL port number.
+ "110", // Back to the original.
+];
+
+var gTestNumber;
+
+async function subtest_check_set_port_number(tab, dontSet) {
+ // This test expects the following POP account to exist by default
+ // with port number 110 and no security.
+ let server = MailServices.accounts.findServer(
+ "tinderbox",
+ FAKE_SERVER_HOSTNAME,
+ "pop3"
+ );
+ let account = MailServices.accounts.FindAccountForServer(server);
+
+ let accountRow = get_account_tree_row(account.key, "am-server.xhtml", tab);
+ click_account_tree_row(tab, accountRow);
+
+ let iframe =
+ tab.browser.contentWindow.document.getElementById("contentFrame");
+ let portElem = iframe.contentDocument.getElementById("server.port");
+ portElem.focus();
+
+ if (portElem.value != PORT_NUMBERS_TO_TEST[gTestNumber - 1]) {
+ throw new Error(
+ "Port Value is not " +
+ PORT_NUMBERS_TO_TEST[gTestNumber - 1] +
+ " as expected, it is: " +
+ portElem.value
+ );
+ }
+
+ if (!dontSet) {
+ delete_all_existing(mc, portElem);
+ input_value(mc, PORT_NUMBERS_TO_TEST[gTestNumber]);
+
+ await new Promise(resolve => setTimeout(resolve));
+ }
+}
+
+async function subtest_check_port_number(tab) {
+ await subtest_check_set_port_number(tab, true);
+}
+
+add_task(async function test_account_port_setting() {
+ for (
+ gTestNumber = 1;
+ gTestNumber < PORT_NUMBERS_TO_TEST.length;
+ ++gTestNumber
+ ) {
+ await open_advanced_settings(subtest_check_set_port_number);
+ }
+
+ await open_advanced_settings(subtest_check_port_number);
+
+ Assert.report(
+ false,
+ undefined,
+ undefined,
+ "Test ran to completion successfully"
+ );
+});