/* 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" ); });