1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "jingle/notifier/communicator/login_settings.h" 6 7 #include <cstddef> 8 9 #include "talk/xmpp/xmppclientsettings.h" 10 #include "testing/gtest/include/gtest/gtest.h" 11 12 namespace notifier { 13 14 namespace { 15 16 const char kAuthMechanism[] = "auth_mechanism"; 17 18 class LoginSettingsTest : public ::testing::Test { 19 protected: 20 LoginSettingsTest() { 21 servers_.push_back( 22 ServerInformation( 23 net::HostPortPair("default.com", 100), 24 DOES_NOT_SUPPORT_SSLTCP)); 25 } 26 27 ServerList servers_; 28 }; 29 30 TEST_F(LoginSettingsTest, Basic) { 31 const LoginSettings login_settings(buzz::XmppClientSettings(), 32 NULL, 33 servers_, 34 false /* try_ssltcp_first */, 35 kAuthMechanism); 36 EXPECT_EQ(base::Time(), login_settings.GetRedirectExpirationForTest()); 37 const ServerList& servers = login_settings.GetServers(); 38 ASSERT_EQ(servers_.size(), servers.size()); 39 for (size_t i = 0; i < servers.size(); ++i) { 40 EXPECT_TRUE(servers[i].Equals(servers_[i])); 41 } 42 } 43 44 TEST_F(LoginSettingsTest, Redirect) { 45 LoginSettings login_settings(buzz::XmppClientSettings(), 46 NULL, 47 servers_, 48 false /* try_ssltcp_first */, 49 kAuthMechanism); 50 const ServerInformation redirect_server( 51 net::HostPortPair("redirect.com", 200), 52 SUPPORTS_SSLTCP); 53 login_settings.SetRedirectServer(redirect_server); 54 55 { 56 const ServerList& servers = 57 login_settings.GetServersForTimeForTest( 58 login_settings.GetRedirectExpirationForTest() - 59 base::TimeDelta::FromMilliseconds(1)); 60 ASSERT_EQ(servers_.size(), 1u); 61 EXPECT_TRUE(servers[0].Equals(redirect_server)); 62 } 63 64 { 65 const ServerList& servers = 66 login_settings.GetServersForTimeForTest( 67 login_settings.GetRedirectExpirationForTest()); 68 ASSERT_EQ(servers_.size(), servers.size()); 69 for (size_t i = 0; i < servers.size(); ++i) { 70 EXPECT_TRUE(servers[i].Equals(servers_[i])); 71 } 72 } 73 } 74 75 } // namespace 76 77 } // namespace notifier 78