OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 "net/proxy/proxy_service.h" | 5 #include "net/proxy/proxy_service.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/format_macros.h" | 9 #include "base/format_macros.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 | 85 |
86 private: | 86 private: |
87 GURL pending_request_url_; | 87 GURL pending_request_url_; |
88 CompletionCallback* pending_request_callback_; | 88 CompletionCallback* pending_request_callback_; |
89 std::string* pending_request_bytes_; | 89 std::string* pending_request_bytes_; |
90 }; | 90 }; |
91 | 91 |
92 TEST(ProxyServiceTest, Direct) { | 92 TEST(ProxyServiceTest, Direct) { |
93 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 93 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
94 scoped_refptr<ProxyService> service( | 94 scoped_refptr<ProxyService> service( |
95 new ProxyService(new MockProxyConfigService, resolver, NULL)); | 95 new ProxyService(new MockProxyConfigService, resolver, NULL, |
| 96 BoundNetLog())); |
96 | 97 |
97 GURL url("http://www.google.com/"); | 98 GURL url("http://www.google.com/"); |
98 | 99 |
99 ProxyInfo info; | 100 ProxyInfo info; |
100 TestCompletionCallback callback; | 101 TestCompletionCallback callback; |
101 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); | 102 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); |
102 int rv = service->ResolveProxy(url, &info, &callback, NULL, log.bound()); | 103 int rv = service->ResolveProxy(url, &info, &callback, NULL, log.bound()); |
103 EXPECT_EQ(OK, rv); | 104 EXPECT_EQ(OK, rv); |
104 EXPECT_TRUE(resolver->pending_requests().empty()); | 105 EXPECT_TRUE(resolver->pending_requests().empty()); |
105 | 106 |
106 EXPECT_TRUE(info.is_direct()); | 107 EXPECT_TRUE(info.is_direct()); |
107 | 108 |
108 // Check the NetLog was filled correctly. | 109 // Check the NetLog was filled correctly. |
109 EXPECT_EQ(5u, log.entries().size()); | 110 EXPECT_EQ(5u, log.entries().size()); |
110 EXPECT_TRUE(LogContainsBeginEvent( | 111 EXPECT_TRUE(LogContainsBeginEvent( |
111 log.entries(), 0, NetLog::TYPE_PROXY_SERVICE)); | 112 log.entries(), 0, NetLog::TYPE_PROXY_SERVICE)); |
112 EXPECT_TRUE(LogContainsEndEvent( | 113 EXPECT_TRUE(LogContainsEndEvent( |
113 log.entries(), 4, NetLog::TYPE_PROXY_SERVICE)); | 114 log.entries(), 4, NetLog::TYPE_PROXY_SERVICE)); |
114 } | 115 } |
115 | 116 |
116 TEST(ProxyServiceTest, PAC) { | 117 TEST(ProxyServiceTest, PAC) { |
117 MockProxyConfigService* config_service = | 118 MockProxyConfigService* config_service = |
118 new MockProxyConfigService("http://foopy/proxy.pac"); | 119 new MockProxyConfigService("http://foopy/proxy.pac"); |
119 | 120 |
120 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 121 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
121 | 122 |
122 scoped_refptr<ProxyService> service( | 123 scoped_refptr<ProxyService> service( |
123 new ProxyService(config_service, resolver, NULL)); | 124 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
124 | 125 |
125 GURL url("http://www.google.com/"); | 126 GURL url("http://www.google.com/"); |
126 | 127 |
127 ProxyInfo info; | 128 ProxyInfo info; |
128 TestCompletionCallback callback; | 129 TestCompletionCallback callback; |
129 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); | 130 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); |
130 | 131 |
131 int rv = service->ResolveProxy(url, &info, &callback, NULL, log.bound()); | 132 int rv = service->ResolveProxy(url, &info, &callback, NULL, log.bound()); |
132 EXPECT_EQ(ERR_IO_PENDING, rv); | 133 EXPECT_EQ(ERR_IO_PENDING, rv); |
133 | 134 |
(...skipping 26 matching lines...) Expand all Loading... |
160 | 161 |
161 // Test that the proxy resolver does not see the URL's username/password | 162 // Test that the proxy resolver does not see the URL's username/password |
162 // or its reference section. | 163 // or its reference section. |
163 TEST(ProxyServiceTest, PAC_NoIdentityOrHash) { | 164 TEST(ProxyServiceTest, PAC_NoIdentityOrHash) { |
164 MockProxyConfigService* config_service = | 165 MockProxyConfigService* config_service = |
165 new MockProxyConfigService("http://foopy/proxy.pac"); | 166 new MockProxyConfigService("http://foopy/proxy.pac"); |
166 | 167 |
167 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 168 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
168 | 169 |
169 scoped_refptr<ProxyService> service( | 170 scoped_refptr<ProxyService> service( |
170 new ProxyService(config_service, resolver, NULL)); | 171 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
171 | 172 |
172 GURL url("http://username:password@www.google.com/?ref#hash#hash"); | 173 GURL url("http://username:password@www.google.com/?ref#hash#hash"); |
173 | 174 |
174 ProxyInfo info; | 175 ProxyInfo info; |
175 TestCompletionCallback callback; | 176 TestCompletionCallback callback; |
176 int rv = service->ResolveProxy(url, &info, &callback, NULL, NULL); | 177 int rv = service->ResolveProxy(url, &info, &callback, NULL, NULL); |
177 EXPECT_EQ(ERR_IO_PENDING, rv); | 178 EXPECT_EQ(ERR_IO_PENDING, rv); |
178 | 179 |
179 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 180 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
180 resolver->pending_set_pac_script_request()->pac_url()); | 181 resolver->pending_set_pac_script_request()->pac_url()); |
181 resolver->pending_set_pac_script_request()->CompleteNow(OK); | 182 resolver->pending_set_pac_script_request()->CompleteNow(OK); |
182 | 183 |
183 ASSERT_EQ(1u, resolver->pending_requests().size()); | 184 ASSERT_EQ(1u, resolver->pending_requests().size()); |
184 // The URL should have been simplified, stripping the username/password/hash. | 185 // The URL should have been simplified, stripping the username/password/hash. |
185 EXPECT_EQ(GURL("http://www.google.com/?ref"), | 186 EXPECT_EQ(GURL("http://www.google.com/?ref"), |
186 resolver->pending_requests()[0]->url()); | 187 resolver->pending_requests()[0]->url()); |
187 | 188 |
188 // We end here without ever completing the request -- destruction of | 189 // We end here without ever completing the request -- destruction of |
189 // ProxyService will cancel the outstanding request. | 190 // ProxyService will cancel the outstanding request. |
190 } | 191 } |
191 | 192 |
192 TEST(ProxyServiceTest, PAC_FailoverWithoutDirect) { | 193 TEST(ProxyServiceTest, PAC_FailoverWithoutDirect) { |
193 MockProxyConfigService* config_service = | 194 MockProxyConfigService* config_service = |
194 new MockProxyConfigService("http://foopy/proxy.pac"); | 195 new MockProxyConfigService("http://foopy/proxy.pac"); |
195 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 196 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
196 | 197 |
197 scoped_refptr<ProxyService> service( | 198 scoped_refptr<ProxyService> service( |
198 new ProxyService(config_service, resolver, NULL)); | 199 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
199 | 200 |
200 GURL url("http://www.google.com/"); | 201 GURL url("http://www.google.com/"); |
201 | 202 |
202 ProxyInfo info; | 203 ProxyInfo info; |
203 TestCompletionCallback callback1; | 204 TestCompletionCallback callback1; |
204 int rv = service->ResolveProxy(url, &info, &callback1, NULL, NULL); | 205 int rv = service->ResolveProxy(url, &info, &callback1, NULL, NULL); |
205 EXPECT_EQ(ERR_IO_PENDING, rv); | 206 EXPECT_EQ(ERR_IO_PENDING, rv); |
206 | 207 |
207 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 208 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
208 resolver->pending_set_pac_script_request()->pac_url()); | 209 resolver->pending_set_pac_script_request()->pac_url()); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
245 // then foobar:20, and then give up and error. | 246 // then foobar:20, and then give up and error. |
246 // | 247 // |
247 // The important check of this test is to make sure that DIRECT is not somehow | 248 // The important check of this test is to make sure that DIRECT is not somehow |
248 // cached as being a bad proxy. | 249 // cached as being a bad proxy. |
249 TEST(ProxyServiceTest, PAC_FailoverAfterDirect) { | 250 TEST(ProxyServiceTest, PAC_FailoverAfterDirect) { |
250 MockProxyConfigService* config_service = | 251 MockProxyConfigService* config_service = |
251 new MockProxyConfigService("http://foopy/proxy.pac"); | 252 new MockProxyConfigService("http://foopy/proxy.pac"); |
252 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 253 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
253 | 254 |
254 scoped_refptr<ProxyService> service( | 255 scoped_refptr<ProxyService> service( |
255 new ProxyService(config_service, resolver, NULL)); | 256 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
256 | 257 |
257 GURL url("http://www.google.com/"); | 258 GURL url("http://www.google.com/"); |
258 | 259 |
259 ProxyInfo info; | 260 ProxyInfo info; |
260 TestCompletionCallback callback1; | 261 TestCompletionCallback callback1; |
261 int rv = service->ResolveProxy(url, &info, &callback1, NULL, NULL); | 262 int rv = service->ResolveProxy(url, &info, &callback1, NULL, NULL); |
262 EXPECT_EQ(ERR_IO_PENDING, rv); | 263 EXPECT_EQ(ERR_IO_PENDING, rv); |
263 | 264 |
264 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 265 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
265 resolver->pending_set_pac_script_request()->pac_url()); | 266 resolver->pending_set_pac_script_request()->pac_url()); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 // Test what happens when the ProxyResolver fails. The download and setting | 308 // Test what happens when the ProxyResolver fails. The download and setting |
308 // of the PAC script have already succeeded, so this corresponds with a | 309 // of the PAC script have already succeeded, so this corresponds with a |
309 // javascript runtime error while calling FindProxyForURL(). | 310 // javascript runtime error while calling FindProxyForURL(). |
310 | 311 |
311 MockProxyConfigService* config_service = | 312 MockProxyConfigService* config_service = |
312 new MockProxyConfigService("http://foopy/proxy.pac"); | 313 new MockProxyConfigService("http://foopy/proxy.pac"); |
313 | 314 |
314 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 315 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
315 | 316 |
316 scoped_refptr<ProxyService> service( | 317 scoped_refptr<ProxyService> service( |
317 new ProxyService(config_service, resolver, NULL)); | 318 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
318 | 319 |
319 // Start first resolve request. | 320 // Start first resolve request. |
320 GURL url("http://www.google.com/"); | 321 GURL url("http://www.google.com/"); |
321 ProxyInfo info; | 322 ProxyInfo info; |
322 TestCompletionCallback callback1; | 323 TestCompletionCallback callback1; |
323 int rv = service->ResolveProxy(url, &info, &callback1, NULL, NULL); | 324 int rv = service->ResolveProxy(url, &info, &callback1, NULL, NULL); |
324 EXPECT_EQ(ERR_IO_PENDING, rv); | 325 EXPECT_EQ(ERR_IO_PENDING, rv); |
325 | 326 |
326 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 327 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
327 resolver->pending_set_pac_script_request()->pac_url()); | 328 resolver->pending_set_pac_script_request()->pac_url()); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 TEST(ProxyServiceTest, ProxyFallback) { | 361 TEST(ProxyServiceTest, ProxyFallback) { |
361 // Test what happens when we specify multiple proxy servers and some of them | 362 // Test what happens when we specify multiple proxy servers and some of them |
362 // are bad. | 363 // are bad. |
363 | 364 |
364 MockProxyConfigService* config_service = | 365 MockProxyConfigService* config_service = |
365 new MockProxyConfigService("http://foopy/proxy.pac"); | 366 new MockProxyConfigService("http://foopy/proxy.pac"); |
366 | 367 |
367 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 368 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
368 | 369 |
369 scoped_refptr<ProxyService> service( | 370 scoped_refptr<ProxyService> service( |
370 new ProxyService(config_service, resolver, NULL)); | 371 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
371 | 372 |
372 GURL url("http://www.google.com/"); | 373 GURL url("http://www.google.com/"); |
373 | 374 |
374 // Get the proxy information. | 375 // Get the proxy information. |
375 ProxyInfo info; | 376 ProxyInfo info; |
376 TestCompletionCallback callback1; | 377 TestCompletionCallback callback1; |
377 int rv = service->ResolveProxy(url, &info, &callback1, NULL, NULL); | 378 int rv = service->ResolveProxy(url, &info, &callback1, NULL, NULL); |
378 EXPECT_EQ(ERR_IO_PENDING, rv); | 379 EXPECT_EQ(ERR_IO_PENDING, rv); |
379 | 380 |
380 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 381 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
446 | 447 |
447 // This test is similar to ProxyFallback, but this time we have an explicit | 448 // This test is similar to ProxyFallback, but this time we have an explicit |
448 // fallback choice to DIRECT. | 449 // fallback choice to DIRECT. |
449 TEST(ProxyServiceTest, ProxyFallbackToDirect) { | 450 TEST(ProxyServiceTest, ProxyFallbackToDirect) { |
450 MockProxyConfigService* config_service = | 451 MockProxyConfigService* config_service = |
451 new MockProxyConfigService("http://foopy/proxy.pac"); | 452 new MockProxyConfigService("http://foopy/proxy.pac"); |
452 | 453 |
453 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 454 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
454 | 455 |
455 scoped_refptr<ProxyService> service( | 456 scoped_refptr<ProxyService> service( |
456 new ProxyService(config_service, resolver, NULL)); | 457 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
457 | 458 |
458 GURL url("http://www.google.com/"); | 459 GURL url("http://www.google.com/"); |
459 | 460 |
460 // Get the proxy information. | 461 // Get the proxy information. |
461 ProxyInfo info; | 462 ProxyInfo info; |
462 TestCompletionCallback callback1; | 463 TestCompletionCallback callback1; |
463 int rv = service->ResolveProxy(url, &info, &callback1, NULL, NULL); | 464 int rv = service->ResolveProxy(url, &info, &callback1, NULL, NULL); |
464 EXPECT_EQ(ERR_IO_PENDING, rv); | 465 EXPECT_EQ(ERR_IO_PENDING, rv); |
465 | 466 |
466 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 467 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
506 | 507 |
507 TEST(ProxyServiceTest, ProxyFallback_NewSettings) { | 508 TEST(ProxyServiceTest, ProxyFallback_NewSettings) { |
508 // Test proxy failover when new settings are available. | 509 // Test proxy failover when new settings are available. |
509 | 510 |
510 MockProxyConfigService* config_service = | 511 MockProxyConfigService* config_service = |
511 new MockProxyConfigService("http://foopy/proxy.pac"); | 512 new MockProxyConfigService("http://foopy/proxy.pac"); |
512 | 513 |
513 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 514 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
514 | 515 |
515 scoped_refptr<ProxyService> service( | 516 scoped_refptr<ProxyService> service( |
516 new ProxyService(config_service, resolver, NULL)); | 517 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
517 | 518 |
518 GURL url("http://www.google.com/"); | 519 GURL url("http://www.google.com/"); |
519 | 520 |
520 // Get the proxy information. | 521 // Get the proxy information. |
521 ProxyInfo info; | 522 ProxyInfo info; |
522 TestCompletionCallback callback1; | 523 TestCompletionCallback callback1; |
523 int rv = service->ResolveProxy(url, &info, &callback1, NULL, NULL); | 524 int rv = service->ResolveProxy(url, &info, &callback1, NULL, NULL); |
524 EXPECT_EQ(ERR_IO_PENDING, rv); | 525 EXPECT_EQ(ERR_IO_PENDING, rv); |
525 | 526 |
526 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 527 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
595 | 596 |
596 TEST(ProxyServiceTest, ProxyFallback_BadConfig) { | 597 TEST(ProxyServiceTest, ProxyFallback_BadConfig) { |
597 // Test proxy failover when the configuration is bad. | 598 // Test proxy failover when the configuration is bad. |
598 | 599 |
599 MockProxyConfigService* config_service = | 600 MockProxyConfigService* config_service = |
600 new MockProxyConfigService("http://foopy/proxy.pac"); | 601 new MockProxyConfigService("http://foopy/proxy.pac"); |
601 | 602 |
602 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 603 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
603 | 604 |
604 scoped_refptr<ProxyService> service( | 605 scoped_refptr<ProxyService> service( |
605 new ProxyService(config_service, resolver, NULL)); | 606 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
606 | 607 |
607 GURL url("http://www.google.com/"); | 608 GURL url("http://www.google.com/"); |
608 | 609 |
609 // Get the proxy information. | 610 // Get the proxy information. |
610 ProxyInfo info; | 611 ProxyInfo info; |
611 TestCompletionCallback callback1; | 612 TestCompletionCallback callback1; |
612 int rv = service->ResolveProxy(url, &info, &callback1, NULL, NULL); | 613 int rv = service->ResolveProxy(url, &info, &callback1, NULL, NULL); |
613 EXPECT_EQ(ERR_IO_PENDING, rv); | 614 EXPECT_EQ(ERR_IO_PENDING, rv); |
614 | 615 |
615 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 616 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
680 // Test that the proxy bypass rules are consulted. | 681 // Test that the proxy bypass rules are consulted. |
681 | 682 |
682 TestCompletionCallback callback[2]; | 683 TestCompletionCallback callback[2]; |
683 ProxyInfo info[2]; | 684 ProxyInfo info[2]; |
684 ProxyConfig config; | 685 ProxyConfig config; |
685 config.proxy_rules().ParseFromString("foopy1:8080;foopy2:9090"); | 686 config.proxy_rules().ParseFromString("foopy1:8080;foopy2:9090"); |
686 config.set_auto_detect(false); | 687 config.set_auto_detect(false); |
687 config.proxy_rules().bypass_rules.ParseFromString("*.org"); | 688 config.proxy_rules().bypass_rules.ParseFromString("*.org"); |
688 | 689 |
689 scoped_refptr<ProxyService> service(new ProxyService( | 690 scoped_refptr<ProxyService> service(new ProxyService( |
690 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); | 691 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, |
| 692 BoundNetLog())); |
691 | 693 |
692 int rv; | 694 int rv; |
693 GURL url1("http://www.webkit.org"); | 695 GURL url1("http://www.webkit.org"); |
694 GURL url2("http://www.webkit.com"); | 696 GURL url2("http://www.webkit.com"); |
695 | 697 |
696 // Request for a .org domain should bypass proxy. | 698 // Request for a .org domain should bypass proxy. |
697 rv = service->ResolveProxy(url1, &info[0], &callback[0], NULL, NULL); | 699 rv = service->ResolveProxy(url1, &info[0], &callback[0], NULL, NULL); |
698 EXPECT_EQ(OK, rv); | 700 EXPECT_EQ(OK, rv); |
699 EXPECT_TRUE(info[0].is_direct()); | 701 EXPECT_TRUE(info[0].is_direct()); |
700 | 702 |
701 // Request for a .com domain hits the proxy. | 703 // Request for a .com domain hits the proxy. |
702 rv = service->ResolveProxy(url2, &info[1], &callback[1], NULL, NULL); | 704 rv = service->ResolveProxy(url2, &info[1], &callback[1], NULL, NULL); |
703 EXPECT_EQ(OK, rv); | 705 EXPECT_EQ(OK, rv); |
704 EXPECT_EQ("foopy1:8080", info[1].proxy_server().ToURI()); | 706 EXPECT_EQ("foopy1:8080", info[1].proxy_server().ToURI()); |
705 } | 707 } |
706 | 708 |
707 | 709 |
708 TEST(ProxyServiceTest, PerProtocolProxyTests) { | 710 TEST(ProxyServiceTest, PerProtocolProxyTests) { |
709 ProxyConfig config; | 711 ProxyConfig config; |
710 config.proxy_rules().ParseFromString("http=foopy1:8080;https=foopy2:8080"); | 712 config.proxy_rules().ParseFromString("http=foopy1:8080;https=foopy2:8080"); |
711 config.set_auto_detect(false); | 713 config.set_auto_detect(false); |
712 { | 714 { |
713 scoped_refptr<ProxyService> service(new ProxyService( | 715 scoped_refptr<ProxyService> service(new ProxyService( |
714 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); | 716 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, |
| 717 BoundNetLog())); |
715 GURL test_url("http://www.msn.com"); | 718 GURL test_url("http://www.msn.com"); |
716 ProxyInfo info; | 719 ProxyInfo info; |
717 TestCompletionCallback callback; | 720 TestCompletionCallback callback; |
718 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, NULL); | 721 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, NULL); |
719 EXPECT_EQ(OK, rv); | 722 EXPECT_EQ(OK, rv); |
720 EXPECT_FALSE(info.is_direct()); | 723 EXPECT_FALSE(info.is_direct()); |
721 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 724 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
722 } | 725 } |
723 { | 726 { |
724 scoped_refptr<ProxyService> service(new ProxyService( | 727 scoped_refptr<ProxyService> service(new ProxyService( |
725 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); | 728 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, |
| 729 BoundNetLog())); |
726 GURL test_url("ftp://ftp.google.com"); | 730 GURL test_url("ftp://ftp.google.com"); |
727 ProxyInfo info; | 731 ProxyInfo info; |
728 TestCompletionCallback callback; | 732 TestCompletionCallback callback; |
729 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, NULL); | 733 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, NULL); |
730 EXPECT_EQ(OK, rv); | 734 EXPECT_EQ(OK, rv); |
731 EXPECT_TRUE(info.is_direct()); | 735 EXPECT_TRUE(info.is_direct()); |
732 EXPECT_EQ("direct://", info.proxy_server().ToURI()); | 736 EXPECT_EQ("direct://", info.proxy_server().ToURI()); |
733 } | 737 } |
734 { | 738 { |
735 scoped_refptr<ProxyService> service(new ProxyService( | 739 scoped_refptr<ProxyService> service(new ProxyService( |
736 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); | 740 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, |
| 741 BoundNetLog())); |
737 GURL test_url("https://webbranch.techcu.com"); | 742 GURL test_url("https://webbranch.techcu.com"); |
738 ProxyInfo info; | 743 ProxyInfo info; |
739 TestCompletionCallback callback; | 744 TestCompletionCallback callback; |
740 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, NULL); | 745 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, NULL); |
741 EXPECT_EQ(OK, rv); | 746 EXPECT_EQ(OK, rv); |
742 EXPECT_FALSE(info.is_direct()); | 747 EXPECT_FALSE(info.is_direct()); |
743 EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); | 748 EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); |
744 } | 749 } |
745 { | 750 { |
746 config.proxy_rules().ParseFromString("foopy1:8080"); | 751 config.proxy_rules().ParseFromString("foopy1:8080"); |
747 scoped_refptr<ProxyService> service(new ProxyService( | 752 scoped_refptr<ProxyService> service(new ProxyService( |
748 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); | 753 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, |
| 754 BoundNetLog())); |
749 GURL test_url("http://www.microsoft.com"); | 755 GURL test_url("http://www.microsoft.com"); |
750 ProxyInfo info; | 756 ProxyInfo info; |
751 TestCompletionCallback callback; | 757 TestCompletionCallback callback; |
752 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, NULL); | 758 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, NULL); |
753 EXPECT_EQ(OK, rv); | 759 EXPECT_EQ(OK, rv); |
754 EXPECT_FALSE(info.is_direct()); | 760 EXPECT_FALSE(info.is_direct()); |
755 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 761 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
756 } | 762 } |
757 } | 763 } |
758 | 764 |
759 // If only HTTP and a SOCKS proxy are specified, check if ftp/https queries | 765 // If only HTTP and a SOCKS proxy are specified, check if ftp/https queries |
760 // fall back to the SOCKS proxy. | 766 // fall back to the SOCKS proxy. |
761 TEST(ProxyServiceTest, DefaultProxyFallbackToSOCKS) { | 767 TEST(ProxyServiceTest, DefaultProxyFallbackToSOCKS) { |
762 ProxyConfig config; | 768 ProxyConfig config; |
763 config.proxy_rules().ParseFromString("http=foopy1:8080;socks=foopy2:1080"); | 769 config.proxy_rules().ParseFromString("http=foopy1:8080;socks=foopy2:1080"); |
764 config.set_auto_detect(false); | 770 config.set_auto_detect(false); |
765 EXPECT_EQ(ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME, | 771 EXPECT_EQ(ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME, |
766 config.proxy_rules().type); | 772 config.proxy_rules().type); |
767 | 773 |
768 { | 774 { |
769 scoped_refptr<ProxyService> service(new ProxyService( | 775 scoped_refptr<ProxyService> service(new ProxyService( |
770 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); | 776 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, |
| 777 BoundNetLog())); |
771 GURL test_url("http://www.msn.com"); | 778 GURL test_url("http://www.msn.com"); |
772 ProxyInfo info; | 779 ProxyInfo info; |
773 TestCompletionCallback callback; | 780 TestCompletionCallback callback; |
774 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, NULL); | 781 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, NULL); |
775 EXPECT_EQ(OK, rv); | 782 EXPECT_EQ(OK, rv); |
776 EXPECT_FALSE(info.is_direct()); | 783 EXPECT_FALSE(info.is_direct()); |
777 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 784 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
778 } | 785 } |
779 { | 786 { |
780 scoped_refptr<ProxyService> service(new ProxyService( | 787 scoped_refptr<ProxyService> service(new ProxyService( |
781 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); | 788 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, |
| 789 BoundNetLog())); |
782 GURL test_url("ftp://ftp.google.com"); | 790 GURL test_url("ftp://ftp.google.com"); |
783 ProxyInfo info; | 791 ProxyInfo info; |
784 TestCompletionCallback callback; | 792 TestCompletionCallback callback; |
785 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, NULL); | 793 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, NULL); |
786 EXPECT_EQ(OK, rv); | 794 EXPECT_EQ(OK, rv); |
787 EXPECT_FALSE(info.is_direct()); | 795 EXPECT_FALSE(info.is_direct()); |
788 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); | 796 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); |
789 } | 797 } |
790 { | 798 { |
791 scoped_refptr<ProxyService> service(new ProxyService( | 799 scoped_refptr<ProxyService> service(new ProxyService( |
792 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); | 800 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, |
| 801 BoundNetLog())); |
793 GURL test_url("https://webbranch.techcu.com"); | 802 GURL test_url("https://webbranch.techcu.com"); |
794 ProxyInfo info; | 803 ProxyInfo info; |
795 TestCompletionCallback callback; | 804 TestCompletionCallback callback; |
796 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, NULL); | 805 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, NULL); |
797 EXPECT_EQ(OK, rv); | 806 EXPECT_EQ(OK, rv); |
798 EXPECT_FALSE(info.is_direct()); | 807 EXPECT_FALSE(info.is_direct()); |
799 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); | 808 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); |
800 } | 809 } |
801 { | 810 { |
802 scoped_refptr<ProxyService> service(new ProxyService( | 811 scoped_refptr<ProxyService> service(new ProxyService( |
803 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); | 812 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, |
| 813 BoundNetLog())); |
804 GURL test_url("unknown://www.microsoft.com"); | 814 GURL test_url("unknown://www.microsoft.com"); |
805 ProxyInfo info; | 815 ProxyInfo info; |
806 TestCompletionCallback callback; | 816 TestCompletionCallback callback; |
807 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, NULL); | 817 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, NULL); |
808 EXPECT_EQ(OK, rv); | 818 EXPECT_EQ(OK, rv); |
809 EXPECT_FALSE(info.is_direct()); | 819 EXPECT_FALSE(info.is_direct()); |
810 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); | 820 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); |
811 } | 821 } |
812 } | 822 } |
813 | 823 |
814 // Test cancellation of an in-progress request. | 824 // Test cancellation of an in-progress request. |
815 TEST(ProxyServiceTest, CancelInProgressRequest) { | 825 TEST(ProxyServiceTest, CancelInProgressRequest) { |
816 MockProxyConfigService* config_service = | 826 MockProxyConfigService* config_service = |
817 new MockProxyConfigService("http://foopy/proxy.pac"); | 827 new MockProxyConfigService("http://foopy/proxy.pac"); |
818 | 828 |
819 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 829 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
820 | 830 |
821 scoped_refptr<ProxyService> service( | 831 scoped_refptr<ProxyService> service( |
822 new ProxyService(config_service, resolver, NULL)); | 832 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
823 | 833 |
824 // Start 3 requests. | 834 // Start 3 requests. |
825 | 835 |
826 ProxyInfo info1; | 836 ProxyInfo info1; |
827 TestCompletionCallback callback1; | 837 TestCompletionCallback callback1; |
828 int rv = service->ResolveProxy( | 838 int rv = service->ResolveProxy( |
829 GURL("http://request1"), &info1, &callback1, NULL, NULL); | 839 GURL("http://request1"), &info1, &callback1, NULL, NULL); |
830 EXPECT_EQ(ERR_IO_PENDING, rv); | 840 EXPECT_EQ(ERR_IO_PENDING, rv); |
831 | 841 |
832 // Nothing has been sent to the proxy resolver yet, since the proxy | 842 // Nothing has been sent to the proxy resolver yet, since the proxy |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
887 | 897 |
888 // Test the initial PAC download for resolver that expects bytes. | 898 // Test the initial PAC download for resolver that expects bytes. |
889 TEST(ProxyServiceTest, InitialPACScriptDownload) { | 899 TEST(ProxyServiceTest, InitialPACScriptDownload) { |
890 MockProxyConfigService* config_service = | 900 MockProxyConfigService* config_service = |
891 new MockProxyConfigService("http://foopy/proxy.pac"); | 901 new MockProxyConfigService("http://foopy/proxy.pac"); |
892 | 902 |
893 MockAsyncProxyResolverExpectsBytes* resolver = | 903 MockAsyncProxyResolverExpectsBytes* resolver = |
894 new MockAsyncProxyResolverExpectsBytes; | 904 new MockAsyncProxyResolverExpectsBytes; |
895 | 905 |
896 scoped_refptr<ProxyService> service( | 906 scoped_refptr<ProxyService> service( |
897 new ProxyService(config_service, resolver, NULL)); | 907 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
898 | 908 |
899 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 909 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
900 service->SetProxyScriptFetcher(fetcher); | 910 service->SetProxyScriptFetcher(fetcher); |
901 | 911 |
902 // Start 3 requests. | 912 // Start 3 requests. |
903 | 913 |
904 ProxyInfo info1; | 914 ProxyInfo info1; |
905 TestCompletionCallback callback1; | 915 TestCompletionCallback callback1; |
906 int rv = service->ResolveProxy( | 916 int rv = service->ResolveProxy( |
907 GURL("http://request1"), &info1, &callback1, NULL, NULL); | 917 GURL("http://request1"), &info1, &callback1, NULL, NULL); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
966 | 976 |
967 // Test changing the ProxyScriptFetcher while PAC download is in progress. | 977 // Test changing the ProxyScriptFetcher while PAC download is in progress. |
968 TEST(ProxyServiceTest, ChangeScriptFetcherWhilePACDownloadInProgress) { | 978 TEST(ProxyServiceTest, ChangeScriptFetcherWhilePACDownloadInProgress) { |
969 MockProxyConfigService* config_service = | 979 MockProxyConfigService* config_service = |
970 new MockProxyConfigService("http://foopy/proxy.pac"); | 980 new MockProxyConfigService("http://foopy/proxy.pac"); |
971 | 981 |
972 MockAsyncProxyResolverExpectsBytes* resolver = | 982 MockAsyncProxyResolverExpectsBytes* resolver = |
973 new MockAsyncProxyResolverExpectsBytes; | 983 new MockAsyncProxyResolverExpectsBytes; |
974 | 984 |
975 scoped_refptr<ProxyService> service( | 985 scoped_refptr<ProxyService> service( |
976 new ProxyService(config_service, resolver, NULL)); | 986 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
977 | 987 |
978 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 988 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
979 service->SetProxyScriptFetcher(fetcher); | 989 service->SetProxyScriptFetcher(fetcher); |
980 | 990 |
981 // Start 2 requests. | 991 // Start 2 requests. |
982 | 992 |
983 ProxyInfo info1; | 993 ProxyInfo info1; |
984 TestCompletionCallback callback1; | 994 TestCompletionCallback callback1; |
985 int rv = service->ResolveProxy( | 995 int rv = service->ResolveProxy( |
986 GURL("http://request1"), &info1, &callback1, NULL, NULL); | 996 GURL("http://request1"), &info1, &callback1, NULL, NULL); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1023 | 1033 |
1024 // Test cancellation of a request, while the PAC script is being fetched. | 1034 // Test cancellation of a request, while the PAC script is being fetched. |
1025 TEST(ProxyServiceTest, CancelWhilePACFetching) { | 1035 TEST(ProxyServiceTest, CancelWhilePACFetching) { |
1026 MockProxyConfigService* config_service = | 1036 MockProxyConfigService* config_service = |
1027 new MockProxyConfigService("http://foopy/proxy.pac"); | 1037 new MockProxyConfigService("http://foopy/proxy.pac"); |
1028 | 1038 |
1029 MockAsyncProxyResolverExpectsBytes* resolver = | 1039 MockAsyncProxyResolverExpectsBytes* resolver = |
1030 new MockAsyncProxyResolverExpectsBytes; | 1040 new MockAsyncProxyResolverExpectsBytes; |
1031 | 1041 |
1032 scoped_refptr<ProxyService> service( | 1042 scoped_refptr<ProxyService> service( |
1033 new ProxyService(config_service, resolver, NULL)); | 1043 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
1034 | 1044 |
1035 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1045 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
1036 service->SetProxyScriptFetcher(fetcher); | 1046 service->SetProxyScriptFetcher(fetcher); |
1037 | 1047 |
1038 // Start 3 requests. | 1048 // Start 3 requests. |
1039 ProxyInfo info1; | 1049 ProxyInfo info1; |
1040 TestCompletionCallback callback1; | 1050 TestCompletionCallback callback1; |
1041 ProxyService::PacRequest* request1; | 1051 ProxyService::PacRequest* request1; |
1042 CapturingBoundNetLog log1(CapturingNetLog::kUnbounded); | 1052 CapturingBoundNetLog log1(CapturingNetLog::kUnbounded); |
1043 int rv = service->ResolveProxy( | 1053 int rv = service->ResolveProxy( |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1111 TEST(ProxyServiceTest, FallbackFromAutodetectToCustomPac) { | 1121 TEST(ProxyServiceTest, FallbackFromAutodetectToCustomPac) { |
1112 ProxyConfig config; | 1122 ProxyConfig config; |
1113 config.set_auto_detect(true); | 1123 config.set_auto_detect(true); |
1114 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 1124 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
1115 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. | 1125 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. |
1116 | 1126 |
1117 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1127 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
1118 MockAsyncProxyResolverExpectsBytes* resolver = | 1128 MockAsyncProxyResolverExpectsBytes* resolver = |
1119 new MockAsyncProxyResolverExpectsBytes; | 1129 new MockAsyncProxyResolverExpectsBytes; |
1120 scoped_refptr<ProxyService> service( | 1130 scoped_refptr<ProxyService> service( |
1121 new ProxyService(config_service, resolver, NULL)); | 1131 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
1122 | 1132 |
1123 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1133 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
1124 service->SetProxyScriptFetcher(fetcher); | 1134 service->SetProxyScriptFetcher(fetcher); |
1125 | 1135 |
1126 // Start 2 requests. | 1136 // Start 2 requests. |
1127 | 1137 |
1128 ProxyInfo info1; | 1138 ProxyInfo info1; |
1129 TestCompletionCallback callback1; | 1139 TestCompletionCallback callback1; |
1130 int rv = service->ResolveProxy( | 1140 int rv = service->ResolveProxy( |
1131 GURL("http://request1"), &info1, &callback1, NULL, NULL); | 1141 GURL("http://request1"), &info1, &callback1, NULL, NULL); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1182 TEST(ProxyServiceTest, FallbackFromAutodetectToCustomPac2) { | 1192 TEST(ProxyServiceTest, FallbackFromAutodetectToCustomPac2) { |
1183 ProxyConfig config; | 1193 ProxyConfig config; |
1184 config.set_auto_detect(true); | 1194 config.set_auto_detect(true); |
1185 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 1195 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
1186 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. | 1196 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. |
1187 | 1197 |
1188 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1198 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
1189 MockAsyncProxyResolverExpectsBytes* resolver = | 1199 MockAsyncProxyResolverExpectsBytes* resolver = |
1190 new MockAsyncProxyResolverExpectsBytes; | 1200 new MockAsyncProxyResolverExpectsBytes; |
1191 scoped_refptr<ProxyService> service( | 1201 scoped_refptr<ProxyService> service( |
1192 new ProxyService(config_service, resolver, NULL)); | 1202 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
1193 | 1203 |
1194 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1204 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
1195 service->SetProxyScriptFetcher(fetcher); | 1205 service->SetProxyScriptFetcher(fetcher); |
1196 | 1206 |
1197 // Start 2 requests. | 1207 // Start 2 requests. |
1198 | 1208 |
1199 ProxyInfo info1; | 1209 ProxyInfo info1; |
1200 TestCompletionCallback callback1; | 1210 TestCompletionCallback callback1; |
1201 int rv = service->ResolveProxy( | 1211 int rv = service->ResolveProxy( |
1202 GURL("http://request1"), &info1, &callback1, NULL, NULL); | 1212 GURL("http://request1"), &info1, &callback1, NULL, NULL); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1258 TEST(ProxyServiceTest, FallbackFromAutodetectToCustomToManual) { | 1268 TEST(ProxyServiceTest, FallbackFromAutodetectToCustomToManual) { |
1259 ProxyConfig config; | 1269 ProxyConfig config; |
1260 config.set_auto_detect(true); | 1270 config.set_auto_detect(true); |
1261 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 1271 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
1262 config.proxy_rules().ParseFromString("http=foopy:80"); | 1272 config.proxy_rules().ParseFromString("http=foopy:80"); |
1263 | 1273 |
1264 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1274 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
1265 MockAsyncProxyResolverExpectsBytes* resolver = | 1275 MockAsyncProxyResolverExpectsBytes* resolver = |
1266 new MockAsyncProxyResolverExpectsBytes; | 1276 new MockAsyncProxyResolverExpectsBytes; |
1267 scoped_refptr<ProxyService> service( | 1277 scoped_refptr<ProxyService> service( |
1268 new ProxyService(config_service, resolver, NULL)); | 1278 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
1269 | 1279 |
1270 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1280 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
1271 service->SetProxyScriptFetcher(fetcher); | 1281 service->SetProxyScriptFetcher(fetcher); |
1272 | 1282 |
1273 // Start 2 requests. | 1283 // Start 2 requests. |
1274 | 1284 |
1275 ProxyInfo info1; | 1285 ProxyInfo info1; |
1276 TestCompletionCallback callback1; | 1286 TestCompletionCallback callback1; |
1277 int rv = service->ResolveProxy( | 1287 int rv = service->ResolveProxy( |
1278 GURL("http://request1"), &info1, &callback1, NULL, NULL); | 1288 GURL("http://request1"), &info1, &callback1, NULL, NULL); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1316 ProxyConfig config; | 1326 ProxyConfig config; |
1317 config.set_auto_detect(true); | 1327 config.set_auto_detect(true); |
1318 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 1328 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
1319 config.proxy_rules().ParseFromString("http=foopy:80"); // Not used. | 1329 config.proxy_rules().ParseFromString("http=foopy:80"); // Not used. |
1320 config.proxy_rules().bypass_rules.ParseFromString("www.google.com"); | 1330 config.proxy_rules().bypass_rules.ParseFromString("www.google.com"); |
1321 | 1331 |
1322 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1332 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
1323 MockAsyncProxyResolverExpectsBytes* resolver = | 1333 MockAsyncProxyResolverExpectsBytes* resolver = |
1324 new MockAsyncProxyResolverExpectsBytes; | 1334 new MockAsyncProxyResolverExpectsBytes; |
1325 scoped_refptr<ProxyService> service( | 1335 scoped_refptr<ProxyService> service( |
1326 new ProxyService(config_service, resolver, NULL)); | 1336 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
1327 | 1337 |
1328 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1338 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
1329 service->SetProxyScriptFetcher(fetcher); | 1339 service->SetProxyScriptFetcher(fetcher); |
1330 | 1340 |
1331 // Start 1 requests. | 1341 // Start 1 requests. |
1332 | 1342 |
1333 ProxyInfo info1; | 1343 ProxyInfo info1; |
1334 TestCompletionCallback callback1; | 1344 TestCompletionCallback callback1; |
1335 int rv = service->ResolveProxy( | 1345 int rv = service->ResolveProxy( |
1336 GURL("http://www.google.com"), &info1, &callback1, NULL, NULL); | 1346 GURL("http://www.google.com"), &info1, &callback1, NULL, NULL); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1384 // have any memory errors (used to be that the ProxyScriptFetcher was | 1394 // have any memory errors (used to be that the ProxyScriptFetcher was |
1385 // being deleted prior to the InitProxyResolver). | 1395 // being deleted prior to the InitProxyResolver). |
1386 TEST(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingFetch) { | 1396 TEST(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingFetch) { |
1387 ProxyConfig config; | 1397 ProxyConfig config; |
1388 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 1398 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
1389 | 1399 |
1390 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1400 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
1391 MockAsyncProxyResolverExpectsBytes* resolver = | 1401 MockAsyncProxyResolverExpectsBytes* resolver = |
1392 new MockAsyncProxyResolverExpectsBytes; | 1402 new MockAsyncProxyResolverExpectsBytes; |
1393 scoped_refptr<ProxyService> service( | 1403 scoped_refptr<ProxyService> service( |
1394 new ProxyService(config_service, resolver, NULL)); | 1404 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
1395 | 1405 |
1396 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1406 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
1397 service->SetProxyScriptFetcher(fetcher); | 1407 service->SetProxyScriptFetcher(fetcher); |
1398 | 1408 |
1399 // Start 1 request. | 1409 // Start 1 request. |
1400 | 1410 |
1401 ProxyInfo info1; | 1411 ProxyInfo info1; |
1402 TestCompletionCallback callback1; | 1412 TestCompletionCallback callback1; |
1403 int rv = service->ResolveProxy( | 1413 int rv = service->ResolveProxy( |
1404 GURL("http://www.google.com"), &info1, &callback1, NULL, NULL); | 1414 GURL("http://www.google.com"), &info1, &callback1, NULL, NULL); |
(...skipping 15 matching lines...) Expand all Loading... |
1420 // request to the proxy resolver. When run under valgrind, should not | 1430 // request to the proxy resolver. When run under valgrind, should not |
1421 // have any memory errors (used to be that the ProxyResolver was | 1431 // have any memory errors (used to be that the ProxyResolver was |
1422 // being deleted prior to the InitProxyResolver). | 1432 // being deleted prior to the InitProxyResolver). |
1423 TEST(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingSet) { | 1433 TEST(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingSet) { |
1424 MockProxyConfigService* config_service = | 1434 MockProxyConfigService* config_service = |
1425 new MockProxyConfigService("http://foopy/proxy.pac"); | 1435 new MockProxyConfigService("http://foopy/proxy.pac"); |
1426 | 1436 |
1427 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 1437 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
1428 | 1438 |
1429 scoped_refptr<ProxyService> service( | 1439 scoped_refptr<ProxyService> service( |
1430 new ProxyService(config_service, resolver, NULL)); | 1440 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
1431 | 1441 |
1432 GURL url("http://www.google.com/"); | 1442 GURL url("http://www.google.com/"); |
1433 | 1443 |
1434 ProxyInfo info; | 1444 ProxyInfo info; |
1435 TestCompletionCallback callback; | 1445 TestCompletionCallback callback; |
1436 int rv = service->ResolveProxy(url, &info, &callback, NULL, NULL); | 1446 int rv = service->ResolveProxy(url, &info, &callback, NULL, NULL); |
1437 EXPECT_EQ(ERR_IO_PENDING, rv); | 1447 EXPECT_EQ(ERR_IO_PENDING, rv); |
1438 | 1448 |
1439 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 1449 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
1440 resolver->pending_set_pac_script_request()->pac_url()); | 1450 resolver->pending_set_pac_script_request()->pac_url()); |
1441 | 1451 |
1442 // Delete the ProxyService. | 1452 // Delete the ProxyService. |
1443 service = NULL; | 1453 service = NULL; |
1444 } | 1454 } |
1445 | 1455 |
1446 TEST(ProxyServiceTest, ResetProxyConfigService) { | 1456 TEST(ProxyServiceTest, ResetProxyConfigService) { |
1447 ProxyConfig config1; | 1457 ProxyConfig config1; |
1448 config1.proxy_rules().ParseFromString("foopy1:8080"); | 1458 config1.proxy_rules().ParseFromString("foopy1:8080"); |
1449 config1.set_auto_detect(false); | 1459 config1.set_auto_detect(false); |
1450 scoped_refptr<ProxyService> service(new ProxyService( | 1460 scoped_refptr<ProxyService> service(new ProxyService( |
1451 new MockProxyConfigService(config1), | 1461 new MockProxyConfigService(config1), |
1452 new MockAsyncProxyResolverExpectsBytes, | 1462 new MockAsyncProxyResolverExpectsBytes, |
1453 NULL)); | 1463 NULL, BoundNetLog())); |
1454 | 1464 |
1455 ProxyInfo info; | 1465 ProxyInfo info; |
1456 TestCompletionCallback callback1; | 1466 TestCompletionCallback callback1; |
1457 int rv = service->ResolveProxy( | 1467 int rv = service->ResolveProxy( |
1458 GURL("http://request1"), &info, &callback1, NULL, NULL); | 1468 GURL("http://request1"), &info, &callback1, NULL, NULL); |
1459 EXPECT_EQ(OK, rv); | 1469 EXPECT_EQ(OK, rv); |
1460 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 1470 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
1461 | 1471 |
1462 ProxyConfig config2; | 1472 ProxyConfig config2; |
1463 config2.proxy_rules().ParseFromString("foopy2:8080"); | 1473 config2.proxy_rules().ParseFromString("foopy2:8080"); |
(...skipping 11 matching lines...) Expand all Loading... |
1475 // Regression test for http://crbug.com/18526 -- the configuration was being | 1485 // Regression test for http://crbug.com/18526 -- the configuration was being |
1476 // mutated to cancel out the automatic settings, which meant UpdateConfig() | 1486 // mutated to cancel out the automatic settings, which meant UpdateConfig() |
1477 // thought it had received a new configuration. | 1487 // thought it had received a new configuration. |
1478 TEST(ProxyServiceTest, UpdateConfigAfterFailedAutodetect) { | 1488 TEST(ProxyServiceTest, UpdateConfigAfterFailedAutodetect) { |
1479 ProxyConfig config; | 1489 ProxyConfig config; |
1480 config.set_auto_detect(true); | 1490 config.set_auto_detect(true); |
1481 | 1491 |
1482 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1492 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
1483 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 1493 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
1484 scoped_refptr<ProxyService> service( | 1494 scoped_refptr<ProxyService> service( |
1485 new ProxyService(config_service, resolver, NULL)); | 1495 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
1486 | 1496 |
1487 // Start 1 requests. | 1497 // Start 1 requests. |
1488 | 1498 |
1489 ProxyInfo info1; | 1499 ProxyInfo info1; |
1490 TestCompletionCallback callback1; | 1500 TestCompletionCallback callback1; |
1491 int rv = service->ResolveProxy( | 1501 int rv = service->ResolveProxy( |
1492 GURL("http://www.google.com"), &info1, &callback1, NULL, NULL); | 1502 GURL("http://www.google.com"), &info1, &callback1, NULL, NULL); |
1493 EXPECT_EQ(ERR_IO_PENDING, rv); | 1503 EXPECT_EQ(ERR_IO_PENDING, rv); |
1494 | 1504 |
1495 // Check that nothing has been sent to the proxy resolver yet. | 1505 // Check that nothing has been sent to the proxy resolver yet. |
(...skipping 25 matching lines...) Expand all Loading... |
1521 | 1531 |
1522 // Test that when going from a configuration that required PAC to one | 1532 // Test that when going from a configuration that required PAC to one |
1523 // that does NOT, we unset the variable |should_use_proxy_resolver_|. | 1533 // that does NOT, we unset the variable |should_use_proxy_resolver_|. |
1524 TEST(ProxyServiceTest, UpdateConfigFromPACToDirect) { | 1534 TEST(ProxyServiceTest, UpdateConfigFromPACToDirect) { |
1525 ProxyConfig config; | 1535 ProxyConfig config; |
1526 config.set_auto_detect(true); | 1536 config.set_auto_detect(true); |
1527 | 1537 |
1528 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1538 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
1529 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 1539 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
1530 scoped_refptr<ProxyService> service( | 1540 scoped_refptr<ProxyService> service( |
1531 new ProxyService(config_service, resolver, NULL)); | 1541 new ProxyService(config_service, resolver, NULL, BoundNetLog())); |
1532 | 1542 |
1533 // Start 1 request. | 1543 // Start 1 request. |
1534 | 1544 |
1535 ProxyInfo info1; | 1545 ProxyInfo info1; |
1536 TestCompletionCallback callback1; | 1546 TestCompletionCallback callback1; |
1537 int rv = service->ResolveProxy( | 1547 int rv = service->ResolveProxy( |
1538 GURL("http://www.google.com"), &info1, &callback1, NULL, NULL); | 1548 GURL("http://www.google.com"), &info1, &callback1, NULL, NULL); |
1539 EXPECT_EQ(ERR_IO_PENDING, rv); | 1549 EXPECT_EQ(ERR_IO_PENDING, rv); |
1540 | 1550 |
1541 // Check that nothing has been sent to the proxy resolver yet. | 1551 // Check that nothing has been sent to the proxy resolver yet. |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1576 TEST(ProxyServiceTest, NetworkChangeTriggersPacRefetch) { | 1586 TEST(ProxyServiceTest, NetworkChangeTriggersPacRefetch) { |
1577 MockProxyConfigService* config_service = | 1587 MockProxyConfigService* config_service = |
1578 new MockProxyConfigService("http://foopy/proxy.pac"); | 1588 new MockProxyConfigService("http://foopy/proxy.pac"); |
1579 | 1589 |
1580 MockAsyncProxyResolverExpectsBytes* resolver = | 1590 MockAsyncProxyResolverExpectsBytes* resolver = |
1581 new MockAsyncProxyResolverExpectsBytes; | 1591 new MockAsyncProxyResolverExpectsBytes; |
1582 | 1592 |
1583 MockNetworkChangeNotifier network_change_notifier; | 1593 MockNetworkChangeNotifier network_change_notifier; |
1584 | 1594 |
1585 scoped_refptr<ProxyService> service( | 1595 scoped_refptr<ProxyService> service( |
1586 new ProxyService(config_service, resolver, &network_change_notifier)); | 1596 new ProxyService(config_service, resolver, &network_change_notifier, |
| 1597 BoundNetLog())); |
1587 | 1598 |
1588 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1599 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
1589 service->SetProxyScriptFetcher(fetcher); | 1600 service->SetProxyScriptFetcher(fetcher); |
1590 | 1601 |
1591 // Start 1 request. | 1602 // Start 1 request. |
1592 | 1603 |
1593 ProxyInfo info1; | 1604 ProxyInfo info1; |
1594 TestCompletionCallback callback1; | 1605 TestCompletionCallback callback1; |
1595 int rv = service->ResolveProxy( | 1606 int rv = service->ResolveProxy( |
1596 GURL("http://request1"), &info1, &callback1, NULL, NULL); | 1607 GURL("http://request1"), &info1, &callback1, NULL, NULL); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1660 // Complete the pending second request. | 1671 // Complete the pending second request. |
1661 resolver->pending_requests()[0]->results()->UseNamedProxy("request2:80"); | 1672 resolver->pending_requests()[0]->results()->UseNamedProxy("request2:80"); |
1662 resolver->pending_requests()[0]->CompleteNow(OK); | 1673 resolver->pending_requests()[0]->CompleteNow(OK); |
1663 | 1674 |
1664 // Wait for completion callback, and verify that the request ran as expected. | 1675 // Wait for completion callback, and verify that the request ran as expected. |
1665 EXPECT_EQ(OK, callback2.WaitForResult()); | 1676 EXPECT_EQ(OK, callback2.WaitForResult()); |
1666 EXPECT_EQ("request2:80", info2.proxy_server().ToURI()); | 1677 EXPECT_EQ("request2:80", info2.proxy_server().ToURI()); |
1667 } | 1678 } |
1668 | 1679 |
1669 } // namespace net | 1680 } // namespace net |
OLD | NEW |