Revision control

Copy as Markdown

Other Tools

/* -*- Mode: JavaScript; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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";
const { AccountConfig } = ChromeUtils.importESModule(
);
add_task(function test_isOauthOnly() {
const config = new AccountConfig();
Assert.ok(!config.isOauthOnly(), "Should initially not be oAuth only");
config.incoming.auth = Ci.nsMsgAuthMethod.OAuth2;
Assert.ok(
!config.isOauthOnly(),
"One of two servers should still not be oAuth only"
);
config.outgoing.auth = Ci.nsMsgAuthMethod.OAuth2;
Assert.ok(
config.isOauthOnly(),
"When both incoming and outgoing use oauth, the config should be oAuth only"
);
});
add_task(function test_hasPassword() {
const config = new AccountConfig();
Assert.ok(!config.hasPassword(), "Empty config should not have a password");
config.incoming.password = "hunter2";
Assert.ok(
config.hasPassword(),
"Should report having a password with incoming password set"
);
config.outgoing.password = "hunter2";
Assert.ok(
config.hasPassword(),
"Should still report having a password with both passwords set"
);
config.incoming.password = "";
Assert.ok(
config.hasPassword(),
"Should report a password with only the outgoing password set"
);
});
add_task(function test_isIncomingEditedComplete() {
const config = new AccountConfig();
config.incoming.type = "ews";
config.incoming.ewsURL = "https://example.com";
config.incoming.username = "test";
config.incoming.auth = 3;
Assert.ok(
config.isIncomingEditedComplete(),
"Should have a complete incoming config for EWS"
);
config.incoming.type = "imap";
Assert.ok(
!config.isIncomingEditedComplete(),
"Should have an incomplete config with EWS value for an IMAP config"
);
config.incoming.auth = 0;
config.incoming.ewsURL = null;
config.incoming.hostname = "example.com";
config.incoming.port = 443;
Assert.ok(
config.isIncomingEditedComplete(),
"Should have a complete incoming config for IMAP"
);
config.incoming.type = "ews";
Assert.ok(
!config.isIncomingEditedComplete(),
"Should be an incomplete incoming config with IMAP value but EWS type"
);
});