OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 226 matching lines...) Loading... |
237 bool on_proxy_fallback_called_; | 237 bool on_proxy_fallback_called_; |
238 ProxyServer proxy_server_; | 238 ProxyServer proxy_server_; |
239 int proxy_fallback_net_error_; | 239 int proxy_fallback_net_error_; |
240 }; | 240 }; |
241 | 241 |
242 } // namespace | 242 } // namespace |
243 | 243 |
244 TEST_F(ProxyServiceTest, Direct) { | 244 TEST_F(ProxyServiceTest, Direct) { |
245 MockAsyncProxyResolverFactory* factory = | 245 MockAsyncProxyResolverFactory* factory = |
246 new MockAsyncProxyResolverFactory(false); | 246 new MockAsyncProxyResolverFactory(false); |
247 ProxyService service(new MockProxyConfigService(ProxyConfig::CreateDirect()), | 247 ProxyService service( |
248 make_scoped_ptr(factory), NULL); | 248 make_scoped_ptr(new MockProxyConfigService(ProxyConfig::CreateDirect())), |
| 249 make_scoped_ptr(factory), NULL); |
249 | 250 |
250 GURL url("http://www.google.com/"); | 251 GURL url("http://www.google.com/"); |
251 | 252 |
252 ProxyInfo info; | 253 ProxyInfo info; |
253 TestCompletionCallback callback; | 254 TestCompletionCallback callback; |
254 BoundTestNetLog log; | 255 BoundTestNetLog log; |
255 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), | 256 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), |
256 NULL, NULL, log.bound()); | 257 NULL, NULL, log.bound()); |
257 EXPECT_EQ(OK, rv); | 258 EXPECT_EQ(OK, rv); |
258 EXPECT_TRUE(factory->pending_requests().empty()); | 259 EXPECT_TRUE(factory->pending_requests().empty()); |
(...skipping 15 matching lines...) Loading... |
274 EXPECT_TRUE(LogContainsEndEvent( | 275 EXPECT_TRUE(LogContainsEndEvent( |
275 entries, 2, NetLog::TYPE_PROXY_SERVICE)); | 276 entries, 2, NetLog::TYPE_PROXY_SERVICE)); |
276 } | 277 } |
277 | 278 |
278 TEST_F(ProxyServiceTest, OnResolveProxyCallbackAddProxy) { | 279 TEST_F(ProxyServiceTest, OnResolveProxyCallbackAddProxy) { |
279 ProxyConfig config; | 280 ProxyConfig config; |
280 config.proxy_rules().ParseFromString("foopy1:8080"); | 281 config.proxy_rules().ParseFromString("foopy1:8080"); |
281 config.set_auto_detect(false); | 282 config.set_auto_detect(false); |
282 config.proxy_rules().bypass_rules.ParseFromString("*.org"); | 283 config.proxy_rules().bypass_rules.ParseFromString("*.org"); |
283 | 284 |
284 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 285 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 286 nullptr, NULL); |
285 | 287 |
286 GURL url("http://www.google.com/"); | 288 GURL url("http://www.google.com/"); |
287 GURL bypass_url("http://internet.org"); | 289 GURL bypass_url("http://internet.org"); |
288 | 290 |
289 ProxyInfo info; | 291 ProxyInfo info; |
290 TestCompletionCallback callback; | 292 TestCompletionCallback callback; |
291 BoundTestNetLog log; | 293 BoundTestNetLog log; |
292 | 294 |
293 // First, warm up the ProxyService. | 295 // First, warm up the ProxyService. |
294 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), | 296 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), |
(...skipping 33 matching lines...) Loading... |
328 | 330 |
329 TEST_F(ProxyServiceTest, OnResolveProxyCallbackRemoveProxy) { | 331 TEST_F(ProxyServiceTest, OnResolveProxyCallbackRemoveProxy) { |
330 // Same as OnResolveProxyCallbackAddProxy, but verify that the | 332 // Same as OnResolveProxyCallbackAddProxy, but verify that the |
331 // NetworkDelegate's behavior is stateless across invocations after it | 333 // NetworkDelegate's behavior is stateless across invocations after it |
332 // *removes* a proxy. | 334 // *removes* a proxy. |
333 ProxyConfig config; | 335 ProxyConfig config; |
334 config.proxy_rules().ParseFromString("foopy1:8080"); | 336 config.proxy_rules().ParseFromString("foopy1:8080"); |
335 config.set_auto_detect(false); | 337 config.set_auto_detect(false); |
336 config.proxy_rules().bypass_rules.ParseFromString("*.org"); | 338 config.proxy_rules().bypass_rules.ParseFromString("*.org"); |
337 | 339 |
338 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 340 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 341 nullptr, NULL); |
339 | 342 |
340 GURL url("http://www.google.com/"); | 343 GURL url("http://www.google.com/"); |
341 GURL bypass_url("http://internet.org"); | 344 GURL bypass_url("http://internet.org"); |
342 | 345 |
343 ProxyInfo info; | 346 ProxyInfo info; |
344 TestCompletionCallback callback; | 347 TestCompletionCallback callback; |
345 BoundTestNetLog log; | 348 BoundTestNetLog log; |
346 | 349 |
347 // First, warm up the ProxyService. | 350 // First, warm up the ProxyService. |
348 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), | 351 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), |
(...skipping 22 matching lines...) Loading... |
371 } | 374 } |
372 | 375 |
373 TEST_F(ProxyServiceTest, PAC) { | 376 TEST_F(ProxyServiceTest, PAC) { |
374 MockProxyConfigService* config_service = | 377 MockProxyConfigService* config_service = |
375 new MockProxyConfigService("http://foopy/proxy.pac"); | 378 new MockProxyConfigService("http://foopy/proxy.pac"); |
376 | 379 |
377 MockAsyncProxyResolver resolver; | 380 MockAsyncProxyResolver resolver; |
378 MockAsyncProxyResolverFactory* factory = | 381 MockAsyncProxyResolverFactory* factory = |
379 new MockAsyncProxyResolverFactory(false); | 382 new MockAsyncProxyResolverFactory(false); |
380 | 383 |
381 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 384 ProxyService service(make_scoped_ptr(config_service), |
| 385 make_scoped_ptr(factory), NULL); |
382 | 386 |
383 GURL url("http://www.google.com/"); | 387 GURL url("http://www.google.com/"); |
384 | 388 |
385 ProxyInfo info; | 389 ProxyInfo info; |
386 TestCompletionCallback callback; | 390 TestCompletionCallback callback; |
387 ProxyService::PacRequest* request; | 391 ProxyService::PacRequest* request; |
388 BoundTestNetLog log; | 392 BoundTestNetLog log; |
389 | 393 |
390 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), | 394 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), |
391 &request, NULL, log.bound()); | 395 &request, NULL, log.bound()); |
(...skipping 40 matching lines...) Loading... |
432 // Test that the proxy resolver does not see the URL's username/password | 436 // Test that the proxy resolver does not see the URL's username/password |
433 // or its reference section. | 437 // or its reference section. |
434 TEST_F(ProxyServiceTest, PAC_NoIdentityOrHash) { | 438 TEST_F(ProxyServiceTest, PAC_NoIdentityOrHash) { |
435 MockProxyConfigService* config_service = | 439 MockProxyConfigService* config_service = |
436 new MockProxyConfigService("http://foopy/proxy.pac"); | 440 new MockProxyConfigService("http://foopy/proxy.pac"); |
437 | 441 |
438 MockAsyncProxyResolver resolver; | 442 MockAsyncProxyResolver resolver; |
439 MockAsyncProxyResolverFactory* factory = | 443 MockAsyncProxyResolverFactory* factory = |
440 new MockAsyncProxyResolverFactory(false); | 444 new MockAsyncProxyResolverFactory(false); |
441 | 445 |
442 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 446 ProxyService service(make_scoped_ptr(config_service), |
| 447 make_scoped_ptr(factory), NULL); |
443 | 448 |
444 GURL url("http://username:password@www.google.com/?ref#hash#hash"); | 449 GURL url("http://username:password@www.google.com/?ref#hash#hash"); |
445 | 450 |
446 ProxyInfo info; | 451 ProxyInfo info; |
447 TestCompletionCallback callback; | 452 TestCompletionCallback callback; |
448 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), | 453 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), |
449 NULL, NULL, BoundNetLog()); | 454 NULL, NULL, BoundNetLog()); |
450 EXPECT_EQ(ERR_IO_PENDING, rv); | 455 EXPECT_EQ(ERR_IO_PENDING, rv); |
451 | 456 |
452 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 457 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
453 factory->pending_requests()[0]->script_data()->url()); | 458 factory->pending_requests()[0]->script_data()->url()); |
454 factory->pending_requests()[0]->CompleteNowWithForwarder(OK, &resolver); | 459 factory->pending_requests()[0]->CompleteNowWithForwarder(OK, &resolver); |
455 | 460 |
456 ASSERT_EQ(1u, resolver.pending_requests().size()); | 461 ASSERT_EQ(1u, resolver.pending_requests().size()); |
457 // The URL should have been simplified, stripping the username/password/hash. | 462 // The URL should have been simplified, stripping the username/password/hash. |
458 EXPECT_EQ(GURL("http://www.google.com/?ref"), | 463 EXPECT_EQ(GURL("http://www.google.com/?ref"), |
459 resolver.pending_requests()[0]->url()); | 464 resolver.pending_requests()[0]->url()); |
460 | 465 |
461 // We end here without ever completing the request -- destruction of | 466 // We end here without ever completing the request -- destruction of |
462 // ProxyService will cancel the outstanding request. | 467 // ProxyService will cancel the outstanding request. |
463 } | 468 } |
464 | 469 |
465 TEST_F(ProxyServiceTest, PAC_FailoverWithoutDirect) { | 470 TEST_F(ProxyServiceTest, PAC_FailoverWithoutDirect) { |
466 MockProxyConfigService* config_service = | 471 MockProxyConfigService* config_service = |
467 new MockProxyConfigService("http://foopy/proxy.pac"); | 472 new MockProxyConfigService("http://foopy/proxy.pac"); |
468 MockAsyncProxyResolver resolver; | 473 MockAsyncProxyResolver resolver; |
469 MockAsyncProxyResolverFactory* factory = | 474 MockAsyncProxyResolverFactory* factory = |
470 new MockAsyncProxyResolverFactory(false); | 475 new MockAsyncProxyResolverFactory(false); |
471 | 476 |
472 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 477 ProxyService service(make_scoped_ptr(config_service), |
| 478 make_scoped_ptr(factory), NULL); |
473 | 479 |
474 GURL url("http://www.google.com/"); | 480 GURL url("http://www.google.com/"); |
475 | 481 |
476 ProxyInfo info; | 482 ProxyInfo info; |
477 TestCompletionCallback callback1; | 483 TestCompletionCallback callback1; |
478 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 484 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
479 NULL, NULL, BoundNetLog()); | 485 NULL, NULL, BoundNetLog()); |
480 EXPECT_EQ(ERR_IO_PENDING, rv); | 486 EXPECT_EQ(ERR_IO_PENDING, rv); |
481 | 487 |
482 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 488 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
(...skipping 32 matching lines...) Loading... |
515 | 521 |
516 // Test that if the execution of the PAC script fails (i.e. javascript runtime | 522 // Test that if the execution of the PAC script fails (i.e. javascript runtime |
517 // error), and the PAC settings are non-mandatory, that we fall-back to direct. | 523 // error), and the PAC settings are non-mandatory, that we fall-back to direct. |
518 TEST_F(ProxyServiceTest, PAC_RuntimeError) { | 524 TEST_F(ProxyServiceTest, PAC_RuntimeError) { |
519 MockProxyConfigService* config_service = | 525 MockProxyConfigService* config_service = |
520 new MockProxyConfigService("http://foopy/proxy.pac"); | 526 new MockProxyConfigService("http://foopy/proxy.pac"); |
521 MockAsyncProxyResolver resolver; | 527 MockAsyncProxyResolver resolver; |
522 MockAsyncProxyResolverFactory* factory = | 528 MockAsyncProxyResolverFactory* factory = |
523 new MockAsyncProxyResolverFactory(false); | 529 new MockAsyncProxyResolverFactory(false); |
524 | 530 |
525 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 531 ProxyService service(make_scoped_ptr(config_service), |
| 532 make_scoped_ptr(factory), NULL); |
526 | 533 |
527 GURL url("http://this-causes-js-error/"); | 534 GURL url("http://this-causes-js-error/"); |
528 | 535 |
529 ProxyInfo info; | 536 ProxyInfo info; |
530 TestCompletionCallback callback1; | 537 TestCompletionCallback callback1; |
531 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 538 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
532 NULL, NULL, BoundNetLog()); | 539 NULL, NULL, BoundNetLog()); |
533 EXPECT_EQ(ERR_IO_PENDING, rv); | 540 EXPECT_EQ(ERR_IO_PENDING, rv); |
534 | 541 |
535 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 542 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
(...skipping 36 matching lines...) Loading... |
572 // | 579 // |
573 // The important check of this test is to make sure that DIRECT is not somehow | 580 // The important check of this test is to make sure that DIRECT is not somehow |
574 // cached as being a bad proxy. | 581 // cached as being a bad proxy. |
575 TEST_F(ProxyServiceTest, PAC_FailoverAfterDirect) { | 582 TEST_F(ProxyServiceTest, PAC_FailoverAfterDirect) { |
576 MockProxyConfigService* config_service = | 583 MockProxyConfigService* config_service = |
577 new MockProxyConfigService("http://foopy/proxy.pac"); | 584 new MockProxyConfigService("http://foopy/proxy.pac"); |
578 MockAsyncProxyResolver resolver; | 585 MockAsyncProxyResolver resolver; |
579 MockAsyncProxyResolverFactory* factory = | 586 MockAsyncProxyResolverFactory* factory = |
580 new MockAsyncProxyResolverFactory(false); | 587 new MockAsyncProxyResolverFactory(false); |
581 | 588 |
582 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 589 ProxyService service(make_scoped_ptr(config_service), |
| 590 make_scoped_ptr(factory), NULL); |
583 | 591 |
584 GURL url("http://www.google.com/"); | 592 GURL url("http://www.google.com/"); |
585 | 593 |
586 ProxyInfo info; | 594 ProxyInfo info; |
587 TestCompletionCallback callback1; | 595 TestCompletionCallback callback1; |
588 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 596 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
589 NULL, NULL, BoundNetLog()); | 597 NULL, NULL, BoundNetLog()); |
590 EXPECT_EQ(ERR_IO_PENDING, rv); | 598 EXPECT_EQ(ERR_IO_PENDING, rv); |
591 | 599 |
592 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 600 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
(...skipping 54 matching lines...) Loading... |
647 // Test whether the ProxyConfigSource set by the ProxyConfigService is applied | 655 // Test whether the ProxyConfigSource set by the ProxyConfigService is applied |
648 // to ProxyInfo after the proxy is resolved via a PAC script. | 656 // to ProxyInfo after the proxy is resolved via a PAC script. |
649 ProxyConfig config = | 657 ProxyConfig config = |
650 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac")); | 658 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac")); |
651 config.set_source(PROXY_CONFIG_SOURCE_TEST); | 659 config.set_source(PROXY_CONFIG_SOURCE_TEST); |
652 | 660 |
653 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 661 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
654 MockAsyncProxyResolver resolver; | 662 MockAsyncProxyResolver resolver; |
655 MockAsyncProxyResolverFactory* factory = | 663 MockAsyncProxyResolverFactory* factory = |
656 new MockAsyncProxyResolverFactory(false); | 664 new MockAsyncProxyResolverFactory(false); |
657 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 665 ProxyService service(make_scoped_ptr(config_service), |
| 666 make_scoped_ptr(factory), NULL); |
658 | 667 |
659 // Resolve something. | 668 // Resolve something. |
660 GURL url("http://www.google.com/"); | 669 GURL url("http://www.google.com/"); |
661 ProxyInfo info; | 670 ProxyInfo info; |
662 TestCompletionCallback callback; | 671 TestCompletionCallback callback; |
663 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), | 672 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), |
664 NULL, NULL, BoundNetLog()); | 673 NULL, NULL, BoundNetLog()); |
665 ASSERT_EQ(ERR_IO_PENDING, rv); | 674 ASSERT_EQ(ERR_IO_PENDING, rv); |
666 factory->pending_requests()[0]->CompleteNowWithForwarder(OK, &resolver); | 675 factory->pending_requests()[0]->CompleteNowWithForwarder(OK, &resolver); |
667 ASSERT_EQ(1u, resolver.pending_requests().size()); | 676 ASSERT_EQ(1u, resolver.pending_requests().size()); |
(...skipping 16 matching lines...) Loading... |
684 // of the PAC script have already succeeded, so this corresponds with a | 693 // of the PAC script have already succeeded, so this corresponds with a |
685 // javascript runtime error while calling FindProxyForURL(). | 694 // javascript runtime error while calling FindProxyForURL(). |
686 | 695 |
687 MockProxyConfigService* config_service = | 696 MockProxyConfigService* config_service = |
688 new MockProxyConfigService("http://foopy/proxy.pac"); | 697 new MockProxyConfigService("http://foopy/proxy.pac"); |
689 | 698 |
690 MockAsyncProxyResolver resolver; | 699 MockAsyncProxyResolver resolver; |
691 MockAsyncProxyResolverFactory* factory = | 700 MockAsyncProxyResolverFactory* factory = |
692 new MockAsyncProxyResolverFactory(false); | 701 new MockAsyncProxyResolverFactory(false); |
693 | 702 |
694 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 703 ProxyService service(make_scoped_ptr(config_service), |
| 704 make_scoped_ptr(factory), NULL); |
695 | 705 |
696 // Start first resolve request. | 706 // Start first resolve request. |
697 GURL url("http://www.google.com/"); | 707 GURL url("http://www.google.com/"); |
698 ProxyInfo info; | 708 ProxyInfo info; |
699 TestCompletionCallback callback1; | 709 TestCompletionCallback callback1; |
700 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 710 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
701 NULL, NULL, BoundNetLog()); | 711 NULL, NULL, BoundNetLog()); |
702 EXPECT_EQ(ERR_IO_PENDING, rv); | 712 EXPECT_EQ(ERR_IO_PENDING, rv); |
703 | 713 |
704 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 714 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
(...skipping 40 matching lines...) Loading... |
745 // Test what happens when the ProxyResolver fails with a fatal error while | 755 // Test what happens when the ProxyResolver fails with a fatal error while |
746 // a GetProxyForURL() call is in progress. | 756 // a GetProxyForURL() call is in progress. |
747 | 757 |
748 MockProxyConfigService* config_service = | 758 MockProxyConfigService* config_service = |
749 new MockProxyConfigService("http://foopy/proxy.pac"); | 759 new MockProxyConfigService("http://foopy/proxy.pac"); |
750 | 760 |
751 MockAsyncProxyResolver resolver; | 761 MockAsyncProxyResolver resolver; |
752 MockAsyncProxyResolverFactory* factory = | 762 MockAsyncProxyResolverFactory* factory = |
753 new MockAsyncProxyResolverFactory(false); | 763 new MockAsyncProxyResolverFactory(false); |
754 | 764 |
755 ProxyService service(config_service, make_scoped_ptr(factory), nullptr); | 765 ProxyService service(make_scoped_ptr(config_service), |
| 766 make_scoped_ptr(factory), nullptr); |
756 | 767 |
757 // Start first resolve request. | 768 // Start first resolve request. |
758 GURL url("http://www.google.com/"); | 769 GURL url("http://www.google.com/"); |
759 ProxyInfo info; | 770 ProxyInfo info; |
760 TestCompletionCallback callback1; | 771 TestCompletionCallback callback1; |
761 int rv = | 772 int rv = |
762 service.ResolveProxy(url, net::LOAD_NORMAL, &info, callback1.callback(), | 773 service.ResolveProxy(url, net::LOAD_NORMAL, &info, callback1.callback(), |
763 nullptr, nullptr, BoundNetLog()); | 774 nullptr, nullptr, BoundNetLog()); |
764 EXPECT_EQ(ERR_IO_PENDING, rv); | 775 EXPECT_EQ(ERR_IO_PENDING, rv); |
765 | 776 |
(...skipping 49 matching lines...) Loading... |
815 // Test what happens when the ProxyResolver fails with a fatal error while | 826 // Test what happens when the ProxyResolver fails with a fatal error while |
816 // a GetProxyForURL() call is in progress. | 827 // a GetProxyForURL() call is in progress. |
817 | 828 |
818 MockProxyConfigService* config_service = | 829 MockProxyConfigService* config_service = |
819 new MockProxyConfigService("http://foopy/proxy.pac"); | 830 new MockProxyConfigService("http://foopy/proxy.pac"); |
820 | 831 |
821 MockAsyncProxyResolver resolver; | 832 MockAsyncProxyResolver resolver; |
822 MockAsyncProxyResolverFactory* factory = | 833 MockAsyncProxyResolverFactory* factory = |
823 new MockAsyncProxyResolverFactory(false); | 834 new MockAsyncProxyResolverFactory(false); |
824 | 835 |
825 ProxyService service(config_service, make_scoped_ptr(factory), nullptr); | 836 ProxyService service(make_scoped_ptr(config_service), |
| 837 make_scoped_ptr(factory), nullptr); |
826 | 838 |
827 // Start two resolve requests. | 839 // Start two resolve requests. |
828 GURL url1("http://www.google.com/"); | 840 GURL url1("http://www.google.com/"); |
829 GURL url2("https://www.google.com/"); | 841 GURL url2("https://www.google.com/"); |
830 ProxyInfo info; | 842 ProxyInfo info; |
831 TestCompletionCallback callback1; | 843 TestCompletionCallback callback1; |
832 int rv = | 844 int rv = |
833 service.ResolveProxy(url1, net::LOAD_NORMAL, &info, callback1.callback(), | 845 service.ResolveProxy(url1, net::LOAD_NORMAL, &info, callback1.callback(), |
834 nullptr, nullptr, BoundNetLog()); | 846 nullptr, nullptr, BoundNetLog()); |
835 EXPECT_EQ(ERR_IO_PENDING, rv); | 847 EXPECT_EQ(ERR_IO_PENDING, rv); |
(...skipping 53 matching lines...) Loading... |
889 | 901 |
890 ProxyConfig config( | 902 ProxyConfig config( |
891 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac"))); | 903 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac"))); |
892 config.set_pac_mandatory(true); | 904 config.set_pac_mandatory(true); |
893 | 905 |
894 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 906 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
895 | 907 |
896 MockAsyncProxyResolverFactory* factory = | 908 MockAsyncProxyResolverFactory* factory = |
897 new MockAsyncProxyResolverFactory(false); | 909 new MockAsyncProxyResolverFactory(false); |
898 | 910 |
899 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 911 ProxyService service(make_scoped_ptr(config_service), |
| 912 make_scoped_ptr(factory), NULL); |
900 | 913 |
901 // Start first resolve request. | 914 // Start first resolve request. |
902 GURL url("http://www.google.com/"); | 915 GURL url("http://www.google.com/"); |
903 ProxyInfo info; | 916 ProxyInfo info; |
904 TestCompletionCallback callback1; | 917 TestCompletionCallback callback1; |
905 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 918 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
906 NULL, NULL, BoundNetLog()); | 919 NULL, NULL, BoundNetLog()); |
907 EXPECT_EQ(ERR_IO_PENDING, rv); | 920 EXPECT_EQ(ERR_IO_PENDING, rv); |
908 | 921 |
909 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 922 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
(...skipping 23 matching lines...) Loading... |
933 | 946 |
934 ProxyConfig config( | 947 ProxyConfig config( |
935 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac"))); | 948 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac"))); |
936 config.set_pac_mandatory(true); | 949 config.set_pac_mandatory(true); |
937 | 950 |
938 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 951 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
939 | 952 |
940 MockAsyncProxyResolverFactory* factory = | 953 MockAsyncProxyResolverFactory* factory = |
941 new MockAsyncProxyResolverFactory(true); | 954 new MockAsyncProxyResolverFactory(true); |
942 | 955 |
943 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 956 ProxyService service(make_scoped_ptr(config_service), |
| 957 make_scoped_ptr(factory), NULL); |
944 | 958 |
945 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 959 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
946 DhcpProxyScriptFetcher* dhcp_fetcher = new DoNothingDhcpProxyScriptFetcher(); | 960 DhcpProxyScriptFetcher* dhcp_fetcher = new DoNothingDhcpProxyScriptFetcher(); |
947 service.SetProxyScriptFetchers(fetcher, dhcp_fetcher); | 961 service.SetProxyScriptFetchers(fetcher, dhcp_fetcher); |
948 | 962 |
949 // Start resolve request. | 963 // Start resolve request. |
950 GURL url("http://www.google.com/"); | 964 GURL url("http://www.google.com/"); |
951 ProxyInfo info; | 965 ProxyInfo info; |
952 TestCompletionCallback callback; | 966 TestCompletionCallback callback; |
953 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), | 967 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), |
(...skipping 28 matching lines...) Loading... |
982 ProxyConfig config( | 996 ProxyConfig config( |
983 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac"))); | 997 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac"))); |
984 config.set_pac_mandatory(true); | 998 config.set_pac_mandatory(true); |
985 | 999 |
986 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1000 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
987 | 1001 |
988 MockAsyncProxyResolver resolver; | 1002 MockAsyncProxyResolver resolver; |
989 MockAsyncProxyResolverFactory* factory = | 1003 MockAsyncProxyResolverFactory* factory = |
990 new MockAsyncProxyResolverFactory(false); | 1004 new MockAsyncProxyResolverFactory(false); |
991 | 1005 |
992 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1006 ProxyService service(make_scoped_ptr(config_service), |
| 1007 make_scoped_ptr(factory), NULL); |
993 | 1008 |
994 // Start first resolve request. | 1009 // Start first resolve request. |
995 GURL url("http://www.google.com/"); | 1010 GURL url("http://www.google.com/"); |
996 ProxyInfo info; | 1011 ProxyInfo info; |
997 TestCompletionCallback callback1; | 1012 TestCompletionCallback callback1; |
998 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 1013 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
999 NULL, NULL, BoundNetLog()); | 1014 NULL, NULL, BoundNetLog()); |
1000 EXPECT_EQ(ERR_IO_PENDING, rv); | 1015 EXPECT_EQ(ERR_IO_PENDING, rv); |
1001 | 1016 |
1002 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 1017 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
(...skipping 36 matching lines...) Loading... |
1039 // Test what happens when we specify multiple proxy servers and some of them | 1054 // Test what happens when we specify multiple proxy servers and some of them |
1040 // are bad. | 1055 // are bad. |
1041 | 1056 |
1042 MockProxyConfigService* config_service = | 1057 MockProxyConfigService* config_service = |
1043 new MockProxyConfigService("http://foopy/proxy.pac"); | 1058 new MockProxyConfigService("http://foopy/proxy.pac"); |
1044 | 1059 |
1045 MockAsyncProxyResolver resolver; | 1060 MockAsyncProxyResolver resolver; |
1046 MockAsyncProxyResolverFactory* factory = | 1061 MockAsyncProxyResolverFactory* factory = |
1047 new MockAsyncProxyResolverFactory(false); | 1062 new MockAsyncProxyResolverFactory(false); |
1048 | 1063 |
1049 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1064 ProxyService service(make_scoped_ptr(config_service), |
| 1065 make_scoped_ptr(factory), NULL); |
1050 | 1066 |
1051 GURL url("http://www.google.com/"); | 1067 GURL url("http://www.google.com/"); |
1052 | 1068 |
1053 // Get the proxy information. | 1069 // Get the proxy information. |
1054 ProxyInfo info; | 1070 ProxyInfo info; |
1055 TestCompletionCallback callback1; | 1071 TestCompletionCallback callback1; |
1056 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 1072 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
1057 NULL, NULL, BoundNetLog()); | 1073 NULL, NULL, BoundNetLog()); |
1058 EXPECT_EQ(ERR_IO_PENDING, rv); | 1074 EXPECT_EQ(ERR_IO_PENDING, rv); |
1059 | 1075 |
(...skipping 128 matching lines...) Loading... |
1188 // This test is similar to ProxyFallback, but this time we have an explicit | 1204 // This test is similar to ProxyFallback, but this time we have an explicit |
1189 // fallback choice to DIRECT. | 1205 // fallback choice to DIRECT. |
1190 TEST_F(ProxyServiceTest, ProxyFallbackToDirect) { | 1206 TEST_F(ProxyServiceTest, ProxyFallbackToDirect) { |
1191 MockProxyConfigService* config_service = | 1207 MockProxyConfigService* config_service = |
1192 new MockProxyConfigService("http://foopy/proxy.pac"); | 1208 new MockProxyConfigService("http://foopy/proxy.pac"); |
1193 | 1209 |
1194 MockAsyncProxyResolver resolver; | 1210 MockAsyncProxyResolver resolver; |
1195 MockAsyncProxyResolverFactory* factory = | 1211 MockAsyncProxyResolverFactory* factory = |
1196 new MockAsyncProxyResolverFactory(false); | 1212 new MockAsyncProxyResolverFactory(false); |
1197 | 1213 |
1198 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1214 ProxyService service(make_scoped_ptr(config_service), |
| 1215 make_scoped_ptr(factory), NULL); |
1199 | 1216 |
1200 GURL url("http://www.google.com/"); | 1217 GURL url("http://www.google.com/"); |
1201 | 1218 |
1202 // Get the proxy information. | 1219 // Get the proxy information. |
1203 ProxyInfo info; | 1220 ProxyInfo info; |
1204 TestCompletionCallback callback1; | 1221 TestCompletionCallback callback1; |
1205 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 1222 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
1206 NULL, NULL, BoundNetLog()); | 1223 NULL, NULL, BoundNetLog()); |
1207 EXPECT_EQ(ERR_IO_PENDING, rv); | 1224 EXPECT_EQ(ERR_IO_PENDING, rv); |
1208 | 1225 |
(...skipping 51 matching lines...) Loading... |
1260 TEST_F(ProxyServiceTest, ProxyFallback_NewSettings) { | 1277 TEST_F(ProxyServiceTest, ProxyFallback_NewSettings) { |
1261 // Test proxy failover when new settings are available. | 1278 // Test proxy failover when new settings are available. |
1262 | 1279 |
1263 MockProxyConfigService* config_service = | 1280 MockProxyConfigService* config_service = |
1264 new MockProxyConfigService("http://foopy/proxy.pac"); | 1281 new MockProxyConfigService("http://foopy/proxy.pac"); |
1265 | 1282 |
1266 MockAsyncProxyResolver resolver; | 1283 MockAsyncProxyResolver resolver; |
1267 MockAsyncProxyResolverFactory* factory = | 1284 MockAsyncProxyResolverFactory* factory = |
1268 new MockAsyncProxyResolverFactory(false); | 1285 new MockAsyncProxyResolverFactory(false); |
1269 | 1286 |
1270 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1287 ProxyService service(make_scoped_ptr(config_service), |
| 1288 make_scoped_ptr(factory), NULL); |
1271 | 1289 |
1272 GURL url("http://www.google.com/"); | 1290 GURL url("http://www.google.com/"); |
1273 | 1291 |
1274 // Get the proxy information. | 1292 // Get the proxy information. |
1275 ProxyInfo info; | 1293 ProxyInfo info; |
1276 TestCompletionCallback callback1; | 1294 TestCompletionCallback callback1; |
1277 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 1295 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
1278 NULL, NULL, BoundNetLog()); | 1296 NULL, NULL, BoundNetLog()); |
1279 EXPECT_EQ(ERR_IO_PENDING, rv); | 1297 EXPECT_EQ(ERR_IO_PENDING, rv); |
1280 | 1298 |
(...skipping 81 matching lines...) Loading... |
1362 TEST_F(ProxyServiceTest, ProxyFallback_BadConfig) { | 1380 TEST_F(ProxyServiceTest, ProxyFallback_BadConfig) { |
1363 // Test proxy failover when the configuration is bad. | 1381 // Test proxy failover when the configuration is bad. |
1364 | 1382 |
1365 MockProxyConfigService* config_service = | 1383 MockProxyConfigService* config_service = |
1366 new MockProxyConfigService("http://foopy/proxy.pac"); | 1384 new MockProxyConfigService("http://foopy/proxy.pac"); |
1367 | 1385 |
1368 MockAsyncProxyResolver resolver; | 1386 MockAsyncProxyResolver resolver; |
1369 MockAsyncProxyResolverFactory* factory = | 1387 MockAsyncProxyResolverFactory* factory = |
1370 new MockAsyncProxyResolverFactory(false); | 1388 new MockAsyncProxyResolverFactory(false); |
1371 | 1389 |
1372 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1390 ProxyService service(make_scoped_ptr(config_service), |
| 1391 make_scoped_ptr(factory), NULL); |
1373 | 1392 |
1374 GURL url("http://www.google.com/"); | 1393 GURL url("http://www.google.com/"); |
1375 | 1394 |
1376 // Get the proxy information. | 1395 // Get the proxy information. |
1377 ProxyInfo info; | 1396 ProxyInfo info; |
1378 TestCompletionCallback callback1; | 1397 TestCompletionCallback callback1; |
1379 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 1398 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
1380 NULL, NULL, BoundNetLog()); | 1399 NULL, NULL, BoundNetLog()); |
1381 EXPECT_EQ(ERR_IO_PENDING, rv); | 1400 EXPECT_EQ(ERR_IO_PENDING, rv); |
1382 | 1401 |
(...skipping 76 matching lines...) Loading... |
1459 ProxyConfig config( | 1478 ProxyConfig config( |
1460 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac"))); | 1479 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac"))); |
1461 | 1480 |
1462 config.set_pac_mandatory(true); | 1481 config.set_pac_mandatory(true); |
1463 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1482 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
1464 | 1483 |
1465 MockAsyncProxyResolver resolver; | 1484 MockAsyncProxyResolver resolver; |
1466 MockAsyncProxyResolverFactory* factory = | 1485 MockAsyncProxyResolverFactory* factory = |
1467 new MockAsyncProxyResolverFactory(false); | 1486 new MockAsyncProxyResolverFactory(false); |
1468 | 1487 |
1469 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1488 ProxyService service(make_scoped_ptr(config_service), |
| 1489 make_scoped_ptr(factory), NULL); |
1470 | 1490 |
1471 GURL url("http://www.google.com/"); | 1491 GURL url("http://www.google.com/"); |
1472 | 1492 |
1473 // Get the proxy information. | 1493 // Get the proxy information. |
1474 ProxyInfo info; | 1494 ProxyInfo info; |
1475 TestCompletionCallback callback1; | 1495 TestCompletionCallback callback1; |
1476 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 1496 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
1477 NULL, NULL, BoundNetLog()); | 1497 NULL, NULL, BoundNetLog()); |
1478 EXPECT_EQ(ERR_IO_PENDING, rv); | 1498 EXPECT_EQ(ERR_IO_PENDING, rv); |
1479 | 1499 |
(...skipping 70 matching lines...) Loading... |
1550 TEST_F(ProxyServiceTest, ProxyBypassList) { | 1570 TEST_F(ProxyServiceTest, ProxyBypassList) { |
1551 // Test that the proxy bypass rules are consulted. | 1571 // Test that the proxy bypass rules are consulted. |
1552 | 1572 |
1553 TestCompletionCallback callback[2]; | 1573 TestCompletionCallback callback[2]; |
1554 ProxyInfo info[2]; | 1574 ProxyInfo info[2]; |
1555 ProxyConfig config; | 1575 ProxyConfig config; |
1556 config.proxy_rules().ParseFromString("foopy1:8080;foopy2:9090"); | 1576 config.proxy_rules().ParseFromString("foopy1:8080;foopy2:9090"); |
1557 config.set_auto_detect(false); | 1577 config.set_auto_detect(false); |
1558 config.proxy_rules().bypass_rules.ParseFromString("*.org"); | 1578 config.proxy_rules().bypass_rules.ParseFromString("*.org"); |
1559 | 1579 |
1560 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1580 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1581 nullptr, NULL); |
1561 | 1582 |
1562 int rv; | 1583 int rv; |
1563 GURL url1("http://www.webkit.org"); | 1584 GURL url1("http://www.webkit.org"); |
1564 GURL url2("http://www.webkit.com"); | 1585 GURL url2("http://www.webkit.com"); |
1565 | 1586 |
1566 // Request for a .org domain should bypass proxy. | 1587 // Request for a .org domain should bypass proxy. |
1567 rv = service.ResolveProxy(url1, LOAD_NORMAL, &info[0], callback[0].callback(), | 1588 rv = service.ResolveProxy(url1, LOAD_NORMAL, &info[0], callback[0].callback(), |
1568 NULL, NULL, BoundNetLog()); | 1589 NULL, NULL, BoundNetLog()); |
1569 EXPECT_EQ(OK, rv); | 1590 EXPECT_EQ(OK, rv); |
1570 EXPECT_TRUE(info[0].is_direct()); | 1591 EXPECT_TRUE(info[0].is_direct()); |
(...skipping 17 matching lines...) Loading... |
1588 config.proxy_rules().proxies_for_http.GetAll()) { | 1609 config.proxy_rules().proxies_for_http.GetAll()) { |
1589 proxy_list.AddProxyServer(proxy_server); | 1610 proxy_list.AddProxyServer(proxy_server); |
1590 if (proxy_server == config.proxy_rules().proxies_for_http.Get()) | 1611 if (proxy_server == config.proxy_rules().proxies_for_http.Get()) |
1591 continue; | 1612 continue; |
1592 | 1613 |
1593 additional_bad_proxies.push_back(proxy_server); | 1614 additional_bad_proxies.push_back(proxy_server); |
1594 } | 1615 } |
1595 | 1616 |
1596 EXPECT_EQ(3u, additional_bad_proxies.size()); | 1617 EXPECT_EQ(3u, additional_bad_proxies.size()); |
1597 | 1618 |
1598 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1619 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1620 nullptr, NULL); |
1599 ProxyInfo proxy_info; | 1621 ProxyInfo proxy_info; |
1600 proxy_info.UseProxyList(proxy_list); | 1622 proxy_info.UseProxyList(proxy_list); |
1601 const ProxyRetryInfoMap& retry_info = service.proxy_retry_info(); | 1623 const ProxyRetryInfoMap& retry_info = service.proxy_retry_info(); |
1602 service.MarkProxiesAsBadUntil(proxy_info, base::TimeDelta::FromSeconds(1), | 1624 service.MarkProxiesAsBadUntil(proxy_info, base::TimeDelta::FromSeconds(1), |
1603 additional_bad_proxies, BoundNetLog()); | 1625 additional_bad_proxies, BoundNetLog()); |
1604 ASSERT_EQ(4u, retry_info.size()); | 1626 ASSERT_EQ(4u, retry_info.size()); |
1605 for (const ProxyServer& proxy_server : | 1627 for (const ProxyServer& proxy_server : |
1606 config.proxy_rules().proxies_for_http.GetAll()) { | 1628 config.proxy_rules().proxies_for_http.GetAll()) { |
1607 ProxyRetryInfoMap::const_iterator i = | 1629 ProxyRetryInfoMap::const_iterator i = |
1608 retry_info.find(proxy_server.host_port_pair().ToString()); | 1630 retry_info.find(proxy_server.host_port_pair().ToString()); |
1609 ASSERT_TRUE(i != retry_info.end()); | 1631 ASSERT_TRUE(i != retry_info.end()); |
1610 } | 1632 } |
1611 } | 1633 } |
1612 | 1634 |
1613 TEST_F(ProxyServiceTest, PerProtocolProxyTests) { | 1635 TEST_F(ProxyServiceTest, PerProtocolProxyTests) { |
1614 ProxyConfig config; | 1636 ProxyConfig config; |
1615 config.proxy_rules().ParseFromString("http=foopy1:8080;https=foopy2:8080"); | 1637 config.proxy_rules().ParseFromString("http=foopy1:8080;https=foopy2:8080"); |
1616 config.set_auto_detect(false); | 1638 config.set_auto_detect(false); |
1617 { | 1639 { |
1618 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1640 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1641 nullptr, NULL); |
1619 GURL test_url("http://www.msn.com"); | 1642 GURL test_url("http://www.msn.com"); |
1620 ProxyInfo info; | 1643 ProxyInfo info; |
1621 TestCompletionCallback callback; | 1644 TestCompletionCallback callback; |
1622 int rv = | 1645 int rv = |
1623 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1646 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1624 NULL, NULL, BoundNetLog()); | 1647 NULL, NULL, BoundNetLog()); |
1625 EXPECT_EQ(OK, rv); | 1648 EXPECT_EQ(OK, rv); |
1626 EXPECT_FALSE(info.is_direct()); | 1649 EXPECT_FALSE(info.is_direct()); |
1627 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 1650 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
1628 } | 1651 } |
1629 { | 1652 { |
1630 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1653 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1654 nullptr, NULL); |
1631 GURL test_url("ftp://ftp.google.com"); | 1655 GURL test_url("ftp://ftp.google.com"); |
1632 ProxyInfo info; | 1656 ProxyInfo info; |
1633 TestCompletionCallback callback; | 1657 TestCompletionCallback callback; |
1634 int rv = | 1658 int rv = |
1635 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1659 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1636 NULL, NULL, BoundNetLog()); | 1660 NULL, NULL, BoundNetLog()); |
1637 EXPECT_EQ(OK, rv); | 1661 EXPECT_EQ(OK, rv); |
1638 EXPECT_TRUE(info.is_direct()); | 1662 EXPECT_TRUE(info.is_direct()); |
1639 EXPECT_EQ("direct://", info.proxy_server().ToURI()); | 1663 EXPECT_EQ("direct://", info.proxy_server().ToURI()); |
1640 } | 1664 } |
1641 { | 1665 { |
1642 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1666 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1667 nullptr, NULL); |
1643 GURL test_url("https://webbranch.techcu.com"); | 1668 GURL test_url("https://webbranch.techcu.com"); |
1644 ProxyInfo info; | 1669 ProxyInfo info; |
1645 TestCompletionCallback callback; | 1670 TestCompletionCallback callback; |
1646 int rv = | 1671 int rv = |
1647 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1672 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1648 NULL, NULL, BoundNetLog()); | 1673 NULL, NULL, BoundNetLog()); |
1649 EXPECT_EQ(OK, rv); | 1674 EXPECT_EQ(OK, rv); |
1650 EXPECT_FALSE(info.is_direct()); | 1675 EXPECT_FALSE(info.is_direct()); |
1651 EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); | 1676 EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); |
1652 } | 1677 } |
1653 { | 1678 { |
1654 config.proxy_rules().ParseFromString("foopy1:8080"); | 1679 config.proxy_rules().ParseFromString("foopy1:8080"); |
1655 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1680 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1681 nullptr, NULL); |
1656 GURL test_url("http://www.microsoft.com"); | 1682 GURL test_url("http://www.microsoft.com"); |
1657 ProxyInfo info; | 1683 ProxyInfo info; |
1658 TestCompletionCallback callback; | 1684 TestCompletionCallback callback; |
1659 int rv = | 1685 int rv = |
1660 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1686 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1661 NULL, NULL, BoundNetLog()); | 1687 NULL, NULL, BoundNetLog()); |
1662 EXPECT_EQ(OK, rv); | 1688 EXPECT_EQ(OK, rv); |
1663 EXPECT_FALSE(info.is_direct()); | 1689 EXPECT_FALSE(info.is_direct()); |
1664 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 1690 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
1665 } | 1691 } |
1666 } | 1692 } |
1667 | 1693 |
1668 TEST_F(ProxyServiceTest, ProxyConfigSourcePropagates) { | 1694 TEST_F(ProxyServiceTest, ProxyConfigSourcePropagates) { |
1669 // Test that the proxy config source is set correctly when resolving proxies | 1695 // Test that the proxy config source is set correctly when resolving proxies |
1670 // using manual proxy rules. Namely, the config source should only be set if | 1696 // using manual proxy rules. Namely, the config source should only be set if |
1671 // any of the rules were applied. | 1697 // any of the rules were applied. |
1672 { | 1698 { |
1673 ProxyConfig config; | 1699 ProxyConfig config; |
1674 config.set_source(PROXY_CONFIG_SOURCE_TEST); | 1700 config.set_source(PROXY_CONFIG_SOURCE_TEST); |
1675 config.proxy_rules().ParseFromString("https=foopy2:8080"); | 1701 config.proxy_rules().ParseFromString("https=foopy2:8080"); |
1676 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1702 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1703 nullptr, NULL); |
1677 GURL test_url("http://www.google.com"); | 1704 GURL test_url("http://www.google.com"); |
1678 ProxyInfo info; | 1705 ProxyInfo info; |
1679 TestCompletionCallback callback; | 1706 TestCompletionCallback callback; |
1680 int rv = | 1707 int rv = |
1681 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1708 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1682 NULL, NULL, BoundNetLog()); | 1709 NULL, NULL, BoundNetLog()); |
1683 ASSERT_EQ(OK, rv); | 1710 ASSERT_EQ(OK, rv); |
1684 // Should be SOURCE_TEST, even if there are no HTTP proxies configured. | 1711 // Should be SOURCE_TEST, even if there are no HTTP proxies configured. |
1685 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); | 1712 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); |
1686 } | 1713 } |
1687 { | 1714 { |
1688 ProxyConfig config; | 1715 ProxyConfig config; |
1689 config.set_source(PROXY_CONFIG_SOURCE_TEST); | 1716 config.set_source(PROXY_CONFIG_SOURCE_TEST); |
1690 config.proxy_rules().ParseFromString("https=foopy2:8080"); | 1717 config.proxy_rules().ParseFromString("https=foopy2:8080"); |
1691 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1718 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1719 nullptr, NULL); |
1692 GURL test_url("https://www.google.com"); | 1720 GURL test_url("https://www.google.com"); |
1693 ProxyInfo info; | 1721 ProxyInfo info; |
1694 TestCompletionCallback callback; | 1722 TestCompletionCallback callback; |
1695 int rv = | 1723 int rv = |
1696 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1724 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1697 NULL, NULL, BoundNetLog()); | 1725 NULL, NULL, BoundNetLog()); |
1698 ASSERT_EQ(OK, rv); | 1726 ASSERT_EQ(OK, rv); |
1699 // Used the HTTPS proxy. So source should be TEST. | 1727 // Used the HTTPS proxy. So source should be TEST. |
1700 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); | 1728 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); |
1701 } | 1729 } |
1702 { | 1730 { |
1703 ProxyConfig config; | 1731 ProxyConfig config; |
1704 config.set_source(PROXY_CONFIG_SOURCE_TEST); | 1732 config.set_source(PROXY_CONFIG_SOURCE_TEST); |
1705 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1733 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1734 nullptr, NULL); |
1706 GURL test_url("http://www.google.com"); | 1735 GURL test_url("http://www.google.com"); |
1707 ProxyInfo info; | 1736 ProxyInfo info; |
1708 TestCompletionCallback callback; | 1737 TestCompletionCallback callback; |
1709 int rv = | 1738 int rv = |
1710 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1739 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1711 NULL, NULL, BoundNetLog()); | 1740 NULL, NULL, BoundNetLog()); |
1712 ASSERT_EQ(OK, rv); | 1741 ASSERT_EQ(OK, rv); |
1713 // ProxyConfig is empty. Source should still be TEST. | 1742 // ProxyConfig is empty. Source should still be TEST. |
1714 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); | 1743 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); |
1715 } | 1744 } |
1716 } | 1745 } |
1717 | 1746 |
1718 // If only HTTP and a SOCKS proxy are specified, check if ftp/https queries | 1747 // If only HTTP and a SOCKS proxy are specified, check if ftp/https queries |
1719 // fall back to the SOCKS proxy. | 1748 // fall back to the SOCKS proxy. |
1720 TEST_F(ProxyServiceTest, DefaultProxyFallbackToSOCKS) { | 1749 TEST_F(ProxyServiceTest, DefaultProxyFallbackToSOCKS) { |
1721 ProxyConfig config; | 1750 ProxyConfig config; |
1722 config.proxy_rules().ParseFromString("http=foopy1:8080;socks=foopy2:1080"); | 1751 config.proxy_rules().ParseFromString("http=foopy1:8080;socks=foopy2:1080"); |
1723 config.set_auto_detect(false); | 1752 config.set_auto_detect(false); |
1724 EXPECT_EQ(ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME, | 1753 EXPECT_EQ(ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME, |
1725 config.proxy_rules().type); | 1754 config.proxy_rules().type); |
1726 | 1755 |
1727 { | 1756 { |
1728 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1757 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1758 nullptr, NULL); |
1729 GURL test_url("http://www.msn.com"); | 1759 GURL test_url("http://www.msn.com"); |
1730 ProxyInfo info; | 1760 ProxyInfo info; |
1731 TestCompletionCallback callback; | 1761 TestCompletionCallback callback; |
1732 int rv = | 1762 int rv = |
1733 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1763 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1734 NULL, NULL, BoundNetLog()); | 1764 NULL, NULL, BoundNetLog()); |
1735 EXPECT_EQ(OK, rv); | 1765 EXPECT_EQ(OK, rv); |
1736 EXPECT_FALSE(info.is_direct()); | 1766 EXPECT_FALSE(info.is_direct()); |
1737 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 1767 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
1738 } | 1768 } |
1739 { | 1769 { |
1740 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1770 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1771 nullptr, NULL); |
1741 GURL test_url("ftp://ftp.google.com"); | 1772 GURL test_url("ftp://ftp.google.com"); |
1742 ProxyInfo info; | 1773 ProxyInfo info; |
1743 TestCompletionCallback callback; | 1774 TestCompletionCallback callback; |
1744 int rv = | 1775 int rv = |
1745 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1776 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1746 NULL, NULL, BoundNetLog()); | 1777 NULL, NULL, BoundNetLog()); |
1747 EXPECT_EQ(OK, rv); | 1778 EXPECT_EQ(OK, rv); |
1748 EXPECT_FALSE(info.is_direct()); | 1779 EXPECT_FALSE(info.is_direct()); |
1749 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); | 1780 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); |
1750 } | 1781 } |
1751 { | 1782 { |
1752 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1783 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1784 nullptr, NULL); |
1753 GURL test_url("https://webbranch.techcu.com"); | 1785 GURL test_url("https://webbranch.techcu.com"); |
1754 ProxyInfo info; | 1786 ProxyInfo info; |
1755 TestCompletionCallback callback; | 1787 TestCompletionCallback callback; |
1756 int rv = | 1788 int rv = |
1757 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1789 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1758 NULL, NULL, BoundNetLog()); | 1790 NULL, NULL, BoundNetLog()); |
1759 EXPECT_EQ(OK, rv); | 1791 EXPECT_EQ(OK, rv); |
1760 EXPECT_FALSE(info.is_direct()); | 1792 EXPECT_FALSE(info.is_direct()); |
1761 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); | 1793 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); |
1762 } | 1794 } |
1763 { | 1795 { |
1764 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1796 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1797 nullptr, NULL); |
1765 GURL test_url("unknown://www.microsoft.com"); | 1798 GURL test_url("unknown://www.microsoft.com"); |
1766 ProxyInfo info; | 1799 ProxyInfo info; |
1767 TestCompletionCallback callback; | 1800 TestCompletionCallback callback; |
1768 int rv = | 1801 int rv = |
1769 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1802 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1770 NULL, NULL, BoundNetLog()); | 1803 NULL, NULL, BoundNetLog()); |
1771 EXPECT_EQ(OK, rv); | 1804 EXPECT_EQ(OK, rv); |
1772 EXPECT_FALSE(info.is_direct()); | 1805 EXPECT_FALSE(info.is_direct()); |
1773 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); | 1806 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); |
1774 } | 1807 } |
1775 } | 1808 } |
1776 | 1809 |
1777 // Test cancellation of an in-progress request. | 1810 // Test cancellation of an in-progress request. |
1778 TEST_F(ProxyServiceTest, CancelInProgressRequest) { | 1811 TEST_F(ProxyServiceTest, CancelInProgressRequest) { |
1779 MockProxyConfigService* config_service = | 1812 MockProxyConfigService* config_service = |
1780 new MockProxyConfigService("http://foopy/proxy.pac"); | 1813 new MockProxyConfigService("http://foopy/proxy.pac"); |
1781 | 1814 |
1782 MockAsyncProxyResolver resolver; | 1815 MockAsyncProxyResolver resolver; |
1783 MockAsyncProxyResolverFactory* factory = | 1816 MockAsyncProxyResolverFactory* factory = |
1784 new MockAsyncProxyResolverFactory(false); | 1817 new MockAsyncProxyResolverFactory(false); |
1785 | 1818 |
1786 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1819 ProxyService service(make_scoped_ptr(config_service), |
| 1820 make_scoped_ptr(factory), NULL); |
1787 | 1821 |
1788 // Start 3 requests. | 1822 // Start 3 requests. |
1789 | 1823 |
1790 ProxyInfo info1; | 1824 ProxyInfo info1; |
1791 TestCompletionCallback callback1; | 1825 TestCompletionCallback callback1; |
1792 int rv = | 1826 int rv = |
1793 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, | 1827 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, |
1794 callback1.callback(), NULL, NULL, BoundNetLog()); | 1828 callback1.callback(), NULL, NULL, BoundNetLog()); |
1795 EXPECT_EQ(ERR_IO_PENDING, rv); | 1829 EXPECT_EQ(ERR_IO_PENDING, rv); |
1796 | 1830 |
(...skipping 52 matching lines...) Loading... |
1849 | 1883 |
1850 // Test the initial PAC download for resolver that expects bytes. | 1884 // Test the initial PAC download for resolver that expects bytes. |
1851 TEST_F(ProxyServiceTest, InitialPACScriptDownload) { | 1885 TEST_F(ProxyServiceTest, InitialPACScriptDownload) { |
1852 MockProxyConfigService* config_service = | 1886 MockProxyConfigService* config_service = |
1853 new MockProxyConfigService("http://foopy/proxy.pac"); | 1887 new MockProxyConfigService("http://foopy/proxy.pac"); |
1854 | 1888 |
1855 MockAsyncProxyResolver resolver; | 1889 MockAsyncProxyResolver resolver; |
1856 MockAsyncProxyResolverFactory* factory = | 1890 MockAsyncProxyResolverFactory* factory = |
1857 new MockAsyncProxyResolverFactory(true); | 1891 new MockAsyncProxyResolverFactory(true); |
1858 | 1892 |
1859 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1893 ProxyService service(make_scoped_ptr(config_service), |
| 1894 make_scoped_ptr(factory), NULL); |
1860 | 1895 |
1861 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1896 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
1862 service.SetProxyScriptFetchers(fetcher, | 1897 service.SetProxyScriptFetchers(fetcher, |
1863 new DoNothingDhcpProxyScriptFetcher()); | 1898 new DoNothingDhcpProxyScriptFetcher()); |
1864 | 1899 |
1865 // Start 3 requests. | 1900 // Start 3 requests. |
1866 | 1901 |
1867 ProxyInfo info1; | 1902 ProxyInfo info1; |
1868 TestCompletionCallback callback1; | 1903 TestCompletionCallback callback1; |
1869 ProxyService::PacRequest* request1; | 1904 ProxyService::PacRequest* request1; |
(...skipping 86 matching lines...) Loading... |
1956 | 1991 |
1957 // Test changing the ProxyScriptFetcher while PAC download is in progress. | 1992 // Test changing the ProxyScriptFetcher while PAC download is in progress. |
1958 TEST_F(ProxyServiceTest, ChangeScriptFetcherWhilePACDownloadInProgress) { | 1993 TEST_F(ProxyServiceTest, ChangeScriptFetcherWhilePACDownloadInProgress) { |
1959 MockProxyConfigService* config_service = | 1994 MockProxyConfigService* config_service = |
1960 new MockProxyConfigService("http://foopy/proxy.pac"); | 1995 new MockProxyConfigService("http://foopy/proxy.pac"); |
1961 | 1996 |
1962 MockAsyncProxyResolver resolver; | 1997 MockAsyncProxyResolver resolver; |
1963 MockAsyncProxyResolverFactory* factory = | 1998 MockAsyncProxyResolverFactory* factory = |
1964 new MockAsyncProxyResolverFactory(true); | 1999 new MockAsyncProxyResolverFactory(true); |
1965 | 2000 |
1966 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2001 ProxyService service(make_scoped_ptr(config_service), |
| 2002 make_scoped_ptr(factory), NULL); |
1967 | 2003 |
1968 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2004 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
1969 service.SetProxyScriptFetchers(fetcher, | 2005 service.SetProxyScriptFetchers(fetcher, |
1970 new DoNothingDhcpProxyScriptFetcher()); | 2006 new DoNothingDhcpProxyScriptFetcher()); |
1971 | 2007 |
1972 // Start 2 requests. | 2008 // Start 2 requests. |
1973 | 2009 |
1974 ProxyInfo info1; | 2010 ProxyInfo info1; |
1975 TestCompletionCallback callback1; | 2011 TestCompletionCallback callback1; |
1976 int rv = | 2012 int rv = |
(...skipping 40 matching lines...) Loading... |
2017 | 2053 |
2018 // Test cancellation of a request, while the PAC script is being fetched. | 2054 // Test cancellation of a request, while the PAC script is being fetched. |
2019 TEST_F(ProxyServiceTest, CancelWhilePACFetching) { | 2055 TEST_F(ProxyServiceTest, CancelWhilePACFetching) { |
2020 MockProxyConfigService* config_service = | 2056 MockProxyConfigService* config_service = |
2021 new MockProxyConfigService("http://foopy/proxy.pac"); | 2057 new MockProxyConfigService("http://foopy/proxy.pac"); |
2022 | 2058 |
2023 MockAsyncProxyResolver resolver; | 2059 MockAsyncProxyResolver resolver; |
2024 MockAsyncProxyResolverFactory* factory = | 2060 MockAsyncProxyResolverFactory* factory = |
2025 new MockAsyncProxyResolverFactory(true); | 2061 new MockAsyncProxyResolverFactory(true); |
2026 | 2062 |
2027 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2063 ProxyService service(make_scoped_ptr(config_service), |
| 2064 make_scoped_ptr(factory), NULL); |
2028 | 2065 |
2029 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2066 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2030 service.SetProxyScriptFetchers(fetcher, | 2067 service.SetProxyScriptFetchers(fetcher, |
2031 new DoNothingDhcpProxyScriptFetcher()); | 2068 new DoNothingDhcpProxyScriptFetcher()); |
2032 | 2069 |
2033 // Start 3 requests. | 2070 // Start 3 requests. |
2034 ProxyInfo info1; | 2071 ProxyInfo info1; |
2035 TestCompletionCallback callback1; | 2072 TestCompletionCallback callback1; |
2036 ProxyService::PacRequest* request1; | 2073 ProxyService::PacRequest* request1; |
2037 BoundTestNetLog log1; | 2074 BoundTestNetLog log1; |
(...skipping 74 matching lines...) Loading... |
2112 TEST_F(ProxyServiceTest, FallbackFromAutodetectToCustomPac) { | 2149 TEST_F(ProxyServiceTest, FallbackFromAutodetectToCustomPac) { |
2113 ProxyConfig config; | 2150 ProxyConfig config; |
2114 config.set_auto_detect(true); | 2151 config.set_auto_detect(true); |
2115 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 2152 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
2116 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. | 2153 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. |
2117 | 2154 |
2118 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 2155 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
2119 MockAsyncProxyResolver resolver; | 2156 MockAsyncProxyResolver resolver; |
2120 MockAsyncProxyResolverFactory* factory = | 2157 MockAsyncProxyResolverFactory* factory = |
2121 new MockAsyncProxyResolverFactory(true); | 2158 new MockAsyncProxyResolverFactory(true); |
2122 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2159 ProxyService service(make_scoped_ptr(config_service), |
| 2160 make_scoped_ptr(factory), NULL); |
2123 | 2161 |
2124 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2162 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2125 service.SetProxyScriptFetchers(fetcher, | 2163 service.SetProxyScriptFetchers(fetcher, |
2126 new DoNothingDhcpProxyScriptFetcher()); | 2164 new DoNothingDhcpProxyScriptFetcher()); |
2127 | 2165 |
2128 // Start 2 requests. | 2166 // Start 2 requests. |
2129 | 2167 |
2130 ProxyInfo info1; | 2168 ProxyInfo info1; |
2131 TestCompletionCallback callback1; | 2169 TestCompletionCallback callback1; |
2132 int rv = | 2170 int rv = |
(...skipping 59 matching lines...) Loading... |
2192 TEST_F(ProxyServiceTest, FallbackFromAutodetectToCustomPac2) { | 2230 TEST_F(ProxyServiceTest, FallbackFromAutodetectToCustomPac2) { |
2193 ProxyConfig config; | 2231 ProxyConfig config; |
2194 config.set_auto_detect(true); | 2232 config.set_auto_detect(true); |
2195 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 2233 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
2196 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. | 2234 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. |
2197 | 2235 |
2198 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 2236 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
2199 MockAsyncProxyResolver resolver; | 2237 MockAsyncProxyResolver resolver; |
2200 MockAsyncProxyResolverFactory* factory = | 2238 MockAsyncProxyResolverFactory* factory = |
2201 new MockAsyncProxyResolverFactory(true); | 2239 new MockAsyncProxyResolverFactory(true); |
2202 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2240 ProxyService service(make_scoped_ptr(config_service), |
| 2241 make_scoped_ptr(factory), NULL); |
2203 | 2242 |
2204 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2243 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2205 service.SetProxyScriptFetchers(fetcher, | 2244 service.SetProxyScriptFetchers(fetcher, |
2206 new DoNothingDhcpProxyScriptFetcher()); | 2245 new DoNothingDhcpProxyScriptFetcher()); |
2207 | 2246 |
2208 // Start 2 requests. | 2247 // Start 2 requests. |
2209 | 2248 |
2210 ProxyInfo info1; | 2249 ProxyInfo info1; |
2211 TestCompletionCallback callback1; | 2250 TestCompletionCallback callback1; |
2212 int rv = | 2251 int rv = |
(...skipping 54 matching lines...) Loading... |
2267 // are given, then we will try them in that order. | 2306 // are given, then we will try them in that order. |
2268 TEST_F(ProxyServiceTest, FallbackFromAutodetectToCustomToManual) { | 2307 TEST_F(ProxyServiceTest, FallbackFromAutodetectToCustomToManual) { |
2269 ProxyConfig config; | 2308 ProxyConfig config; |
2270 config.set_auto_detect(true); | 2309 config.set_auto_detect(true); |
2271 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 2310 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
2272 config.proxy_rules().ParseFromString("http=foopy:80"); | 2311 config.proxy_rules().ParseFromString("http=foopy:80"); |
2273 | 2312 |
2274 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 2313 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
2275 MockAsyncProxyResolverFactory* factory = | 2314 MockAsyncProxyResolverFactory* factory = |
2276 new MockAsyncProxyResolverFactory(true); | 2315 new MockAsyncProxyResolverFactory(true); |
2277 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2316 ProxyService service(make_scoped_ptr(config_service), |
| 2317 make_scoped_ptr(factory), NULL); |
2278 | 2318 |
2279 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2319 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2280 service.SetProxyScriptFetchers(fetcher, | 2320 service.SetProxyScriptFetchers(fetcher, |
2281 new DoNothingDhcpProxyScriptFetcher()); | 2321 new DoNothingDhcpProxyScriptFetcher()); |
2282 | 2322 |
2283 // Start 2 requests. | 2323 // Start 2 requests. |
2284 | 2324 |
2285 ProxyInfo info1; | 2325 ProxyInfo info1; |
2286 TestCompletionCallback callback1; | 2326 TestCompletionCallback callback1; |
2287 int rv = | 2327 int rv = |
(...skipping 40 matching lines...) Loading... |
2328 ProxyConfig config; | 2368 ProxyConfig config; |
2329 config.set_auto_detect(true); | 2369 config.set_auto_detect(true); |
2330 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 2370 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
2331 config.proxy_rules().ParseFromString("http=foopy:80"); // Not used. | 2371 config.proxy_rules().ParseFromString("http=foopy:80"); // Not used. |
2332 config.proxy_rules().bypass_rules.ParseFromString("www.google.com"); | 2372 config.proxy_rules().bypass_rules.ParseFromString("www.google.com"); |
2333 | 2373 |
2334 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 2374 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
2335 MockAsyncProxyResolver resolver; | 2375 MockAsyncProxyResolver resolver; |
2336 MockAsyncProxyResolverFactory* factory = | 2376 MockAsyncProxyResolverFactory* factory = |
2337 new MockAsyncProxyResolverFactory(true); | 2377 new MockAsyncProxyResolverFactory(true); |
2338 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2378 ProxyService service(make_scoped_ptr(config_service), |
| 2379 make_scoped_ptr(factory), NULL); |
2339 | 2380 |
2340 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2381 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2341 service.SetProxyScriptFetchers(fetcher, | 2382 service.SetProxyScriptFetchers(fetcher, |
2342 new DoNothingDhcpProxyScriptFetcher()); | 2383 new DoNothingDhcpProxyScriptFetcher()); |
2343 | 2384 |
2344 // Start 1 requests. | 2385 // Start 1 requests. |
2345 | 2386 |
2346 ProxyInfo info1; | 2387 ProxyInfo info1; |
2347 TestCompletionCallback callback1; | 2388 TestCompletionCallback callback1; |
2348 int rv = | 2389 int rv = |
(...skipping 48 matching lines...) Loading... |
2397 // request to the script fetcher. When run under valgrind, should not | 2438 // request to the script fetcher. When run under valgrind, should not |
2398 // have any memory errors (used to be that the ProxyScriptFetcher was | 2439 // have any memory errors (used to be that the ProxyScriptFetcher was |
2399 // being deleted prior to the InitProxyResolver). | 2440 // being deleted prior to the InitProxyResolver). |
2400 TEST_F(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingFetch) { | 2441 TEST_F(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingFetch) { |
2401 ProxyConfig config = | 2442 ProxyConfig config = |
2402 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac")); | 2443 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac")); |
2403 | 2444 |
2404 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 2445 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
2405 MockAsyncProxyResolverFactory* factory = | 2446 MockAsyncProxyResolverFactory* factory = |
2406 new MockAsyncProxyResolverFactory(true); | 2447 new MockAsyncProxyResolverFactory(true); |
2407 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2448 ProxyService service(make_scoped_ptr(config_service), |
| 2449 make_scoped_ptr(factory), NULL); |
2408 | 2450 |
2409 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2451 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2410 service.SetProxyScriptFetchers(fetcher, | 2452 service.SetProxyScriptFetchers(fetcher, |
2411 new DoNothingDhcpProxyScriptFetcher()); | 2453 new DoNothingDhcpProxyScriptFetcher()); |
2412 | 2454 |
2413 // Start 1 request. | 2455 // Start 1 request. |
2414 | 2456 |
2415 ProxyInfo info1; | 2457 ProxyInfo info1; |
2416 TestCompletionCallback callback1; | 2458 TestCompletionCallback callback1; |
2417 int rv = | 2459 int rv = |
(...skipping 14 matching lines...) Loading... |
2432 // request to the proxy resolver. When run under valgrind, should not | 2474 // request to the proxy resolver. When run under valgrind, should not |
2433 // have any memory errors (used to be that the ProxyResolver was | 2475 // have any memory errors (used to be that the ProxyResolver was |
2434 // being deleted prior to the InitProxyResolver). | 2476 // being deleted prior to the InitProxyResolver). |
2435 TEST_F(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingSet) { | 2477 TEST_F(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingSet) { |
2436 MockProxyConfigService* config_service = | 2478 MockProxyConfigService* config_service = |
2437 new MockProxyConfigService("http://foopy/proxy.pac"); | 2479 new MockProxyConfigService("http://foopy/proxy.pac"); |
2438 | 2480 |
2439 MockAsyncProxyResolverFactory* factory = | 2481 MockAsyncProxyResolverFactory* factory = |
2440 new MockAsyncProxyResolverFactory(false); | 2482 new MockAsyncProxyResolverFactory(false); |
2441 | 2483 |
2442 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2484 ProxyService service(make_scoped_ptr(config_service), |
| 2485 make_scoped_ptr(factory), NULL); |
2443 | 2486 |
2444 GURL url("http://www.google.com/"); | 2487 GURL url("http://www.google.com/"); |
2445 | 2488 |
2446 ProxyInfo info; | 2489 ProxyInfo info; |
2447 TestCompletionCallback callback; | 2490 TestCompletionCallback callback; |
2448 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), | 2491 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), |
2449 NULL, NULL, BoundNetLog()); | 2492 NULL, NULL, BoundNetLog()); |
2450 EXPECT_EQ(ERR_IO_PENDING, rv); | 2493 EXPECT_EQ(ERR_IO_PENDING, rv); |
2451 | 2494 |
2452 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 2495 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
2453 factory->pending_requests()[0]->script_data()->url()); | 2496 factory->pending_requests()[0]->script_data()->url()); |
2454 } | 2497 } |
2455 | 2498 |
2456 TEST_F(ProxyServiceTest, ResetProxyConfigService) { | 2499 TEST_F(ProxyServiceTest, ResetProxyConfigService) { |
2457 ProxyConfig config1; | 2500 ProxyConfig config1; |
2458 config1.proxy_rules().ParseFromString("foopy1:8080"); | 2501 config1.proxy_rules().ParseFromString("foopy1:8080"); |
2459 config1.set_auto_detect(false); | 2502 config1.set_auto_detect(false); |
2460 ProxyService service(new MockProxyConfigService(config1), nullptr, NULL); | 2503 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config1)), |
| 2504 nullptr, NULL); |
2461 | 2505 |
2462 ProxyInfo info; | 2506 ProxyInfo info; |
2463 TestCompletionCallback callback1; | 2507 TestCompletionCallback callback1; |
2464 int rv = | 2508 int rv = |
2465 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info, | 2509 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info, |
2466 callback1.callback(), NULL, NULL, BoundNetLog()); | 2510 callback1.callback(), NULL, NULL, BoundNetLog()); |
2467 EXPECT_EQ(OK, rv); | 2511 EXPECT_EQ(OK, rv); |
2468 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 2512 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
2469 | 2513 |
2470 ProxyConfig config2; | 2514 ProxyConfig config2; |
2471 config2.proxy_rules().ParseFromString("foopy2:8080"); | 2515 config2.proxy_rules().ParseFromString("foopy2:8080"); |
2472 config2.set_auto_detect(false); | 2516 config2.set_auto_detect(false); |
2473 service.ResetConfigService(new MockProxyConfigService(config2)); | 2517 service.ResetConfigService( |
| 2518 make_scoped_ptr(new MockProxyConfigService(config2))); |
2474 TestCompletionCallback callback2; | 2519 TestCompletionCallback callback2; |
2475 rv = service.ResolveProxy(GURL("http://request2"), LOAD_NORMAL, &info, | 2520 rv = service.ResolveProxy(GURL("http://request2"), LOAD_NORMAL, &info, |
2476 callback2.callback(), NULL, NULL, BoundNetLog()); | 2521 callback2.callback(), NULL, NULL, BoundNetLog()); |
2477 EXPECT_EQ(OK, rv); | 2522 EXPECT_EQ(OK, rv); |
2478 EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); | 2523 EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); |
2479 } | 2524 } |
2480 | 2525 |
2481 // Test that when going from a configuration that required PAC to one | 2526 // Test that when going from a configuration that required PAC to one |
2482 // that does NOT, we unset the variable |should_use_proxy_resolver_|. | 2527 // that does NOT, we unset the variable |should_use_proxy_resolver_|. |
2483 TEST_F(ProxyServiceTest, UpdateConfigFromPACToDirect) { | 2528 TEST_F(ProxyServiceTest, UpdateConfigFromPACToDirect) { |
2484 ProxyConfig config = ProxyConfig::CreateAutoDetect(); | 2529 ProxyConfig config = ProxyConfig::CreateAutoDetect(); |
2485 | 2530 |
2486 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 2531 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
2487 MockAsyncProxyResolver resolver; | 2532 MockAsyncProxyResolver resolver; |
2488 MockAsyncProxyResolverFactory* factory = | 2533 MockAsyncProxyResolverFactory* factory = |
2489 new MockAsyncProxyResolverFactory(false); | 2534 new MockAsyncProxyResolverFactory(false); |
2490 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2535 ProxyService service(make_scoped_ptr(config_service), |
| 2536 make_scoped_ptr(factory), NULL); |
2491 | 2537 |
2492 // Start 1 request. | 2538 // Start 1 request. |
2493 | 2539 |
2494 ProxyInfo info1; | 2540 ProxyInfo info1; |
2495 TestCompletionCallback callback1; | 2541 TestCompletionCallback callback1; |
2496 int rv = | 2542 int rv = |
2497 service.ResolveProxy(GURL("http://www.google.com"), LOAD_NORMAL, &info1, | 2543 service.ResolveProxy(GURL("http://www.google.com"), LOAD_NORMAL, &info1, |
2498 callback1.callback(), NULL, NULL, BoundNetLog()); | 2544 callback1.callback(), NULL, NULL, BoundNetLog()); |
2499 EXPECT_EQ(ERR_IO_PENDING, rv); | 2545 EXPECT_EQ(ERR_IO_PENDING, rv); |
2500 | 2546 |
(...skipping 31 matching lines...) Loading... |
2532 TEST_F(ProxyServiceTest, NetworkChangeTriggersPacRefetch) { | 2578 TEST_F(ProxyServiceTest, NetworkChangeTriggersPacRefetch) { |
2533 MockProxyConfigService* config_service = | 2579 MockProxyConfigService* config_service = |
2534 new MockProxyConfigService("http://foopy/proxy.pac"); | 2580 new MockProxyConfigService("http://foopy/proxy.pac"); |
2535 | 2581 |
2536 MockAsyncProxyResolver resolver; | 2582 MockAsyncProxyResolver resolver; |
2537 MockAsyncProxyResolverFactory* factory = | 2583 MockAsyncProxyResolverFactory* factory = |
2538 new MockAsyncProxyResolverFactory(true); | 2584 new MockAsyncProxyResolverFactory(true); |
2539 | 2585 |
2540 TestNetLog log; | 2586 TestNetLog log; |
2541 | 2587 |
2542 ProxyService service(config_service, make_scoped_ptr(factory), &log); | 2588 ProxyService service(make_scoped_ptr(config_service), |
| 2589 make_scoped_ptr(factory), &log); |
2543 | 2590 |
2544 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2591 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2545 service.SetProxyScriptFetchers(fetcher, | 2592 service.SetProxyScriptFetchers(fetcher, |
2546 new DoNothingDhcpProxyScriptFetcher()); | 2593 new DoNothingDhcpProxyScriptFetcher()); |
2547 | 2594 |
2548 // Disable the "wait after IP address changes" hack, so this unit-test can | 2595 // Disable the "wait after IP address changes" hack, so this unit-test can |
2549 // complete quickly. | 2596 // complete quickly. |
2550 service.set_stall_proxy_auto_config_delay(base::TimeDelta()); | 2597 service.set_stall_proxy_auto_config_delay(base::TimeDelta()); |
2551 | 2598 |
2552 // Start 1 request. | 2599 // Start 1 request. |
(...skipping 99 matching lines...) Loading... |
2652 ImmediatePollPolicy poll_policy; | 2699 ImmediatePollPolicy poll_policy; |
2653 ProxyService::set_pac_script_poll_policy(&poll_policy); | 2700 ProxyService::set_pac_script_poll_policy(&poll_policy); |
2654 | 2701 |
2655 MockProxyConfigService* config_service = | 2702 MockProxyConfigService* config_service = |
2656 new MockProxyConfigService("http://foopy/proxy.pac"); | 2703 new MockProxyConfigService("http://foopy/proxy.pac"); |
2657 | 2704 |
2658 MockAsyncProxyResolver resolver; | 2705 MockAsyncProxyResolver resolver; |
2659 MockAsyncProxyResolverFactory* factory = | 2706 MockAsyncProxyResolverFactory* factory = |
2660 new MockAsyncProxyResolverFactory(true); | 2707 new MockAsyncProxyResolverFactory(true); |
2661 | 2708 |
2662 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2709 ProxyService service(make_scoped_ptr(config_service), |
| 2710 make_scoped_ptr(factory), NULL); |
2663 | 2711 |
2664 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2712 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2665 service.SetProxyScriptFetchers(fetcher, | 2713 service.SetProxyScriptFetchers(fetcher, |
2666 new DoNothingDhcpProxyScriptFetcher()); | 2714 new DoNothingDhcpProxyScriptFetcher()); |
2667 | 2715 |
2668 // Start 1 request. | 2716 // Start 1 request. |
2669 | 2717 |
2670 ProxyInfo info1; | 2718 ProxyInfo info1; |
2671 TestCompletionCallback callback1; | 2719 TestCompletionCallback callback1; |
2672 int rv = | 2720 int rv = |
(...skipping 84 matching lines...) Loading... |
2757 ImmediatePollPolicy poll_policy; | 2805 ImmediatePollPolicy poll_policy; |
2758 ProxyService::set_pac_script_poll_policy(&poll_policy); | 2806 ProxyService::set_pac_script_poll_policy(&poll_policy); |
2759 | 2807 |
2760 MockProxyConfigService* config_service = | 2808 MockProxyConfigService* config_service = |
2761 new MockProxyConfigService("http://foopy/proxy.pac"); | 2809 new MockProxyConfigService("http://foopy/proxy.pac"); |
2762 | 2810 |
2763 MockAsyncProxyResolver resolver; | 2811 MockAsyncProxyResolver resolver; |
2764 MockAsyncProxyResolverFactory* factory = | 2812 MockAsyncProxyResolverFactory* factory = |
2765 new MockAsyncProxyResolverFactory(true); | 2813 new MockAsyncProxyResolverFactory(true); |
2766 | 2814 |
2767 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2815 ProxyService service(make_scoped_ptr(config_service), |
| 2816 make_scoped_ptr(factory), NULL); |
2768 | 2817 |
2769 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2818 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2770 service.SetProxyScriptFetchers(fetcher, | 2819 service.SetProxyScriptFetchers(fetcher, |
2771 new DoNothingDhcpProxyScriptFetcher()); | 2820 new DoNothingDhcpProxyScriptFetcher()); |
2772 | 2821 |
2773 // Start 1 request. | 2822 // Start 1 request. |
2774 | 2823 |
2775 ProxyInfo info1; | 2824 ProxyInfo info1; |
2776 TestCompletionCallback callback1; | 2825 TestCompletionCallback callback1; |
2777 int rv = | 2826 int rv = |
(...skipping 90 matching lines...) Loading... |
2868 ImmediatePollPolicy poll_policy; | 2917 ImmediatePollPolicy poll_policy; |
2869 ProxyService::set_pac_script_poll_policy(&poll_policy); | 2918 ProxyService::set_pac_script_poll_policy(&poll_policy); |
2870 | 2919 |
2871 MockProxyConfigService* config_service = | 2920 MockProxyConfigService* config_service = |
2872 new MockProxyConfigService("http://foopy/proxy.pac"); | 2921 new MockProxyConfigService("http://foopy/proxy.pac"); |
2873 | 2922 |
2874 MockAsyncProxyResolver resolver; | 2923 MockAsyncProxyResolver resolver; |
2875 MockAsyncProxyResolverFactory* factory = | 2924 MockAsyncProxyResolverFactory* factory = |
2876 new MockAsyncProxyResolverFactory(true); | 2925 new MockAsyncProxyResolverFactory(true); |
2877 | 2926 |
2878 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2927 ProxyService service(make_scoped_ptr(config_service), |
| 2928 make_scoped_ptr(factory), NULL); |
2879 | 2929 |
2880 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2930 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2881 service.SetProxyScriptFetchers(fetcher, | 2931 service.SetProxyScriptFetchers(fetcher, |
2882 new DoNothingDhcpProxyScriptFetcher()); | 2932 new DoNothingDhcpProxyScriptFetcher()); |
2883 | 2933 |
2884 // Start 1 request. | 2934 // Start 1 request. |
2885 | 2935 |
2886 ProxyInfo info1; | 2936 ProxyInfo info1; |
2887 TestCompletionCallback callback1; | 2937 TestCompletionCallback callback1; |
2888 int rv = | 2938 int rv = |
(...skipping 87 matching lines...) Loading... |
2976 ImmediatePollPolicy poll_policy; | 3026 ImmediatePollPolicy poll_policy; |
2977 ProxyService::set_pac_script_poll_policy(&poll_policy); | 3027 ProxyService::set_pac_script_poll_policy(&poll_policy); |
2978 | 3028 |
2979 MockProxyConfigService* config_service = | 3029 MockProxyConfigService* config_service = |
2980 new MockProxyConfigService("http://foopy/proxy.pac"); | 3030 new MockProxyConfigService("http://foopy/proxy.pac"); |
2981 | 3031 |
2982 MockAsyncProxyResolver resolver; | 3032 MockAsyncProxyResolver resolver; |
2983 MockAsyncProxyResolverFactory* factory = | 3033 MockAsyncProxyResolverFactory* factory = |
2984 new MockAsyncProxyResolverFactory(true); | 3034 new MockAsyncProxyResolverFactory(true); |
2985 | 3035 |
2986 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 3036 ProxyService service(make_scoped_ptr(config_service), |
| 3037 make_scoped_ptr(factory), NULL); |
2987 | 3038 |
2988 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 3039 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2989 service.SetProxyScriptFetchers(fetcher, | 3040 service.SetProxyScriptFetchers(fetcher, |
2990 new DoNothingDhcpProxyScriptFetcher()); | 3041 new DoNothingDhcpProxyScriptFetcher()); |
2991 | 3042 |
2992 // Start 1 request. | 3043 // Start 1 request. |
2993 | 3044 |
2994 ProxyInfo info1; | 3045 ProxyInfo info1; |
2995 TestCompletionCallback callback1; | 3046 TestCompletionCallback callback1; |
2996 int rv = | 3047 int rv = |
(...skipping 132 matching lines...) Loading... |
3129 ImmediateAfterActivityPollPolicy poll_policy; | 3180 ImmediateAfterActivityPollPolicy poll_policy; |
3130 ProxyService::set_pac_script_poll_policy(&poll_policy); | 3181 ProxyService::set_pac_script_poll_policy(&poll_policy); |
3131 | 3182 |
3132 MockProxyConfigService* config_service = | 3183 MockProxyConfigService* config_service = |
3133 new MockProxyConfigService("http://foopy/proxy.pac"); | 3184 new MockProxyConfigService("http://foopy/proxy.pac"); |
3134 | 3185 |
3135 MockAsyncProxyResolver resolver; | 3186 MockAsyncProxyResolver resolver; |
3136 MockAsyncProxyResolverFactory* factory = | 3187 MockAsyncProxyResolverFactory* factory = |
3137 new MockAsyncProxyResolverFactory(true); | 3188 new MockAsyncProxyResolverFactory(true); |
3138 | 3189 |
3139 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 3190 ProxyService service(make_scoped_ptr(config_service), |
| 3191 make_scoped_ptr(factory), NULL); |
3140 | 3192 |
3141 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 3193 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
3142 service.SetProxyScriptFetchers(fetcher, | 3194 service.SetProxyScriptFetchers(fetcher, |
3143 new DoNothingDhcpProxyScriptFetcher()); | 3195 new DoNothingDhcpProxyScriptFetcher()); |
3144 | 3196 |
3145 // Start 1 request. | 3197 // Start 1 request. |
3146 | 3198 |
3147 ProxyInfo info1; | 3199 ProxyInfo info1; |
3148 TestCompletionCallback callback1; | 3200 TestCompletionCallback callback1; |
3149 int rv = | 3201 int rv = |
(...skipping 78 matching lines...) Loading... |
3228 } | 3280 } |
3229 | 3281 |
3230 // Test that the synchronous resolution fails when a PAC script is active. | 3282 // Test that the synchronous resolution fails when a PAC script is active. |
3231 TEST_F(ProxyServiceTest, SynchronousWithPAC) { | 3283 TEST_F(ProxyServiceTest, SynchronousWithPAC) { |
3232 MockProxyConfigService* config_service = | 3284 MockProxyConfigService* config_service = |
3233 new MockProxyConfigService("http://foopy/proxy.pac"); | 3285 new MockProxyConfigService("http://foopy/proxy.pac"); |
3234 | 3286 |
3235 MockAsyncProxyResolverFactory* factory = | 3287 MockAsyncProxyResolverFactory* factory = |
3236 new MockAsyncProxyResolverFactory(false); | 3288 new MockAsyncProxyResolverFactory(false); |
3237 | 3289 |
3238 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 3290 ProxyService service(make_scoped_ptr(config_service), |
| 3291 make_scoped_ptr(factory), NULL); |
3239 | 3292 |
3240 GURL url("http://www.google.com/"); | 3293 GURL url("http://www.google.com/"); |
3241 | 3294 |
3242 ProxyInfo info; | 3295 ProxyInfo info; |
3243 info.UseDirect(); | 3296 info.UseDirect(); |
3244 BoundTestNetLog log; | 3297 BoundTestNetLog log; |
3245 | 3298 |
3246 bool synchronous_success = service.TryResolveProxySynchronously( | 3299 bool synchronous_success = service.TryResolveProxySynchronously( |
3247 url, LOAD_NORMAL, &info, NULL, log.bound()); | 3300 url, LOAD_NORMAL, &info, NULL, log.bound()); |
3248 EXPECT_FALSE(synchronous_success); | 3301 EXPECT_FALSE(synchronous_success); |
3249 | 3302 |
3250 // |info| should not have been modified. | 3303 // |info| should not have been modified. |
3251 EXPECT_TRUE(info.is_direct()); | 3304 EXPECT_TRUE(info.is_direct()); |
3252 } | 3305 } |
3253 | 3306 |
3254 // Test that synchronous results are returned correctly if a fixed proxy | 3307 // Test that synchronous results are returned correctly if a fixed proxy |
3255 // configuration is active. | 3308 // configuration is active. |
3256 TEST_F(ProxyServiceTest, SynchronousWithFixedConfiguration) { | 3309 TEST_F(ProxyServiceTest, SynchronousWithFixedConfiguration) { |
3257 ProxyConfig config; | 3310 ProxyConfig config; |
3258 config.proxy_rules().ParseFromString("foopy1:8080"); | 3311 config.proxy_rules().ParseFromString("foopy1:8080"); |
3259 config.set_auto_detect(false); | 3312 config.set_auto_detect(false); |
3260 | 3313 |
3261 MockAsyncProxyResolverFactory* factory = | 3314 MockAsyncProxyResolverFactory* factory = |
3262 new MockAsyncProxyResolverFactory(false); | 3315 new MockAsyncProxyResolverFactory(false); |
3263 | 3316 |
3264 ProxyService service(new MockProxyConfigService(config), | 3317 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
3265 make_scoped_ptr(factory), NULL); | 3318 make_scoped_ptr(factory), NULL); |
3266 | 3319 |
3267 GURL url("http://www.google.com/"); | 3320 GURL url("http://www.google.com/"); |
3268 | 3321 |
3269 ProxyInfo info; | 3322 ProxyInfo info; |
3270 BoundTestNetLog log; | 3323 BoundTestNetLog log; |
3271 | 3324 |
3272 bool synchronous_success = service.TryResolveProxySynchronously( | 3325 bool synchronous_success = service.TryResolveProxySynchronously( |
3273 url, LOAD_NORMAL, &info, NULL, log.bound()); | 3326 url, LOAD_NORMAL, &info, NULL, log.bound()); |
3274 EXPECT_TRUE(synchronous_success); | 3327 EXPECT_TRUE(synchronous_success); |
3275 EXPECT_FALSE(info.is_direct()); | 3328 EXPECT_FALSE(info.is_direct()); |
3276 EXPECT_EQ("foopy1", info.proxy_server().host_port_pair().host()); | 3329 EXPECT_EQ("foopy1", info.proxy_server().host_port_pair().host()); |
3277 | 3330 |
3278 // No request should have been queued. | 3331 // No request should have been queued. |
3279 EXPECT_EQ(0u, factory->pending_requests().size()); | 3332 EXPECT_EQ(0u, factory->pending_requests().size()); |
3280 } | 3333 } |
3281 | 3334 |
3282 } // namespace net | 3335 } // namespace net |
OLD | NEW |