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_config_se
rvice.h" | 5 #include "components/data_reduction_proxy/browser/data_reduction_proxy_config_se
rvice.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
| 9 #include "base/bind.h" |
9 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
10 #include "base/message_loop/message_loop.h" | 11 #include "base/message_loop/message_loop.h" |
11 #include "base/test/test_simple_task_runner.h" | 12 #include "base/test/test_simple_task_runner.h" |
12 #include "testing/gmock/include/gmock/gmock.h" | 13 #include "testing/gmock/include/gmock/gmock.h" |
13 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
14 | 15 |
15 using testing::Mock; | 16 using testing::Mock; |
16 | 17 |
17 namespace { | 18 namespace { |
18 | 19 |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 | 191 |
191 config_service_->RemoveObserver(&observer); | 192 config_service_->RemoveObserver(&observer); |
192 } | 193 } |
193 | 194 |
194 TEST_F(DataReductionProxyConfigServiceTest, TrackerEnable) { | 195 TEST_F(DataReductionProxyConfigServiceTest, TrackerEnable) { |
195 MockObserver observer; | 196 MockObserver observer; |
196 //base::MessageLoopForUI loop; | 197 //base::MessageLoopForUI loop; |
197 config_service_->AddObserver(&observer); | 198 config_service_->AddObserver(&observer); |
198 scoped_refptr<base::TestSimpleTaskRunner> task_runner_( | 199 scoped_refptr<base::TestSimpleTaskRunner> task_runner_( |
199 new base::TestSimpleTaskRunner()); | 200 new base::TestSimpleTaskRunner()); |
200 DataReductionProxyConfigTracker tracker(config_service_.get(), | 201 DataReductionProxyConfigTracker tracker( |
201 task_runner_.get()); | 202 base::Bind(&data_reduction_proxy::DataReductionProxyConfigService:: |
| 203 UpdateProxyConfig, |
| 204 base::Unretained(config_service_.get())), |
| 205 task_runner_.get()); |
202 net::ProxyConfig expected_config; | 206 net::ProxyConfig expected_config; |
203 expected_config.proxy_rules().ParseFromString(kDataReductionProxyRules); | 207 expected_config.proxy_rules().ParseFromString(kDataReductionProxyRules); |
204 EXPECT_CALL(observer, OnProxyConfigChanged( | 208 EXPECT_CALL(observer, OnProxyConfigChanged( |
205 ProxyConfigMatches(expected_config), | 209 ProxyConfigMatches(expected_config), |
206 net::ProxyConfigService::CONFIG_VALID)).Times(1); | 210 net::ProxyConfigService::CONFIG_VALID)).Times(1); |
207 tracker.Enable(false, | 211 tracker.Enable(false, |
208 false, | 212 false, |
209 "https://foo.com:443", | 213 "https://foo.com:443", |
210 "http://bar.com:80", | 214 "http://bar.com:80", |
211 ""); | 215 ""); |
212 task_runner_->RunUntilIdle(); | 216 task_runner_->RunUntilIdle(); |
213 Mock::VerifyAndClearExpectations(&observer); | 217 Mock::VerifyAndClearExpectations(&observer); |
214 | 218 |
215 config_service_->RemoveObserver(&observer); | 219 config_service_->RemoveObserver(&observer); |
216 } | 220 } |
217 | 221 |
218 TEST_F(DataReductionProxyConfigServiceTest, TrackerEnableRestricted) { | 222 TEST_F(DataReductionProxyConfigServiceTest, TrackerEnableRestricted) { |
219 MockObserver observer; | 223 MockObserver observer; |
220 //base::MessageLoopForUI loop; | 224 //base::MessageLoopForUI loop; |
221 config_service_->AddObserver(&observer); | 225 config_service_->AddObserver(&observer); |
222 scoped_refptr<base::TestSimpleTaskRunner> task_runner_( | 226 scoped_refptr<base::TestSimpleTaskRunner> task_runner_( |
223 new base::TestSimpleTaskRunner()); | 227 new base::TestSimpleTaskRunner()); |
224 DataReductionProxyConfigTracker tracker(config_service_.get(), | 228 DataReductionProxyConfigTracker tracker( |
225 task_runner_.get()); | 229 base::Bind(&data_reduction_proxy::DataReductionProxyConfigService:: |
| 230 UpdateProxyConfig, |
| 231 base::Unretained(config_service_.get())), |
| 232 task_runner_.get()); |
226 net::ProxyConfig expected_config; | 233 net::ProxyConfig expected_config; |
227 expected_config.proxy_rules().ParseFromString( | 234 expected_config.proxy_rules().ParseFromString( |
228 kDataReductionProxyRestrictedRules); | 235 kDataReductionProxyRestrictedRules); |
229 EXPECT_CALL(observer, OnProxyConfigChanged( | 236 EXPECT_CALL(observer, OnProxyConfigChanged( |
230 ProxyConfigMatches(expected_config), | 237 ProxyConfigMatches(expected_config), |
231 net::ProxyConfigService::CONFIG_VALID)).Times(1); | 238 net::ProxyConfigService::CONFIG_VALID)).Times(1); |
232 tracker.Enable(true, | 239 tracker.Enable(true, |
233 false, | 240 false, |
234 "https://foo.com:443", | 241 "https://foo.com:443", |
235 "http://bar.com:80", | 242 "http://bar.com:80", |
236 ""); | 243 ""); |
237 task_runner_->RunUntilIdle(); | 244 task_runner_->RunUntilIdle(); |
238 Mock::VerifyAndClearExpectations(&observer); | 245 Mock::VerifyAndClearExpectations(&observer); |
239 | 246 |
240 config_service_->RemoveObserver(&observer); | 247 config_service_->RemoveObserver(&observer); |
241 } | 248 } |
242 | 249 |
243 TEST_F(DataReductionProxyConfigServiceTest, TrackerDisable) { | 250 TEST_F(DataReductionProxyConfigServiceTest, TrackerDisable) { |
244 MockObserver observer; | 251 MockObserver observer; |
245 //base::MessageLoopForUI loop; | 252 //base::MessageLoopForUI loop; |
246 config_service_->AddObserver(&observer); | 253 config_service_->AddObserver(&observer); |
247 scoped_refptr<base::TestSimpleTaskRunner> task_runner_( | 254 scoped_refptr<base::TestSimpleTaskRunner> task_runner_( |
248 new base::TestSimpleTaskRunner()); | 255 new base::TestSimpleTaskRunner()); |
249 DataReductionProxyConfigTracker tracker(config_service_.get(), | 256 DataReductionProxyConfigTracker tracker( |
250 task_runner_.get()); | 257 base::Bind(&data_reduction_proxy::DataReductionProxyConfigService:: |
| 258 UpdateProxyConfig, |
| 259 base::Unretained(config_service_.get())), |
| 260 task_runner_.get()); |
251 net::ProxyConfig expected_config; | 261 net::ProxyConfig expected_config; |
252 expected_config.proxy_rules().ParseFromString(kSystemProxyRules); | 262 expected_config.proxy_rules().ParseFromString(kSystemProxyRules); |
253 EXPECT_CALL(observer, OnProxyConfigChanged( | 263 EXPECT_CALL(observer, OnProxyConfigChanged( |
254 ProxyConfigMatches(expected_config), | 264 ProxyConfigMatches(expected_config), |
255 net::ProxyConfigService::CONFIG_VALID)).Times(1); | 265 net::ProxyConfigService::CONFIG_VALID)).Times(1); |
256 tracker.Disable(); | 266 tracker.Disable(); |
257 task_runner_->RunUntilIdle(); | 267 task_runner_->RunUntilIdle(); |
258 //loop.RunUntilIdle(); | 268 //loop.RunUntilIdle(); |
259 Mock::VerifyAndClearExpectations(&observer); | 269 Mock::VerifyAndClearExpectations(&observer); |
260 | 270 |
261 config_service_->RemoveObserver(&observer); | 271 config_service_->RemoveObserver(&observer); |
262 } | 272 } |
263 | 273 |
264 | 274 |
265 TEST_F(DataReductionProxyConfigServiceTest, TrackerBypassList) { | 275 TEST_F(DataReductionProxyConfigServiceTest, TrackerBypassList) { |
266 base::MessageLoopForUI loop; | 276 base::MessageLoopForUI loop; |
267 scoped_refptr<base::TestSimpleTaskRunner> task_runner_( | 277 scoped_refptr<base::TestSimpleTaskRunner> task_runner_( |
268 new base::TestSimpleTaskRunner()); | 278 new base::TestSimpleTaskRunner()); |
269 DataReductionProxyConfigTracker tracker(config_service_.get(), | 279 DataReductionProxyConfigTracker tracker( |
270 task_runner_.get()); | 280 base::Bind(&data_reduction_proxy::DataReductionProxyConfigService:: |
| 281 UpdateProxyConfig, |
| 282 base::Unretained(config_service_.get())), |
| 283 task_runner_.get()); |
271 tracker.AddHostPatternToBypass("http://www.google.com"); | 284 tracker.AddHostPatternToBypass("http://www.google.com"); |
272 tracker.AddHostPatternToBypass("fefe:13::abc/33"); | 285 tracker.AddHostPatternToBypass("fefe:13::abc/33"); |
273 tracker.AddURLPatternToBypass("foo.org/images/*"); | 286 tracker.AddURLPatternToBypass("foo.org/images/*"); |
274 tracker.AddURLPatternToBypass("http://foo.com/*"); | 287 tracker.AddURLPatternToBypass("http://foo.com/*"); |
275 tracker.AddURLPatternToBypass("http://baz.com:22/bar/*"); | 288 tracker.AddURLPatternToBypass("http://baz.com:22/bar/*"); |
276 tracker.AddURLPatternToBypass("http://*bat.com/bar/*"); | 289 tracker.AddURLPatternToBypass("http://*bat.com/bar/*"); |
277 | 290 |
278 std::string expected[] = { | 291 std::string expected[] = { |
279 "http://www.google.com", | 292 "http://www.google.com", |
280 "fefe:13::abc/33", | 293 "fefe:13::abc/33", |
281 "foo.org", | 294 "foo.org", |
282 "http://foo.com", | 295 "http://foo.com", |
283 "http://baz.com:22", | 296 "http://baz.com:22", |
284 "http://*bat.com" | 297 "http://*bat.com" |
285 }; | 298 }; |
286 | 299 |
287 ASSERT_EQ(tracker.bypass_rules_.size(), 6u); | 300 ASSERT_EQ(tracker.bypass_rules_.size(), 6u); |
288 int i = 0; | 301 int i = 0; |
289 for (std::vector<std::string>::iterator it = tracker.bypass_rules_.begin(); | 302 for (std::vector<std::string>::iterator it = tracker.bypass_rules_.begin(); |
290 it != tracker.bypass_rules_.end(); ++it) { | 303 it != tracker.bypass_rules_.end(); ++it) { |
291 EXPECT_EQ(expected[i++], *it); | 304 EXPECT_EQ(expected[i++], *it); |
292 } | 305 } |
293 } | 306 } |
294 | 307 |
295 } // namespace data_reduction_proxy | 308 } // namespace data_reduction_proxy |
OLD | NEW |