| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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" |
| 11 #include "base/string_util.h" | 11 #include "base/string_util.h" |
| 12 #include "googleurl/src/gurl.h" | 12 #include "googleurl/src/gurl.h" |
| 13 #include "net/base/net_log.h" | 13 #include "net/base/net_log.h" |
| 14 #include "net/base/net_log_unittest.h" | 14 #include "net/base/net_log_unittest.h" |
| 15 #include "net/base/mock_network_change_notifier.h" | |
| 16 #include "net/base/net_errors.h" | 15 #include "net/base/net_errors.h" |
| 17 #include "net/base/test_completion_callback.h" | 16 #include "net/base/test_completion_callback.h" |
| 18 #include "net/proxy/mock_proxy_resolver.h" | 17 #include "net/proxy/mock_proxy_resolver.h" |
| 19 #include "net/proxy/proxy_config_service.h" | 18 #include "net/proxy/proxy_config_service.h" |
| 20 #include "net/proxy/proxy_resolver.h" | 19 #include "net/proxy/proxy_resolver.h" |
| 21 #include "net/proxy/proxy_script_fetcher.h" | 20 #include "net/proxy/proxy_script_fetcher.h" |
| 22 #include "testing/gtest/include/gtest/gtest.h" | 21 #include "testing/gtest/include/gtest/gtest.h" |
| 23 | 22 |
| 24 // TODO(eroman): Write a test which exercises | 23 // TODO(eroman): Write a test which exercises |
| 25 // ProxyService::SuspendAllPendingRequests(). | 24 // ProxyService::SuspendAllPendingRequests(). |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 | 84 |
| 86 private: | 85 private: |
| 87 GURL pending_request_url_; | 86 GURL pending_request_url_; |
| 88 CompletionCallback* pending_request_callback_; | 87 CompletionCallback* pending_request_callback_; |
| 89 std::string* pending_request_bytes_; | 88 std::string* pending_request_bytes_; |
| 90 }; | 89 }; |
| 91 | 90 |
| 92 TEST(ProxyServiceTest, Direct) { | 91 TEST(ProxyServiceTest, Direct) { |
| 93 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 92 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
| 94 scoped_refptr<ProxyService> service( | 93 scoped_refptr<ProxyService> service( |
| 95 new ProxyService(new MockProxyConfigService, resolver, NULL, NULL)); | 94 new ProxyService(new MockProxyConfigService, resolver, NULL)); |
| 96 | 95 |
| 97 GURL url("http://www.google.com/"); | 96 GURL url("http://www.google.com/"); |
| 98 | 97 |
| 99 ProxyInfo info; | 98 ProxyInfo info; |
| 100 TestCompletionCallback callback; | 99 TestCompletionCallback callback; |
| 101 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); | 100 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); |
| 102 int rv = service->ResolveProxy(url, &info, &callback, NULL, log.bound()); | 101 int rv = service->ResolveProxy(url, &info, &callback, NULL, log.bound()); |
| 103 EXPECT_EQ(OK, rv); | 102 EXPECT_EQ(OK, rv); |
| 104 EXPECT_TRUE(resolver->pending_requests().empty()); | 103 EXPECT_TRUE(resolver->pending_requests().empty()); |
| 105 | 104 |
| 106 EXPECT_TRUE(info.is_direct()); | 105 EXPECT_TRUE(info.is_direct()); |
| 107 | 106 |
| 108 // Check the NetLog was filled correctly. | 107 // Check the NetLog was filled correctly. |
| 109 EXPECT_EQ(5u, log.entries().size()); | 108 EXPECT_EQ(5u, log.entries().size()); |
| 110 EXPECT_TRUE(LogContainsBeginEvent( | 109 EXPECT_TRUE(LogContainsBeginEvent( |
| 111 log.entries(), 0, NetLog::TYPE_PROXY_SERVICE)); | 110 log.entries(), 0, NetLog::TYPE_PROXY_SERVICE)); |
| 112 EXPECT_TRUE(LogContainsEndEvent( | 111 EXPECT_TRUE(LogContainsEndEvent( |
| 113 log.entries(), 4, NetLog::TYPE_PROXY_SERVICE)); | 112 log.entries(), 4, NetLog::TYPE_PROXY_SERVICE)); |
| 114 } | 113 } |
| 115 | 114 |
| 116 TEST(ProxyServiceTest, PAC) { | 115 TEST(ProxyServiceTest, PAC) { |
| 117 MockProxyConfigService* config_service = | 116 MockProxyConfigService* config_service = |
| 118 new MockProxyConfigService("http://foopy/proxy.pac"); | 117 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 119 | 118 |
| 120 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 119 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
| 121 | 120 |
| 122 scoped_refptr<ProxyService> service( | 121 scoped_refptr<ProxyService> service( |
| 123 new ProxyService(config_service, resolver, NULL, NULL)); | 122 new ProxyService(config_service, resolver, NULL)); |
| 124 | 123 |
| 125 GURL url("http://www.google.com/"); | 124 GURL url("http://www.google.com/"); |
| 126 | 125 |
| 127 ProxyInfo info; | 126 ProxyInfo info; |
| 128 TestCompletionCallback callback; | 127 TestCompletionCallback callback; |
| 129 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); | 128 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); |
| 130 | 129 |
| 131 int rv = service->ResolveProxy(url, &info, &callback, NULL, log.bound()); | 130 int rv = service->ResolveProxy(url, &info, &callback, NULL, log.bound()); |
| 132 EXPECT_EQ(ERR_IO_PENDING, rv); | 131 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 133 | 132 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 160 | 159 |
| 161 // Test that the proxy resolver does not see the URL's username/password | 160 // Test that the proxy resolver does not see the URL's username/password |
| 162 // or its reference section. | 161 // or its reference section. |
| 163 TEST(ProxyServiceTest, PAC_NoIdentityOrHash) { | 162 TEST(ProxyServiceTest, PAC_NoIdentityOrHash) { |
| 164 MockProxyConfigService* config_service = | 163 MockProxyConfigService* config_service = |
| 165 new MockProxyConfigService("http://foopy/proxy.pac"); | 164 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 166 | 165 |
| 167 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 166 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
| 168 | 167 |
| 169 scoped_refptr<ProxyService> service( | 168 scoped_refptr<ProxyService> service( |
| 170 new ProxyService(config_service, resolver, NULL, NULL)); | 169 new ProxyService(config_service, resolver, NULL)); |
| 171 | 170 |
| 172 GURL url("http://username:password@www.google.com/?ref#hash#hash"); | 171 GURL url("http://username:password@www.google.com/?ref#hash#hash"); |
| 173 | 172 |
| 174 ProxyInfo info; | 173 ProxyInfo info; |
| 175 TestCompletionCallback callback; | 174 TestCompletionCallback callback; |
| 176 int rv = service->ResolveProxy(url, &info, &callback, NULL, BoundNetLog()); | 175 int rv = service->ResolveProxy(url, &info, &callback, NULL, BoundNetLog()); |
| 177 EXPECT_EQ(ERR_IO_PENDING, rv); | 176 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 178 | 177 |
| 179 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 178 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
| 180 resolver->pending_set_pac_script_request()->pac_url()); | 179 resolver->pending_set_pac_script_request()->pac_url()); |
| 181 resolver->pending_set_pac_script_request()->CompleteNow(OK); | 180 resolver->pending_set_pac_script_request()->CompleteNow(OK); |
| 182 | 181 |
| 183 ASSERT_EQ(1u, resolver->pending_requests().size()); | 182 ASSERT_EQ(1u, resolver->pending_requests().size()); |
| 184 // The URL should have been simplified, stripping the username/password/hash. | 183 // The URL should have been simplified, stripping the username/password/hash. |
| 185 EXPECT_EQ(GURL("http://www.google.com/?ref"), | 184 EXPECT_EQ(GURL("http://www.google.com/?ref"), |
| 186 resolver->pending_requests()[0]->url()); | 185 resolver->pending_requests()[0]->url()); |
| 187 | 186 |
| 188 // We end here without ever completing the request -- destruction of | 187 // We end here without ever completing the request -- destruction of |
| 189 // ProxyService will cancel the outstanding request. | 188 // ProxyService will cancel the outstanding request. |
| 190 } | 189 } |
| 191 | 190 |
| 192 TEST(ProxyServiceTest, PAC_FailoverWithoutDirect) { | 191 TEST(ProxyServiceTest, PAC_FailoverWithoutDirect) { |
| 193 MockProxyConfigService* config_service = | 192 MockProxyConfigService* config_service = |
| 194 new MockProxyConfigService("http://foopy/proxy.pac"); | 193 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 195 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 194 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
| 196 | 195 |
| 197 scoped_refptr<ProxyService> service( | 196 scoped_refptr<ProxyService> service( |
| 198 new ProxyService(config_service, resolver, NULL, NULL)); | 197 new ProxyService(config_service, resolver, NULL)); |
| 199 | 198 |
| 200 GURL url("http://www.google.com/"); | 199 GURL url("http://www.google.com/"); |
| 201 | 200 |
| 202 ProxyInfo info; | 201 ProxyInfo info; |
| 203 TestCompletionCallback callback1; | 202 TestCompletionCallback callback1; |
| 204 int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); | 203 int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); |
| 205 EXPECT_EQ(ERR_IO_PENDING, rv); | 204 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 206 | 205 |
| 207 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 206 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
| 208 resolver->pending_set_pac_script_request()->pac_url()); | 207 resolver->pending_set_pac_script_request()->pac_url()); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 // then foobar:20, and then give up and error. | 245 // then foobar:20, and then give up and error. |
| 247 // | 246 // |
| 248 // The important check of this test is to make sure that DIRECT is not somehow | 247 // The important check of this test is to make sure that DIRECT is not somehow |
| 249 // cached as being a bad proxy. | 248 // cached as being a bad proxy. |
| 250 TEST(ProxyServiceTest, PAC_FailoverAfterDirect) { | 249 TEST(ProxyServiceTest, PAC_FailoverAfterDirect) { |
| 251 MockProxyConfigService* config_service = | 250 MockProxyConfigService* config_service = |
| 252 new MockProxyConfigService("http://foopy/proxy.pac"); | 251 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 253 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 252 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
| 254 | 253 |
| 255 scoped_refptr<ProxyService> service( | 254 scoped_refptr<ProxyService> service( |
| 256 new ProxyService(config_service, resolver, NULL, NULL)); | 255 new ProxyService(config_service, resolver, NULL)); |
| 257 | 256 |
| 258 GURL url("http://www.google.com/"); | 257 GURL url("http://www.google.com/"); |
| 259 | 258 |
| 260 ProxyInfo info; | 259 ProxyInfo info; |
| 261 TestCompletionCallback callback1; | 260 TestCompletionCallback callback1; |
| 262 int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); | 261 int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); |
| 263 EXPECT_EQ(ERR_IO_PENDING, rv); | 262 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 264 | 263 |
| 265 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 264 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
| 266 resolver->pending_set_pac_script_request()->pac_url()); | 265 resolver->pending_set_pac_script_request()->pac_url()); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 312 // Test what happens when the ProxyResolver fails. The download and setting | 311 // Test what happens when the ProxyResolver fails. The download and setting |
| 313 // of the PAC script have already succeeded, so this corresponds with a | 312 // of the PAC script have already succeeded, so this corresponds with a |
| 314 // javascript runtime error while calling FindProxyForURL(). | 313 // javascript runtime error while calling FindProxyForURL(). |
| 315 | 314 |
| 316 MockProxyConfigService* config_service = | 315 MockProxyConfigService* config_service = |
| 317 new MockProxyConfigService("http://foopy/proxy.pac"); | 316 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 318 | 317 |
| 319 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 318 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
| 320 | 319 |
| 321 scoped_refptr<ProxyService> service( | 320 scoped_refptr<ProxyService> service( |
| 322 new ProxyService(config_service, resolver, NULL, NULL)); | 321 new ProxyService(config_service, resolver, NULL)); |
| 323 | 322 |
| 324 // Start first resolve request. | 323 // Start first resolve request. |
| 325 GURL url("http://www.google.com/"); | 324 GURL url("http://www.google.com/"); |
| 326 ProxyInfo info; | 325 ProxyInfo info; |
| 327 TestCompletionCallback callback1; | 326 TestCompletionCallback callback1; |
| 328 int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); | 327 int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); |
| 329 EXPECT_EQ(ERR_IO_PENDING, rv); | 328 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 330 | 329 |
| 331 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 330 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
| 332 resolver->pending_set_pac_script_request()->pac_url()); | 331 resolver->pending_set_pac_script_request()->pac_url()); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 365 TEST(ProxyServiceTest, ProxyFallback) { | 364 TEST(ProxyServiceTest, ProxyFallback) { |
| 366 // Test what happens when we specify multiple proxy servers and some of them | 365 // Test what happens when we specify multiple proxy servers and some of them |
| 367 // are bad. | 366 // are bad. |
| 368 | 367 |
| 369 MockProxyConfigService* config_service = | 368 MockProxyConfigService* config_service = |
| 370 new MockProxyConfigService("http://foopy/proxy.pac"); | 369 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 371 | 370 |
| 372 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 371 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
| 373 | 372 |
| 374 scoped_refptr<ProxyService> service( | 373 scoped_refptr<ProxyService> service( |
| 375 new ProxyService(config_service, resolver, NULL, NULL)); | 374 new ProxyService(config_service, resolver, NULL)); |
| 376 | 375 |
| 377 GURL url("http://www.google.com/"); | 376 GURL url("http://www.google.com/"); |
| 378 | 377 |
| 379 // Get the proxy information. | 378 // Get the proxy information. |
| 380 ProxyInfo info; | 379 ProxyInfo info; |
| 381 TestCompletionCallback callback1; | 380 TestCompletionCallback callback1; |
| 382 int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); | 381 int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); |
| 383 EXPECT_EQ(ERR_IO_PENDING, rv); | 382 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 384 | 383 |
| 385 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 384 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 455 | 454 |
| 456 // This test is similar to ProxyFallback, but this time we have an explicit | 455 // This test is similar to ProxyFallback, but this time we have an explicit |
| 457 // fallback choice to DIRECT. | 456 // fallback choice to DIRECT. |
| 458 TEST(ProxyServiceTest, ProxyFallbackToDirect) { | 457 TEST(ProxyServiceTest, ProxyFallbackToDirect) { |
| 459 MockProxyConfigService* config_service = | 458 MockProxyConfigService* config_service = |
| 460 new MockProxyConfigService("http://foopy/proxy.pac"); | 459 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 461 | 460 |
| 462 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 461 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
| 463 | 462 |
| 464 scoped_refptr<ProxyService> service( | 463 scoped_refptr<ProxyService> service( |
| 465 new ProxyService(config_service, resolver, NULL, NULL)); | 464 new ProxyService(config_service, resolver, NULL)); |
| 466 | 465 |
| 467 GURL url("http://www.google.com/"); | 466 GURL url("http://www.google.com/"); |
| 468 | 467 |
| 469 // Get the proxy information. | 468 // Get the proxy information. |
| 470 ProxyInfo info; | 469 ProxyInfo info; |
| 471 TestCompletionCallback callback1; | 470 TestCompletionCallback callback1; |
| 472 int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); | 471 int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); |
| 473 EXPECT_EQ(ERR_IO_PENDING, rv); | 472 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 474 | 473 |
| 475 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 474 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 518 | 517 |
| 519 TEST(ProxyServiceTest, ProxyFallback_NewSettings) { | 518 TEST(ProxyServiceTest, ProxyFallback_NewSettings) { |
| 520 // Test proxy failover when new settings are available. | 519 // Test proxy failover when new settings are available. |
| 521 | 520 |
| 522 MockProxyConfigService* config_service = | 521 MockProxyConfigService* config_service = |
| 523 new MockProxyConfigService("http://foopy/proxy.pac"); | 522 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 524 | 523 |
| 525 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 524 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
| 526 | 525 |
| 527 scoped_refptr<ProxyService> service( | 526 scoped_refptr<ProxyService> service( |
| 528 new ProxyService(config_service, resolver, NULL, NULL)); | 527 new ProxyService(config_service, resolver, NULL)); |
| 529 | 528 |
| 530 GURL url("http://www.google.com/"); | 529 GURL url("http://www.google.com/"); |
| 531 | 530 |
| 532 // Get the proxy information. | 531 // Get the proxy information. |
| 533 ProxyInfo info; | 532 ProxyInfo info; |
| 534 TestCompletionCallback callback1; | 533 TestCompletionCallback callback1; |
| 535 int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); | 534 int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); |
| 536 EXPECT_EQ(ERR_IO_PENDING, rv); | 535 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 537 | 536 |
| 538 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 537 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 610 | 609 |
| 611 TEST(ProxyServiceTest, ProxyFallback_BadConfig) { | 610 TEST(ProxyServiceTest, ProxyFallback_BadConfig) { |
| 612 // Test proxy failover when the configuration is bad. | 611 // Test proxy failover when the configuration is bad. |
| 613 | 612 |
| 614 MockProxyConfigService* config_service = | 613 MockProxyConfigService* config_service = |
| 615 new MockProxyConfigService("http://foopy/proxy.pac"); | 614 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 616 | 615 |
| 617 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 616 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
| 618 | 617 |
| 619 scoped_refptr<ProxyService> service( | 618 scoped_refptr<ProxyService> service( |
| 620 new ProxyService(config_service, resolver, NULL, NULL)); | 619 new ProxyService(config_service, resolver, NULL)); |
| 621 | 620 |
| 622 GURL url("http://www.google.com/"); | 621 GURL url("http://www.google.com/"); |
| 623 | 622 |
| 624 // Get the proxy information. | 623 // Get the proxy information. |
| 625 ProxyInfo info; | 624 ProxyInfo info; |
| 626 TestCompletionCallback callback1; | 625 TestCompletionCallback callback1; |
| 627 int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); | 626 int rv = service->ResolveProxy(url, &info, &callback1, NULL, BoundNetLog()); |
| 628 EXPECT_EQ(ERR_IO_PENDING, rv); | 627 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 629 | 628 |
| 630 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 629 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 697 // Test that the proxy bypass rules are consulted. | 696 // Test that the proxy bypass rules are consulted. |
| 698 | 697 |
| 699 TestCompletionCallback callback[2]; | 698 TestCompletionCallback callback[2]; |
| 700 ProxyInfo info[2]; | 699 ProxyInfo info[2]; |
| 701 ProxyConfig config; | 700 ProxyConfig config; |
| 702 config.proxy_rules().ParseFromString("foopy1:8080;foopy2:9090"); | 701 config.proxy_rules().ParseFromString("foopy1:8080;foopy2:9090"); |
| 703 config.set_auto_detect(false); | 702 config.set_auto_detect(false); |
| 704 config.proxy_rules().bypass_rules.ParseFromString("*.org"); | 703 config.proxy_rules().bypass_rules.ParseFromString("*.org"); |
| 705 | 704 |
| 706 scoped_refptr<ProxyService> service(new ProxyService( | 705 scoped_refptr<ProxyService> service(new ProxyService( |
| 707 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, | 706 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); |
| 708 NULL)); | |
| 709 | 707 |
| 710 int rv; | 708 int rv; |
| 711 GURL url1("http://www.webkit.org"); | 709 GURL url1("http://www.webkit.org"); |
| 712 GURL url2("http://www.webkit.com"); | 710 GURL url2("http://www.webkit.com"); |
| 713 | 711 |
| 714 // Request for a .org domain should bypass proxy. | 712 // Request for a .org domain should bypass proxy. |
| 715 rv = service->ResolveProxy(url1, &info[0], &callback[0], NULL, BoundNetLog()); | 713 rv = service->ResolveProxy(url1, &info[0], &callback[0], NULL, BoundNetLog()); |
| 716 EXPECT_EQ(OK, rv); | 714 EXPECT_EQ(OK, rv); |
| 717 EXPECT_TRUE(info[0].is_direct()); | 715 EXPECT_TRUE(info[0].is_direct()); |
| 718 | 716 |
| 719 // Request for a .com domain hits the proxy. | 717 // Request for a .com domain hits the proxy. |
| 720 rv = service->ResolveProxy(url2, &info[1], &callback[1], NULL, BoundNetLog()); | 718 rv = service->ResolveProxy(url2, &info[1], &callback[1], NULL, BoundNetLog()); |
| 721 EXPECT_EQ(OK, rv); | 719 EXPECT_EQ(OK, rv); |
| 722 EXPECT_EQ("foopy1:8080", info[1].proxy_server().ToURI()); | 720 EXPECT_EQ("foopy1:8080", info[1].proxy_server().ToURI()); |
| 723 } | 721 } |
| 724 | 722 |
| 725 | 723 |
| 726 TEST(ProxyServiceTest, PerProtocolProxyTests) { | 724 TEST(ProxyServiceTest, PerProtocolProxyTests) { |
| 727 ProxyConfig config; | 725 ProxyConfig config; |
| 728 config.proxy_rules().ParseFromString("http=foopy1:8080;https=foopy2:8080"); | 726 config.proxy_rules().ParseFromString("http=foopy1:8080;https=foopy2:8080"); |
| 729 config.set_auto_detect(false); | 727 config.set_auto_detect(false); |
| 730 { | 728 { |
| 731 scoped_refptr<ProxyService> service(new ProxyService( | 729 scoped_refptr<ProxyService> service(new ProxyService( |
| 732 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, | 730 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); |
| 733 NULL)); | |
| 734 GURL test_url("http://www.msn.com"); | 731 GURL test_url("http://www.msn.com"); |
| 735 ProxyInfo info; | 732 ProxyInfo info; |
| 736 TestCompletionCallback callback; | 733 TestCompletionCallback callback; |
| 737 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, | 734 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, |
| 738 BoundNetLog()); | 735 BoundNetLog()); |
| 739 EXPECT_EQ(OK, rv); | 736 EXPECT_EQ(OK, rv); |
| 740 EXPECT_FALSE(info.is_direct()); | 737 EXPECT_FALSE(info.is_direct()); |
| 741 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 738 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
| 742 } | 739 } |
| 743 { | 740 { |
| 744 scoped_refptr<ProxyService> service(new ProxyService( | 741 scoped_refptr<ProxyService> service(new ProxyService( |
| 745 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, | 742 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); |
| 746 NULL)); | |
| 747 GURL test_url("ftp://ftp.google.com"); | 743 GURL test_url("ftp://ftp.google.com"); |
| 748 ProxyInfo info; | 744 ProxyInfo info; |
| 749 TestCompletionCallback callback; | 745 TestCompletionCallback callback; |
| 750 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, | 746 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, |
| 751 BoundNetLog()); | 747 BoundNetLog()); |
| 752 EXPECT_EQ(OK, rv); | 748 EXPECT_EQ(OK, rv); |
| 753 EXPECT_TRUE(info.is_direct()); | 749 EXPECT_TRUE(info.is_direct()); |
| 754 EXPECT_EQ("direct://", info.proxy_server().ToURI()); | 750 EXPECT_EQ("direct://", info.proxy_server().ToURI()); |
| 755 } | 751 } |
| 756 { | 752 { |
| 757 scoped_refptr<ProxyService> service(new ProxyService( | 753 scoped_refptr<ProxyService> service(new ProxyService( |
| 758 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, | 754 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); |
| 759 NULL)); | |
| 760 GURL test_url("https://webbranch.techcu.com"); | 755 GURL test_url("https://webbranch.techcu.com"); |
| 761 ProxyInfo info; | 756 ProxyInfo info; |
| 762 TestCompletionCallback callback; | 757 TestCompletionCallback callback; |
| 763 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, | 758 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, |
| 764 BoundNetLog()); | 759 BoundNetLog()); |
| 765 EXPECT_EQ(OK, rv); | 760 EXPECT_EQ(OK, rv); |
| 766 EXPECT_FALSE(info.is_direct()); | 761 EXPECT_FALSE(info.is_direct()); |
| 767 EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); | 762 EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); |
| 768 } | 763 } |
| 769 { | 764 { |
| 770 config.proxy_rules().ParseFromString("foopy1:8080"); | 765 config.proxy_rules().ParseFromString("foopy1:8080"); |
| 771 scoped_refptr<ProxyService> service(new ProxyService( | 766 scoped_refptr<ProxyService> service(new ProxyService( |
| 772 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, | 767 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); |
| 773 NULL)); | |
| 774 GURL test_url("http://www.microsoft.com"); | 768 GURL test_url("http://www.microsoft.com"); |
| 775 ProxyInfo info; | 769 ProxyInfo info; |
| 776 TestCompletionCallback callback; | 770 TestCompletionCallback callback; |
| 777 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, | 771 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, |
| 778 BoundNetLog()); | 772 BoundNetLog()); |
| 779 EXPECT_EQ(OK, rv); | 773 EXPECT_EQ(OK, rv); |
| 780 EXPECT_FALSE(info.is_direct()); | 774 EXPECT_FALSE(info.is_direct()); |
| 781 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 775 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
| 782 } | 776 } |
| 783 } | 777 } |
| 784 | 778 |
| 785 // If only HTTP and a SOCKS proxy are specified, check if ftp/https queries | 779 // If only HTTP and a SOCKS proxy are specified, check if ftp/https queries |
| 786 // fall back to the SOCKS proxy. | 780 // fall back to the SOCKS proxy. |
| 787 TEST(ProxyServiceTest, DefaultProxyFallbackToSOCKS) { | 781 TEST(ProxyServiceTest, DefaultProxyFallbackToSOCKS) { |
| 788 ProxyConfig config; | 782 ProxyConfig config; |
| 789 config.proxy_rules().ParseFromString("http=foopy1:8080;socks=foopy2:1080"); | 783 config.proxy_rules().ParseFromString("http=foopy1:8080;socks=foopy2:1080"); |
| 790 config.set_auto_detect(false); | 784 config.set_auto_detect(false); |
| 791 EXPECT_EQ(ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME, | 785 EXPECT_EQ(ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME, |
| 792 config.proxy_rules().type); | 786 config.proxy_rules().type); |
| 793 | 787 |
| 794 { | 788 { |
| 795 scoped_refptr<ProxyService> service(new ProxyService( | 789 scoped_refptr<ProxyService> service(new ProxyService( |
| 796 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, | 790 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); |
| 797 NULL)); | |
| 798 GURL test_url("http://www.msn.com"); | 791 GURL test_url("http://www.msn.com"); |
| 799 ProxyInfo info; | 792 ProxyInfo info; |
| 800 TestCompletionCallback callback; | 793 TestCompletionCallback callback; |
| 801 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, | 794 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, |
| 802 BoundNetLog()); | 795 BoundNetLog()); |
| 803 EXPECT_EQ(OK, rv); | 796 EXPECT_EQ(OK, rv); |
| 804 EXPECT_FALSE(info.is_direct()); | 797 EXPECT_FALSE(info.is_direct()); |
| 805 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 798 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
| 806 } | 799 } |
| 807 { | 800 { |
| 808 scoped_refptr<ProxyService> service(new ProxyService( | 801 scoped_refptr<ProxyService> service(new ProxyService( |
| 809 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, | 802 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); |
| 810 NULL)); | |
| 811 GURL test_url("ftp://ftp.google.com"); | 803 GURL test_url("ftp://ftp.google.com"); |
| 812 ProxyInfo info; | 804 ProxyInfo info; |
| 813 TestCompletionCallback callback; | 805 TestCompletionCallback callback; |
| 814 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, | 806 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, |
| 815 BoundNetLog()); | 807 BoundNetLog()); |
| 816 EXPECT_EQ(OK, rv); | 808 EXPECT_EQ(OK, rv); |
| 817 EXPECT_FALSE(info.is_direct()); | 809 EXPECT_FALSE(info.is_direct()); |
| 818 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); | 810 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); |
| 819 } | 811 } |
| 820 { | 812 { |
| 821 scoped_refptr<ProxyService> service(new ProxyService( | 813 scoped_refptr<ProxyService> service(new ProxyService( |
| 822 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, | 814 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); |
| 823 NULL)); | |
| 824 GURL test_url("https://webbranch.techcu.com"); | 815 GURL test_url("https://webbranch.techcu.com"); |
| 825 ProxyInfo info; | 816 ProxyInfo info; |
| 826 TestCompletionCallback callback; | 817 TestCompletionCallback callback; |
| 827 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, | 818 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, |
| 828 BoundNetLog()); | 819 BoundNetLog()); |
| 829 EXPECT_EQ(OK, rv); | 820 EXPECT_EQ(OK, rv); |
| 830 EXPECT_FALSE(info.is_direct()); | 821 EXPECT_FALSE(info.is_direct()); |
| 831 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); | 822 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); |
| 832 } | 823 } |
| 833 { | 824 { |
| 834 scoped_refptr<ProxyService> service(new ProxyService( | 825 scoped_refptr<ProxyService> service(new ProxyService( |
| 835 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL, | 826 new MockProxyConfigService(config), new MockAsyncProxyResolver, NULL)); |
| 836 NULL)); | |
| 837 GURL test_url("unknown://www.microsoft.com"); | 827 GURL test_url("unknown://www.microsoft.com"); |
| 838 ProxyInfo info; | 828 ProxyInfo info; |
| 839 TestCompletionCallback callback; | 829 TestCompletionCallback callback; |
| 840 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, | 830 int rv = service->ResolveProxy(test_url, &info, &callback, NULL, |
| 841 BoundNetLog()); | 831 BoundNetLog()); |
| 842 EXPECT_EQ(OK, rv); | 832 EXPECT_EQ(OK, rv); |
| 843 EXPECT_FALSE(info.is_direct()); | 833 EXPECT_FALSE(info.is_direct()); |
| 844 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); | 834 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); |
| 845 } | 835 } |
| 846 } | 836 } |
| 847 | 837 |
| 848 // Test cancellation of an in-progress request. | 838 // Test cancellation of an in-progress request. |
| 849 TEST(ProxyServiceTest, CancelInProgressRequest) { | 839 TEST(ProxyServiceTest, CancelInProgressRequest) { |
| 850 MockProxyConfigService* config_service = | 840 MockProxyConfigService* config_service = |
| 851 new MockProxyConfigService("http://foopy/proxy.pac"); | 841 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 852 | 842 |
| 853 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 843 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
| 854 | 844 |
| 855 scoped_refptr<ProxyService> service( | 845 scoped_refptr<ProxyService> service( |
| 856 new ProxyService(config_service, resolver, NULL, NULL)); | 846 new ProxyService(config_service, resolver, NULL)); |
| 857 | 847 |
| 858 // Start 3 requests. | 848 // Start 3 requests. |
| 859 | 849 |
| 860 ProxyInfo info1; | 850 ProxyInfo info1; |
| 861 TestCompletionCallback callback1; | 851 TestCompletionCallback callback1; |
| 862 int rv = service->ResolveProxy( | 852 int rv = service->ResolveProxy( |
| 863 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); | 853 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); |
| 864 EXPECT_EQ(ERR_IO_PENDING, rv); | 854 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 865 | 855 |
| 866 // Nothing has been sent to the proxy resolver yet, since the proxy | 856 // 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... |
| 921 | 911 |
| 922 // Test the initial PAC download for resolver that expects bytes. | 912 // Test the initial PAC download for resolver that expects bytes. |
| 923 TEST(ProxyServiceTest, InitialPACScriptDownload) { | 913 TEST(ProxyServiceTest, InitialPACScriptDownload) { |
| 924 MockProxyConfigService* config_service = | 914 MockProxyConfigService* config_service = |
| 925 new MockProxyConfigService("http://foopy/proxy.pac"); | 915 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 926 | 916 |
| 927 MockAsyncProxyResolverExpectsBytes* resolver = | 917 MockAsyncProxyResolverExpectsBytes* resolver = |
| 928 new MockAsyncProxyResolverExpectsBytes; | 918 new MockAsyncProxyResolverExpectsBytes; |
| 929 | 919 |
| 930 scoped_refptr<ProxyService> service( | 920 scoped_refptr<ProxyService> service( |
| 931 new ProxyService(config_service, resolver, NULL, NULL)); | 921 new ProxyService(config_service, resolver, NULL)); |
| 932 | 922 |
| 933 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 923 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 934 service->SetProxyScriptFetcher(fetcher); | 924 service->SetProxyScriptFetcher(fetcher); |
| 935 | 925 |
| 936 // Start 3 requests. | 926 // Start 3 requests. |
| 937 | 927 |
| 938 ProxyInfo info1; | 928 ProxyInfo info1; |
| 939 TestCompletionCallback callback1; | 929 TestCompletionCallback callback1; |
| 940 int rv = service->ResolveProxy( | 930 int rv = service->ResolveProxy( |
| 941 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); | 931 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1000 | 990 |
| 1001 // Test changing the ProxyScriptFetcher while PAC download is in progress. | 991 // Test changing the ProxyScriptFetcher while PAC download is in progress. |
| 1002 TEST(ProxyServiceTest, ChangeScriptFetcherWhilePACDownloadInProgress) { | 992 TEST(ProxyServiceTest, ChangeScriptFetcherWhilePACDownloadInProgress) { |
| 1003 MockProxyConfigService* config_service = | 993 MockProxyConfigService* config_service = |
| 1004 new MockProxyConfigService("http://foopy/proxy.pac"); | 994 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 1005 | 995 |
| 1006 MockAsyncProxyResolverExpectsBytes* resolver = | 996 MockAsyncProxyResolverExpectsBytes* resolver = |
| 1007 new MockAsyncProxyResolverExpectsBytes; | 997 new MockAsyncProxyResolverExpectsBytes; |
| 1008 | 998 |
| 1009 scoped_refptr<ProxyService> service( | 999 scoped_refptr<ProxyService> service( |
| 1010 new ProxyService(config_service, resolver, NULL, NULL)); | 1000 new ProxyService(config_service, resolver, NULL)); |
| 1011 | 1001 |
| 1012 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1002 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 1013 service->SetProxyScriptFetcher(fetcher); | 1003 service->SetProxyScriptFetcher(fetcher); |
| 1014 | 1004 |
| 1015 // Start 2 requests. | 1005 // Start 2 requests. |
| 1016 | 1006 |
| 1017 ProxyInfo info1; | 1007 ProxyInfo info1; |
| 1018 TestCompletionCallback callback1; | 1008 TestCompletionCallback callback1; |
| 1019 int rv = service->ResolveProxy( | 1009 int rv = service->ResolveProxy( |
| 1020 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); | 1010 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1057 | 1047 |
| 1058 // Test cancellation of a request, while the PAC script is being fetched. | 1048 // Test cancellation of a request, while the PAC script is being fetched. |
| 1059 TEST(ProxyServiceTest, CancelWhilePACFetching) { | 1049 TEST(ProxyServiceTest, CancelWhilePACFetching) { |
| 1060 MockProxyConfigService* config_service = | 1050 MockProxyConfigService* config_service = |
| 1061 new MockProxyConfigService("http://foopy/proxy.pac"); | 1051 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 1062 | 1052 |
| 1063 MockAsyncProxyResolverExpectsBytes* resolver = | 1053 MockAsyncProxyResolverExpectsBytes* resolver = |
| 1064 new MockAsyncProxyResolverExpectsBytes; | 1054 new MockAsyncProxyResolverExpectsBytes; |
| 1065 | 1055 |
| 1066 scoped_refptr<ProxyService> service( | 1056 scoped_refptr<ProxyService> service( |
| 1067 new ProxyService(config_service, resolver, NULL, NULL)); | 1057 new ProxyService(config_service, resolver, NULL)); |
| 1068 | 1058 |
| 1069 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1059 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 1070 service->SetProxyScriptFetcher(fetcher); | 1060 service->SetProxyScriptFetcher(fetcher); |
| 1071 | 1061 |
| 1072 // Start 3 requests. | 1062 // Start 3 requests. |
| 1073 ProxyInfo info1; | 1063 ProxyInfo info1; |
| 1074 TestCompletionCallback callback1; | 1064 TestCompletionCallback callback1; |
| 1075 ProxyService::PacRequest* request1; | 1065 ProxyService::PacRequest* request1; |
| 1076 CapturingBoundNetLog log1(CapturingNetLog::kUnbounded); | 1066 CapturingBoundNetLog log1(CapturingNetLog::kUnbounded); |
| 1077 int rv = service->ResolveProxy( | 1067 int rv = service->ResolveProxy( |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1145 TEST(ProxyServiceTest, FallbackFromAutodetectToCustomPac) { | 1135 TEST(ProxyServiceTest, FallbackFromAutodetectToCustomPac) { |
| 1146 ProxyConfig config; | 1136 ProxyConfig config; |
| 1147 config.set_auto_detect(true); | 1137 config.set_auto_detect(true); |
| 1148 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 1138 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
| 1149 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. | 1139 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. |
| 1150 | 1140 |
| 1151 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1141 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
| 1152 MockAsyncProxyResolverExpectsBytes* resolver = | 1142 MockAsyncProxyResolverExpectsBytes* resolver = |
| 1153 new MockAsyncProxyResolverExpectsBytes; | 1143 new MockAsyncProxyResolverExpectsBytes; |
| 1154 scoped_refptr<ProxyService> service( | 1144 scoped_refptr<ProxyService> service( |
| 1155 new ProxyService(config_service, resolver, NULL, NULL)); | 1145 new ProxyService(config_service, resolver, NULL)); |
| 1156 | 1146 |
| 1157 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1147 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 1158 service->SetProxyScriptFetcher(fetcher); | 1148 service->SetProxyScriptFetcher(fetcher); |
| 1159 | 1149 |
| 1160 // Start 2 requests. | 1150 // Start 2 requests. |
| 1161 | 1151 |
| 1162 ProxyInfo info1; | 1152 ProxyInfo info1; |
| 1163 TestCompletionCallback callback1; | 1153 TestCompletionCallback callback1; |
| 1164 int rv = service->ResolveProxy( | 1154 int rv = service->ResolveProxy( |
| 1165 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); | 1155 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1216 TEST(ProxyServiceTest, FallbackFromAutodetectToCustomPac2) { | 1206 TEST(ProxyServiceTest, FallbackFromAutodetectToCustomPac2) { |
| 1217 ProxyConfig config; | 1207 ProxyConfig config; |
| 1218 config.set_auto_detect(true); | 1208 config.set_auto_detect(true); |
| 1219 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 1209 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
| 1220 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. | 1210 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. |
| 1221 | 1211 |
| 1222 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1212 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
| 1223 MockAsyncProxyResolverExpectsBytes* resolver = | 1213 MockAsyncProxyResolverExpectsBytes* resolver = |
| 1224 new MockAsyncProxyResolverExpectsBytes; | 1214 new MockAsyncProxyResolverExpectsBytes; |
| 1225 scoped_refptr<ProxyService> service( | 1215 scoped_refptr<ProxyService> service( |
| 1226 new ProxyService(config_service, resolver, NULL, NULL)); | 1216 new ProxyService(config_service, resolver, NULL)); |
| 1227 | 1217 |
| 1228 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1218 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 1229 service->SetProxyScriptFetcher(fetcher); | 1219 service->SetProxyScriptFetcher(fetcher); |
| 1230 | 1220 |
| 1231 // Start 2 requests. | 1221 // Start 2 requests. |
| 1232 | 1222 |
| 1233 ProxyInfo info1; | 1223 ProxyInfo info1; |
| 1234 TestCompletionCallback callback1; | 1224 TestCompletionCallback callback1; |
| 1235 int rv = service->ResolveProxy( | 1225 int rv = service->ResolveProxy( |
| 1236 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); | 1226 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1292 TEST(ProxyServiceTest, FallbackFromAutodetectToCustomToManual) { | 1282 TEST(ProxyServiceTest, FallbackFromAutodetectToCustomToManual) { |
| 1293 ProxyConfig config; | 1283 ProxyConfig config; |
| 1294 config.set_auto_detect(true); | 1284 config.set_auto_detect(true); |
| 1295 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 1285 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
| 1296 config.proxy_rules().ParseFromString("http=foopy:80"); | 1286 config.proxy_rules().ParseFromString("http=foopy:80"); |
| 1297 | 1287 |
| 1298 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1288 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
| 1299 MockAsyncProxyResolverExpectsBytes* resolver = | 1289 MockAsyncProxyResolverExpectsBytes* resolver = |
| 1300 new MockAsyncProxyResolverExpectsBytes; | 1290 new MockAsyncProxyResolverExpectsBytes; |
| 1301 scoped_refptr<ProxyService> service( | 1291 scoped_refptr<ProxyService> service( |
| 1302 new ProxyService(config_service, resolver, NULL, NULL)); | 1292 new ProxyService(config_service, resolver, NULL)); |
| 1303 | 1293 |
| 1304 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1294 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 1305 service->SetProxyScriptFetcher(fetcher); | 1295 service->SetProxyScriptFetcher(fetcher); |
| 1306 | 1296 |
| 1307 // Start 2 requests. | 1297 // Start 2 requests. |
| 1308 | 1298 |
| 1309 ProxyInfo info1; | 1299 ProxyInfo info1; |
| 1310 TestCompletionCallback callback1; | 1300 TestCompletionCallback callback1; |
| 1311 int rv = service->ResolveProxy( | 1301 int rv = service->ResolveProxy( |
| 1312 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); | 1302 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1350 ProxyConfig config; | 1340 ProxyConfig config; |
| 1351 config.set_auto_detect(true); | 1341 config.set_auto_detect(true); |
| 1352 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 1342 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
| 1353 config.proxy_rules().ParseFromString("http=foopy:80"); // Not used. | 1343 config.proxy_rules().ParseFromString("http=foopy:80"); // Not used. |
| 1354 config.proxy_rules().bypass_rules.ParseFromString("www.google.com"); | 1344 config.proxy_rules().bypass_rules.ParseFromString("www.google.com"); |
| 1355 | 1345 |
| 1356 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1346 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
| 1357 MockAsyncProxyResolverExpectsBytes* resolver = | 1347 MockAsyncProxyResolverExpectsBytes* resolver = |
| 1358 new MockAsyncProxyResolverExpectsBytes; | 1348 new MockAsyncProxyResolverExpectsBytes; |
| 1359 scoped_refptr<ProxyService> service( | 1349 scoped_refptr<ProxyService> service( |
| 1360 new ProxyService(config_service, resolver, NULL, NULL)); | 1350 new ProxyService(config_service, resolver, NULL)); |
| 1361 | 1351 |
| 1362 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1352 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 1363 service->SetProxyScriptFetcher(fetcher); | 1353 service->SetProxyScriptFetcher(fetcher); |
| 1364 | 1354 |
| 1365 // Start 1 requests. | 1355 // Start 1 requests. |
| 1366 | 1356 |
| 1367 ProxyInfo info1; | 1357 ProxyInfo info1; |
| 1368 TestCompletionCallback callback1; | 1358 TestCompletionCallback callback1; |
| 1369 int rv = service->ResolveProxy( | 1359 int rv = service->ResolveProxy( |
| 1370 GURL("http://www.google.com"), &info1, &callback1, NULL, BoundNetLog()); | 1360 GURL("http://www.google.com"), &info1, &callback1, NULL, BoundNetLog()); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1418 // have any memory errors (used to be that the ProxyScriptFetcher was | 1408 // have any memory errors (used to be that the ProxyScriptFetcher was |
| 1419 // being deleted prior to the InitProxyResolver). | 1409 // being deleted prior to the InitProxyResolver). |
| 1420 TEST(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingFetch) { | 1410 TEST(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingFetch) { |
| 1421 ProxyConfig config; | 1411 ProxyConfig config; |
| 1422 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 1412 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
| 1423 | 1413 |
| 1424 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1414 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
| 1425 MockAsyncProxyResolverExpectsBytes* resolver = | 1415 MockAsyncProxyResolverExpectsBytes* resolver = |
| 1426 new MockAsyncProxyResolverExpectsBytes; | 1416 new MockAsyncProxyResolverExpectsBytes; |
| 1427 scoped_refptr<ProxyService> service( | 1417 scoped_refptr<ProxyService> service( |
| 1428 new ProxyService(config_service, resolver, NULL, NULL)); | 1418 new ProxyService(config_service, resolver, NULL)); |
| 1429 | 1419 |
| 1430 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1420 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 1431 service->SetProxyScriptFetcher(fetcher); | 1421 service->SetProxyScriptFetcher(fetcher); |
| 1432 | 1422 |
| 1433 // Start 1 request. | 1423 // Start 1 request. |
| 1434 | 1424 |
| 1435 ProxyInfo info1; | 1425 ProxyInfo info1; |
| 1436 TestCompletionCallback callback1; | 1426 TestCompletionCallback callback1; |
| 1437 int rv = service->ResolveProxy( | 1427 int rv = service->ResolveProxy( |
| 1438 GURL("http://www.google.com"), &info1, &callback1, NULL, BoundNetLog()); | 1428 GURL("http://www.google.com"), &info1, &callback1, NULL, BoundNetLog()); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1454 // request to the proxy resolver. When run under valgrind, should not | 1444 // request to the proxy resolver. When run under valgrind, should not |
| 1455 // have any memory errors (used to be that the ProxyResolver was | 1445 // have any memory errors (used to be that the ProxyResolver was |
| 1456 // being deleted prior to the InitProxyResolver). | 1446 // being deleted prior to the InitProxyResolver). |
| 1457 TEST(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingSet) { | 1447 TEST(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingSet) { |
| 1458 MockProxyConfigService* config_service = | 1448 MockProxyConfigService* config_service = |
| 1459 new MockProxyConfigService("http://foopy/proxy.pac"); | 1449 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 1460 | 1450 |
| 1461 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 1451 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
| 1462 | 1452 |
| 1463 scoped_refptr<ProxyService> service( | 1453 scoped_refptr<ProxyService> service( |
| 1464 new ProxyService(config_service, resolver, NULL, NULL)); | 1454 new ProxyService(config_service, resolver, NULL)); |
| 1465 | 1455 |
| 1466 GURL url("http://www.google.com/"); | 1456 GURL url("http://www.google.com/"); |
| 1467 | 1457 |
| 1468 ProxyInfo info; | 1458 ProxyInfo info; |
| 1469 TestCompletionCallback callback; | 1459 TestCompletionCallback callback; |
| 1470 int rv = service->ResolveProxy(url, &info, &callback, NULL, BoundNetLog()); | 1460 int rv = service->ResolveProxy(url, &info, &callback, NULL, BoundNetLog()); |
| 1471 EXPECT_EQ(ERR_IO_PENDING, rv); | 1461 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 1472 | 1462 |
| 1473 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 1463 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
| 1474 resolver->pending_set_pac_script_request()->pac_url()); | 1464 resolver->pending_set_pac_script_request()->pac_url()); |
| 1475 | 1465 |
| 1476 // Delete the ProxyService. | 1466 // Delete the ProxyService. |
| 1477 service = NULL; | 1467 service = NULL; |
| 1478 } | 1468 } |
| 1479 | 1469 |
| 1480 TEST(ProxyServiceTest, ResetProxyConfigService) { | 1470 TEST(ProxyServiceTest, ResetProxyConfigService) { |
| 1481 ProxyConfig config1; | 1471 ProxyConfig config1; |
| 1482 config1.proxy_rules().ParseFromString("foopy1:8080"); | 1472 config1.proxy_rules().ParseFromString("foopy1:8080"); |
| 1483 config1.set_auto_detect(false); | 1473 config1.set_auto_detect(false); |
| 1484 scoped_refptr<ProxyService> service(new ProxyService( | 1474 scoped_refptr<ProxyService> service(new ProxyService( |
| 1485 new MockProxyConfigService(config1), | 1475 new MockProxyConfigService(config1), |
| 1486 new MockAsyncProxyResolverExpectsBytes, | 1476 new MockAsyncProxyResolverExpectsBytes, NULL)); |
| 1487 NULL, NULL)); | |
| 1488 | 1477 |
| 1489 ProxyInfo info; | 1478 ProxyInfo info; |
| 1490 TestCompletionCallback callback1; | 1479 TestCompletionCallback callback1; |
| 1491 int rv = service->ResolveProxy( | 1480 int rv = service->ResolveProxy( |
| 1492 GURL("http://request1"), &info, &callback1, NULL, BoundNetLog()); | 1481 GURL("http://request1"), &info, &callback1, NULL, BoundNetLog()); |
| 1493 EXPECT_EQ(OK, rv); | 1482 EXPECT_EQ(OK, rv); |
| 1494 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 1483 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
| 1495 | 1484 |
| 1496 ProxyConfig config2; | 1485 ProxyConfig config2; |
| 1497 config2.proxy_rules().ParseFromString("foopy2:8080"); | 1486 config2.proxy_rules().ParseFromString("foopy2:8080"); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1509 // Regression test for http://crbug.com/18526 -- the configuration was being | 1498 // Regression test for http://crbug.com/18526 -- the configuration was being |
| 1510 // mutated to cancel out the automatic settings, which meant UpdateConfig() | 1499 // mutated to cancel out the automatic settings, which meant UpdateConfig() |
| 1511 // thought it had received a new configuration. | 1500 // thought it had received a new configuration. |
| 1512 TEST(ProxyServiceTest, UpdateConfigAfterFailedAutodetect) { | 1501 TEST(ProxyServiceTest, UpdateConfigAfterFailedAutodetect) { |
| 1513 ProxyConfig config; | 1502 ProxyConfig config; |
| 1514 config.set_auto_detect(true); | 1503 config.set_auto_detect(true); |
| 1515 | 1504 |
| 1516 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1505 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
| 1517 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 1506 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
| 1518 scoped_refptr<ProxyService> service( | 1507 scoped_refptr<ProxyService> service( |
| 1519 new ProxyService(config_service, resolver, NULL, NULL)); | 1508 new ProxyService(config_service, resolver, NULL)); |
| 1520 | 1509 |
| 1521 // Start 1 requests. | 1510 // Start 1 requests. |
| 1522 | 1511 |
| 1523 ProxyInfo info1; | 1512 ProxyInfo info1; |
| 1524 TestCompletionCallback callback1; | 1513 TestCompletionCallback callback1; |
| 1525 int rv = service->ResolveProxy( | 1514 int rv = service->ResolveProxy( |
| 1526 GURL("http://www.google.com"), &info1, &callback1, NULL, BoundNetLog()); | 1515 GURL("http://www.google.com"), &info1, &callback1, NULL, BoundNetLog()); |
| 1527 EXPECT_EQ(ERR_IO_PENDING, rv); | 1516 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 1528 | 1517 |
| 1529 // Check that nothing has been sent to the proxy resolver yet. | 1518 // Check that nothing has been sent to the proxy resolver yet. |
| (...skipping 25 matching lines...) Expand all Loading... |
| 1555 | 1544 |
| 1556 // Test that when going from a configuration that required PAC to one | 1545 // Test that when going from a configuration that required PAC to one |
| 1557 // that does NOT, we unset the variable |should_use_proxy_resolver_|. | 1546 // that does NOT, we unset the variable |should_use_proxy_resolver_|. |
| 1558 TEST(ProxyServiceTest, UpdateConfigFromPACToDirect) { | 1547 TEST(ProxyServiceTest, UpdateConfigFromPACToDirect) { |
| 1559 ProxyConfig config; | 1548 ProxyConfig config; |
| 1560 config.set_auto_detect(true); | 1549 config.set_auto_detect(true); |
| 1561 | 1550 |
| 1562 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1551 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
| 1563 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 1552 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
| 1564 scoped_refptr<ProxyService> service( | 1553 scoped_refptr<ProxyService> service( |
| 1565 new ProxyService(config_service, resolver, NULL, NULL)); | 1554 new ProxyService(config_service, resolver, NULL)); |
| 1566 | 1555 |
| 1567 // Start 1 request. | 1556 // Start 1 request. |
| 1568 | 1557 |
| 1569 ProxyInfo info1; | 1558 ProxyInfo info1; |
| 1570 TestCompletionCallback callback1; | 1559 TestCompletionCallback callback1; |
| 1571 int rv = service->ResolveProxy( | 1560 int rv = service->ResolveProxy( |
| 1572 GURL("http://www.google.com"), &info1, &callback1, NULL, BoundNetLog()); | 1561 GURL("http://www.google.com"), &info1, &callback1, NULL, BoundNetLog()); |
| 1573 EXPECT_EQ(ERR_IO_PENDING, rv); | 1562 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 1574 | 1563 |
| 1575 // Check that nothing has been sent to the proxy resolver yet. | 1564 // Check that nothing has been sent to the proxy resolver yet. |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1607 EXPECT_TRUE(info2.is_direct()); | 1596 EXPECT_TRUE(info2.is_direct()); |
| 1608 } | 1597 } |
| 1609 | 1598 |
| 1610 TEST(ProxyServiceTest, NetworkChangeTriggersPacRefetch) { | 1599 TEST(ProxyServiceTest, NetworkChangeTriggersPacRefetch) { |
| 1611 MockProxyConfigService* config_service = | 1600 MockProxyConfigService* config_service = |
| 1612 new MockProxyConfigService("http://foopy/proxy.pac"); | 1601 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 1613 | 1602 |
| 1614 MockAsyncProxyResolverExpectsBytes* resolver = | 1603 MockAsyncProxyResolverExpectsBytes* resolver = |
| 1615 new MockAsyncProxyResolverExpectsBytes; | 1604 new MockAsyncProxyResolverExpectsBytes; |
| 1616 | 1605 |
| 1617 MockNetworkChangeNotifier network_change_notifier; | |
| 1618 | |
| 1619 scoped_refptr<ProxyService> service( | 1606 scoped_refptr<ProxyService> service( |
| 1620 new ProxyService(config_service, resolver, &network_change_notifier, | 1607 new ProxyService(config_service, resolver, NULL)); |
| 1621 NULL)); | |
| 1622 | 1608 |
| 1623 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1609 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 1624 service->SetProxyScriptFetcher(fetcher); | 1610 service->SetProxyScriptFetcher(fetcher); |
| 1625 | 1611 |
| 1626 // Start 1 request. | 1612 // Start 1 request. |
| 1627 | 1613 |
| 1628 ProxyInfo info1; | 1614 ProxyInfo info1; |
| 1629 TestCompletionCallback callback1; | 1615 TestCompletionCallback callback1; |
| 1630 int rv = service->ResolveProxy( | 1616 int rv = service->ResolveProxy( |
| 1631 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); | 1617 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1655 resolver->pending_requests()[0]->results()->UseNamedProxy("request1:80"); | 1641 resolver->pending_requests()[0]->results()->UseNamedProxy("request1:80"); |
| 1656 resolver->pending_requests()[0]->CompleteNow(OK); | 1642 resolver->pending_requests()[0]->CompleteNow(OK); |
| 1657 | 1643 |
| 1658 // Wait for completion callback, and verify that the request ran as expected. | 1644 // Wait for completion callback, and verify that the request ran as expected. |
| 1659 EXPECT_EQ(OK, callback1.WaitForResult()); | 1645 EXPECT_EQ(OK, callback1.WaitForResult()); |
| 1660 EXPECT_EQ("request1:80", info1.proxy_server().ToURI()); | 1646 EXPECT_EQ("request1:80", info1.proxy_server().ToURI()); |
| 1661 | 1647 |
| 1662 // Now simluate a change in the network. The ProxyConfigService is still | 1648 // Now simluate a change in the network. The ProxyConfigService is still |
| 1663 // going to return the same PAC URL as before, but this URL needs to be | 1649 // going to return the same PAC URL as before, but this URL needs to be |
| 1664 // refetched on the new network. | 1650 // refetched on the new network. |
| 1665 | 1651 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests(); |
| 1666 network_change_notifier.NotifyIPAddressChange(); | 1652 MessageLoop::current()->RunAllPending(); // Notification happens async. |
| 1667 | 1653 |
| 1668 // Start a second request. | 1654 // Start a second request. |
| 1669 ProxyInfo info2; | 1655 ProxyInfo info2; |
| 1670 TestCompletionCallback callback2; | 1656 TestCompletionCallback callback2; |
| 1671 rv = service->ResolveProxy( | 1657 rv = service->ResolveProxy( |
| 1672 GURL("http://request2"), &info2, &callback2, NULL, BoundNetLog()); | 1658 GURL("http://request2"), &info2, &callback2, NULL, BoundNetLog()); |
| 1673 EXPECT_EQ(ERR_IO_PENDING, rv); | 1659 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 1674 | 1660 |
| 1675 // This second request should have triggered the re-download of the PAC | 1661 // This second request should have triggered the re-download of the PAC |
| 1676 // script (since we marked the network as having changed). | 1662 // script (since we marked the network as having changed). |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1695 // Complete the pending second request. | 1681 // Complete the pending second request. |
| 1696 resolver->pending_requests()[0]->results()->UseNamedProxy("request2:80"); | 1682 resolver->pending_requests()[0]->results()->UseNamedProxy("request2:80"); |
| 1697 resolver->pending_requests()[0]->CompleteNow(OK); | 1683 resolver->pending_requests()[0]->CompleteNow(OK); |
| 1698 | 1684 |
| 1699 // Wait for completion callback, and verify that the request ran as expected. | 1685 // Wait for completion callback, and verify that the request ran as expected. |
| 1700 EXPECT_EQ(OK, callback2.WaitForResult()); | 1686 EXPECT_EQ(OK, callback2.WaitForResult()); |
| 1701 EXPECT_EQ("request2:80", info2.proxy_server().ToURI()); | 1687 EXPECT_EQ("request2:80", info2.proxy_server().ToURI()); |
| 1702 } | 1688 } |
| 1703 | 1689 |
| 1704 } // namespace net | 1690 } // namespace net |
| OLD | NEW |