diff options
Diffstat (limited to 'comm/mail/test/browser/account/browser_portSetting.js')
-rw-r--r-- | comm/mail/test/browser/account/browser_portSetting.js | 87 |
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" + ); +}); |