OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/data_reduction_proxy/browser/data_reduction_proxy_settings.
h" | 5 #include "components/data_reduction_proxy/browser/data_reduction_proxy_settings.
h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/md5.h" | 8 #include "base/md5.h" |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 23 matching lines...) Expand all Loading... |
34 | 34 |
35 class DataReductionProxySettingsTest | 35 class DataReductionProxySettingsTest |
36 : public ConcreteDataReductionProxySettingsTest< | 36 : public ConcreteDataReductionProxySettingsTest< |
37 DataReductionProxySettings> { | 37 DataReductionProxySettings> { |
38 }; | 38 }; |
39 | 39 |
40 | 40 |
41 TEST_F(DataReductionProxySettingsTest, TestAuthenticationInit) { | 41 TEST_F(DataReductionProxySettingsTest, TestAuthenticationInit) { |
42 AddProxyToCommandLine(); | 42 AddProxyToCommandLine(); |
43 net::HttpAuthCache cache; | 43 net::HttpAuthCache cache; |
44 DataReductionProxySettings::InitDataReductionAuthentication(&cache); | 44 DataReductionProxySettings::InitDataReductionAuthentication( |
| 45 &cache, kDataReductionProxyKey); |
45 DataReductionProxySettings::DataReductionProxyList proxies = | 46 DataReductionProxySettings::DataReductionProxyList proxies = |
46 DataReductionProxySettings::GetDataReductionProxies(); | 47 DataReductionProxySettings::GetDataReductionProxies(); |
47 for (DataReductionProxySettings::DataReductionProxyList::iterator it = | 48 for (DataReductionProxySettings::DataReductionProxyList::iterator it = |
48 proxies.begin(); it != proxies.end(); ++it) { | 49 proxies.begin(); it != proxies.end(); ++it) { |
49 net::HttpAuthCache::Entry* entry = cache.LookupByPath(*it, | 50 net::HttpAuthCache::Entry* entry = cache.LookupByPath(*it, |
50 std::string("/")); | 51 std::string("/")); |
51 EXPECT_TRUE(entry != NULL); | 52 EXPECT_TRUE(entry != NULL); |
52 EXPECT_EQ(net::HttpAuth::AUTH_SCHEME_SPDYPROXY, entry->scheme()); | 53 EXPECT_EQ(net::HttpAuth::AUTH_SCHEME_SPDYPROXY, entry->scheme()); |
53 EXPECT_EQ("SpdyProxy", entry->auth_challenge().substr(0,9)); | 54 EXPECT_EQ("SpdyProxy", entry->auth_challenge().substr(0,9)); |
54 } | 55 } |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 EXPECT_EQ("bar.com", proxies[1].host()); | 114 EXPECT_EQ("bar.com", proxies[1].host()); |
114 EXPECT_EQ(80, proxies[1].EffectiveIntPort()); | 115 EXPECT_EQ(80, proxies[1].EffectiveIntPort()); |
115 } | 116 } |
116 | 117 |
117 TEST_F(DataReductionProxySettingsTest, TestAuthHashGeneration) { | 118 TEST_F(DataReductionProxySettingsTest, TestAuthHashGeneration) { |
118 AddProxyToCommandLine(); | 119 AddProxyToCommandLine(); |
119 std::string salt = "8675309"; // Jenny's number to test the hash generator. | 120 std::string salt = "8675309"; // Jenny's number to test the hash generator. |
120 std::string salted_key = salt + kDataReductionProxyKey + salt; | 121 std::string salted_key = salt + kDataReductionProxyKey + salt; |
121 base::string16 expected_hash = base::UTF8ToUTF16(base::MD5String(salted_key)); | 122 base::string16 expected_hash = base::UTF8ToUTF16(base::MD5String(salted_key)); |
122 EXPECT_EQ(expected_hash, | 123 EXPECT_EQ(expected_hash, |
123 DataReductionProxySettings::AuthHashForSalt(8675309)); | 124 DataReductionProxySettings::AuthHashForSalt( |
| 125 8675309, kDataReductionProxyKey)); |
124 } | 126 } |
125 | 127 |
126 // Test that the auth key set by preprocessor directive is not used | 128 // Test that the auth key set by preprocessor directive is not used |
127 // when an origin is set via a switch. This test only does anything useful in | 129 // when an origin is set via a switch. This test only does anything useful in |
128 // Chrome builds. | 130 // Chrome builds. |
129 TEST_F(DataReductionProxySettingsTest, | 131 TEST_F(DataReductionProxySettingsTest, |
130 TestAuthHashGenerationWithOriginSetViaSwitch) { | 132 TestAuthHashGenerationWithOriginSetViaSwitch) { |
131 CommandLine::ForCurrentProcess()->AppendSwitchASCII( | 133 CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
132 switches::kDataReductionProxy, kDataReductionProxy); | 134 switches::kDataReductionProxy, kDataReductionProxy); |
133 EXPECT_EQ(base::string16(), | 135 EXPECT_EQ(base::string16(), |
134 DataReductionProxySettings::AuthHashForSalt(8675309)); | 136 DataReductionProxySettings::AuthHashForSalt( |
| 137 8675309, kDataReductionProxyKey)); |
135 } | 138 } |
136 | 139 |
137 TEST_F(DataReductionProxySettingsTest, TestIsProxyEnabledOrManaged) { | 140 TEST_F(DataReductionProxySettingsTest, TestIsProxyEnabledOrManaged) { |
138 AddProxyToCommandLine(); | 141 AddProxyToCommandLine(); |
139 settings_->InitPrefMembers(); | 142 settings_->InitPrefMembers(); |
140 base::MessageLoopForUI loop; | 143 base::MessageLoopForUI loop; |
141 // The proxy is disabled initially. | 144 // The proxy is disabled initially. |
142 settings_->enabled_by_user_ = false; | 145 settings_->enabled_by_user_ = false; |
143 settings_->SetProxyConfigs(false, false, false); | 146 settings_->SetProxyConfigs(false, false, false); |
144 | 147 |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 {"spdyproxy", true}, // 2. no salt. | 203 {"spdyproxy", true}, // 2. no salt. |
201 {"SpdyProxyxxx", true}, // 3. Salt not an int. | 204 {"SpdyProxyxxx", true}, // 3. Salt not an int. |
202 {"SpdyProxy1234567", false}, // 4. OK | 205 {"SpdyProxy1234567", false}, // 4. OK |
203 }; | 206 }; |
204 | 207 |
205 for (int i = 0; i <= 4; ++i) { | 208 for (int i = 0; i <= 4; ++i) { |
206 scoped_refptr<net::AuthChallengeInfo> auth_info(new net::AuthChallengeInfo); | 209 scoped_refptr<net::AuthChallengeInfo> auth_info(new net::AuthChallengeInfo); |
207 auth_info->challenger = | 210 auth_info->challenger = |
208 net::HostPortPair::FromString(kDataReductionProxy); | 211 net::HostPortPair::FromString(kDataReductionProxy); |
209 auth_info->realm = tests[i].realm; | 212 auth_info->realm = tests[i].realm; |
210 base::string16 token = | 213 base::string16 token = settings_->GetTokenForAuthChallenge(auth_info.get()); |
211 DataReductionProxySettings::GetTokenForAuthChallenge(auth_info.get()); | |
212 EXPECT_EQ(tests[i].expected_empty_token, token.empty()); | 214 EXPECT_EQ(tests[i].expected_empty_token, token.empty()); |
213 } | 215 } |
214 } | 216 } |
215 | 217 |
216 TEST_F(DataReductionProxySettingsTest, TestResetDataReductionStatistics) { | 218 TEST_F(DataReductionProxySettingsTest, TestResetDataReductionStatistics) { |
217 int64 original_content_length; | 219 int64 original_content_length; |
218 int64 received_content_length; | 220 int64 received_content_length; |
219 int64 last_update_time; | 221 int64 last_update_time; |
220 settings_->ResetDataReductionStatistics(); | 222 settings_->ResetDataReductionStatistics(); |
221 settings_->GetContentLengths(kNumDaysInHistory, | 223 settings_->GetContentLengths(kNumDaysInHistory, |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
393 scoped_refptr<net::TestURLRequestContextGetter> request_context = | 395 scoped_refptr<net::TestURLRequestContextGetter> request_context = |
394 new net::TestURLRequestContextGetter(base::MessageLoopProxy::current()); | 396 new net::TestURLRequestContextGetter(base::MessageLoopProxy::current()); |
395 settings_->InitDataReductionProxySettings(&pref_service_, | 397 settings_->InitDataReductionProxySettings(&pref_service_, |
396 &pref_service_, | 398 &pref_service_, |
397 request_context.get()); | 399 request_context.get()); |
398 | 400 |
399 base::MessageLoop::current()->RunUntilIdle(); | 401 base::MessageLoop::current()->RunUntilIdle(); |
400 } | 402 } |
401 | 403 |
402 } // namespace data_reduction_proxy | 404 } // namespace data_reduction_proxy |
OLD | NEW |