| 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 |