blob: 5919d1d5f3fe8990bdae5283bb4da7af4a04d95e [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "jingle/notifier/communicator/login_settings.h"
#include <cstddef>
#include "talk/xmpp/xmppclientsettings.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace notifier {
namespace {
const char kAuthMechanism[] = "auth_mechanism";
class LoginSettingsTest : public ::testing::Test {
protected:
LoginSettingsTest() {
servers_.push_back(
ServerInformation(
net::HostPortPair("default.com", 100),
DOES_NOT_SUPPORT_SSLTCP));
}
ServerList servers_;
};
TEST_F(LoginSettingsTest, Basic) {
const LoginSettings login_settings(buzz::XmppClientSettings(),
NULL,
servers_,
false /* try_ssltcp_first */,
kAuthMechanism);
EXPECT_EQ(base::Time(), login_settings.GetRedirectExpirationForTest());
const ServerList& servers = login_settings.GetServers();
ASSERT_EQ(servers_.size(), servers.size());
for (size_t i = 0; i < servers.size(); ++i) {
EXPECT_TRUE(servers[i].Equals(servers_[i]));
}
}
TEST_F(LoginSettingsTest, Redirect) {
LoginSettings login_settings(buzz::XmppClientSettings(),
NULL,
servers_,
false /* try_ssltcp_first */,
kAuthMechanism);
const ServerInformation redirect_server(
net::HostPortPair("redirect.com", 200),
SUPPORTS_SSLTCP);
login_settings.SetRedirectServer(redirect_server);
{
const ServerList& servers =
login_settings.GetServersForTimeForTest(
login_settings.GetRedirectExpirationForTest() -
base::TimeDelta::FromMilliseconds(1));
ASSERT_EQ(servers_.size(), 1u);
EXPECT_TRUE(servers[0].Equals(redirect_server));
}
{
const ServerList& servers =
login_settings.GetServersForTimeForTest(
login_settings.GetRedirectExpirationForTest());
ASSERT_EQ(servers_.size(), servers.size());
for (size_t i = 0; i < servers.size(); ++i) {
EXPECT_TRUE(servers[i].Equals(servers_[i]));
}
}
}
} // namespace
} // namespace notifier