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 "net/traffic_annotation/network_traffic_annotation_test_helper.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "third_party/libjingle_xmpp/xmpp/xmppclientsettings.h"
12
13 namespace notifier {
14
15 namespace {
16
17 const char kAuthMechanism[] = "auth_mechanism";
18
19 class LoginSettingsTest : public ::testing::Test {
20 protected:
LoginSettingsTest()21 LoginSettingsTest() {
22 servers_.push_back(
23 ServerInformation(
24 net::HostPortPair("default.com", 100),
25 DOES_NOT_SUPPORT_SSLTCP));
26 }
27
28 ServerList servers_;
29 };
30
TEST_F(LoginSettingsTest,Basic)31 TEST_F(LoginSettingsTest, Basic) {
32 const LoginSettings login_settings(
33 jingle_xmpp::XmppClientSettings(),
34 jingle_glue::GetProxyResolvingSocketFactoryCallback(), servers_,
35 false /* try_ssltcp_first */, kAuthMechanism,
36 TRAFFIC_ANNOTATION_FOR_TESTS);
37 EXPECT_EQ(base::Time(), login_settings.GetRedirectExpirationForTest());
38 const ServerList& servers = login_settings.GetServers();
39 ASSERT_EQ(servers_.size(), servers.size());
40 for (size_t i = 0; i < servers.size(); ++i) {
41 EXPECT_TRUE(servers[i].Equals(servers_[i]));
42 }
43 EXPECT_EQ(TRAFFIC_ANNOTATION_FOR_TESTS, login_settings.traffic_annotation());
44 }
45
TEST_F(LoginSettingsTest,Redirect)46 TEST_F(LoginSettingsTest, Redirect) {
47 LoginSettings login_settings(
48 jingle_xmpp::XmppClientSettings(),
49 jingle_glue::GetProxyResolvingSocketFactoryCallback(), servers_,
50 false /* try_ssltcp_first */, kAuthMechanism,
51 TRAFFIC_ANNOTATION_FOR_TESTS);
52 const ServerInformation redirect_server(
53 net::HostPortPair("redirect.com", 200),
54 SUPPORTS_SSLTCP);
55 login_settings.SetRedirectServer(redirect_server);
56
57 {
58 const ServerList& servers =
59 login_settings.GetServersForTimeForTest(
60 login_settings.GetRedirectExpirationForTest() -
61 base::TimeDelta::FromMilliseconds(1));
62 ASSERT_EQ(servers_.size(), 1u);
63 EXPECT_TRUE(servers[0].Equals(redirect_server));
64 }
65
66 {
67 const ServerList& servers =
68 login_settings.GetServersForTimeForTest(
69 login_settings.GetRedirectExpirationForTest());
70 ASSERT_EQ(servers_.size(), servers.size());
71 for (size_t i = 0; i < servers.size(); ++i) {
72 EXPECT_TRUE(servers[i].Equals(servers_[i]));
73 }
74 }
75 }
76
77 } // namespace
78
79 } // namespace notifier
80