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 <cstdarg> | 7 #include <cstdarg> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/format_macros.h" | 10 #include "base/format_macros.h" |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
304 if (!url3.is_empty()) | 304 if (!url3.is_empty()) |
305 urls.push_back(url3); | 305 urls.push_back(url3); |
306 return GetRequestsForURLs(resolver.cancelled_requests(), urls); | 306 return GetRequestsForURLs(resolver.cancelled_requests(), urls); |
307 } | 307 } |
308 | 308 |
309 } // namespace | 309 } // namespace |
310 | 310 |
311 TEST_F(ProxyServiceTest, Direct) { | 311 TEST_F(ProxyServiceTest, Direct) { |
312 MockAsyncProxyResolverFactory* factory = | 312 MockAsyncProxyResolverFactory* factory = |
313 new MockAsyncProxyResolverFactory(false); | 313 new MockAsyncProxyResolverFactory(false); |
314 ProxyService service(new MockProxyConfigService(ProxyConfig::CreateDirect()), | 314 ProxyService service( |
315 make_scoped_ptr(factory), NULL); | 315 make_scoped_ptr(new MockProxyConfigService(ProxyConfig::CreateDirect())), |
| 316 make_scoped_ptr(factory), NULL); |
316 | 317 |
317 GURL url("http://www.google.com/"); | 318 GURL url("http://www.google.com/"); |
318 | 319 |
319 ProxyInfo info; | 320 ProxyInfo info; |
320 TestCompletionCallback callback; | 321 TestCompletionCallback callback; |
321 BoundTestNetLog log; | 322 BoundTestNetLog log; |
322 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), | 323 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), |
323 NULL, NULL, log.bound()); | 324 NULL, NULL, log.bound()); |
324 EXPECT_EQ(OK, rv); | 325 EXPECT_EQ(OK, rv); |
325 EXPECT_TRUE(factory->pending_requests().empty()); | 326 EXPECT_TRUE(factory->pending_requests().empty()); |
(...skipping 15 matching lines...) Expand all Loading... |
341 EXPECT_TRUE(LogContainsEndEvent( | 342 EXPECT_TRUE(LogContainsEndEvent( |
342 entries, 2, NetLog::TYPE_PROXY_SERVICE)); | 343 entries, 2, NetLog::TYPE_PROXY_SERVICE)); |
343 } | 344 } |
344 | 345 |
345 TEST_F(ProxyServiceTest, OnResolveProxyCallbackAddProxy) { | 346 TEST_F(ProxyServiceTest, OnResolveProxyCallbackAddProxy) { |
346 ProxyConfig config; | 347 ProxyConfig config; |
347 config.proxy_rules().ParseFromString("foopy1:8080"); | 348 config.proxy_rules().ParseFromString("foopy1:8080"); |
348 config.set_auto_detect(false); | 349 config.set_auto_detect(false); |
349 config.proxy_rules().bypass_rules.ParseFromString("*.org"); | 350 config.proxy_rules().bypass_rules.ParseFromString("*.org"); |
350 | 351 |
351 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 352 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 353 nullptr, NULL); |
352 | 354 |
353 GURL url("http://www.google.com/"); | 355 GURL url("http://www.google.com/"); |
354 GURL bypass_url("http://internet.org"); | 356 GURL bypass_url("http://internet.org"); |
355 | 357 |
356 ProxyInfo info; | 358 ProxyInfo info; |
357 TestCompletionCallback callback; | 359 TestCompletionCallback callback; |
358 BoundTestNetLog log; | 360 BoundTestNetLog log; |
359 | 361 |
360 // First, warm up the ProxyService. | 362 // First, warm up the ProxyService. |
361 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), | 363 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 | 397 |
396 TEST_F(ProxyServiceTest, OnResolveProxyCallbackRemoveProxy) { | 398 TEST_F(ProxyServiceTest, OnResolveProxyCallbackRemoveProxy) { |
397 // Same as OnResolveProxyCallbackAddProxy, but verify that the | 399 // Same as OnResolveProxyCallbackAddProxy, but verify that the |
398 // NetworkDelegate's behavior is stateless across invocations after it | 400 // NetworkDelegate's behavior is stateless across invocations after it |
399 // *removes* a proxy. | 401 // *removes* a proxy. |
400 ProxyConfig config; | 402 ProxyConfig config; |
401 config.proxy_rules().ParseFromString("foopy1:8080"); | 403 config.proxy_rules().ParseFromString("foopy1:8080"); |
402 config.set_auto_detect(false); | 404 config.set_auto_detect(false); |
403 config.proxy_rules().bypass_rules.ParseFromString("*.org"); | 405 config.proxy_rules().bypass_rules.ParseFromString("*.org"); |
404 | 406 |
405 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 407 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 408 nullptr, NULL); |
406 | 409 |
407 GURL url("http://www.google.com/"); | 410 GURL url("http://www.google.com/"); |
408 GURL bypass_url("http://internet.org"); | 411 GURL bypass_url("http://internet.org"); |
409 | 412 |
410 ProxyInfo info; | 413 ProxyInfo info; |
411 TestCompletionCallback callback; | 414 TestCompletionCallback callback; |
412 BoundTestNetLog log; | 415 BoundTestNetLog log; |
413 | 416 |
414 // First, warm up the ProxyService. | 417 // First, warm up the ProxyService. |
415 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), | 418 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), |
(...skipping 22 matching lines...) Expand all Loading... |
438 } | 441 } |
439 | 442 |
440 TEST_F(ProxyServiceTest, PAC) { | 443 TEST_F(ProxyServiceTest, PAC) { |
441 MockProxyConfigService* config_service = | 444 MockProxyConfigService* config_service = |
442 new MockProxyConfigService("http://foopy/proxy.pac"); | 445 new MockProxyConfigService("http://foopy/proxy.pac"); |
443 | 446 |
444 MockAsyncProxyResolver resolver; | 447 MockAsyncProxyResolver resolver; |
445 MockAsyncProxyResolverFactory* factory = | 448 MockAsyncProxyResolverFactory* factory = |
446 new MockAsyncProxyResolverFactory(false); | 449 new MockAsyncProxyResolverFactory(false); |
447 | 450 |
448 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 451 ProxyService service(make_scoped_ptr(config_service), |
| 452 make_scoped_ptr(factory), NULL); |
449 | 453 |
450 GURL url("http://www.google.com/"); | 454 GURL url("http://www.google.com/"); |
451 | 455 |
452 ProxyInfo info; | 456 ProxyInfo info; |
453 TestCompletionCallback callback; | 457 TestCompletionCallback callback; |
454 ProxyService::PacRequest* request; | 458 ProxyService::PacRequest* request; |
455 BoundTestNetLog log; | 459 BoundTestNetLog log; |
456 | 460 |
457 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), | 461 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), |
458 &request, NULL, log.bound()); | 462 &request, NULL, log.bound()); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
499 // Test that the proxy resolver does not see the URL's username/password | 503 // Test that the proxy resolver does not see the URL's username/password |
500 // or its reference section. | 504 // or its reference section. |
501 TEST_F(ProxyServiceTest, PAC_NoIdentityOrHash) { | 505 TEST_F(ProxyServiceTest, PAC_NoIdentityOrHash) { |
502 MockProxyConfigService* config_service = | 506 MockProxyConfigService* config_service = |
503 new MockProxyConfigService("http://foopy/proxy.pac"); | 507 new MockProxyConfigService("http://foopy/proxy.pac"); |
504 | 508 |
505 MockAsyncProxyResolver resolver; | 509 MockAsyncProxyResolver resolver; |
506 MockAsyncProxyResolverFactory* factory = | 510 MockAsyncProxyResolverFactory* factory = |
507 new MockAsyncProxyResolverFactory(false); | 511 new MockAsyncProxyResolverFactory(false); |
508 | 512 |
509 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 513 ProxyService service(make_scoped_ptr(config_service), |
| 514 make_scoped_ptr(factory), NULL); |
510 | 515 |
511 GURL url("http://username:password@www.google.com/?ref#hash#hash"); | 516 GURL url("http://username:password@www.google.com/?ref#hash#hash"); |
512 | 517 |
513 ProxyInfo info; | 518 ProxyInfo info; |
514 TestCompletionCallback callback; | 519 TestCompletionCallback callback; |
515 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), | 520 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), |
516 NULL, NULL, BoundNetLog()); | 521 NULL, NULL, BoundNetLog()); |
517 EXPECT_EQ(ERR_IO_PENDING, rv); | 522 EXPECT_EQ(ERR_IO_PENDING, rv); |
518 | 523 |
519 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 524 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
520 factory->pending_requests()[0]->script_data()->url()); | 525 factory->pending_requests()[0]->script_data()->url()); |
521 factory->pending_requests()[0]->CompleteNowWithForwarder(OK, &resolver); | 526 factory->pending_requests()[0]->CompleteNowWithForwarder(OK, &resolver); |
522 | 527 |
523 ASSERT_EQ(1u, resolver.pending_requests().size()); | 528 ASSERT_EQ(1u, resolver.pending_requests().size()); |
524 // The URL should have been simplified, stripping the username/password/hash. | 529 // The URL should have been simplified, stripping the username/password/hash. |
525 EXPECT_EQ(GURL("http://www.google.com/?ref"), | 530 EXPECT_EQ(GURL("http://www.google.com/?ref"), |
526 resolver.pending_requests()[0]->url()); | 531 resolver.pending_requests()[0]->url()); |
527 | 532 |
528 // We end here without ever completing the request -- destruction of | 533 // We end here without ever completing the request -- destruction of |
529 // ProxyService will cancel the outstanding request. | 534 // ProxyService will cancel the outstanding request. |
530 } | 535 } |
531 | 536 |
532 TEST_F(ProxyServiceTest, PAC_FailoverWithoutDirect) { | 537 TEST_F(ProxyServiceTest, PAC_FailoverWithoutDirect) { |
533 MockProxyConfigService* config_service = | 538 MockProxyConfigService* config_service = |
534 new MockProxyConfigService("http://foopy/proxy.pac"); | 539 new MockProxyConfigService("http://foopy/proxy.pac"); |
535 MockAsyncProxyResolver resolver; | 540 MockAsyncProxyResolver resolver; |
536 MockAsyncProxyResolverFactory* factory = | 541 MockAsyncProxyResolverFactory* factory = |
537 new MockAsyncProxyResolverFactory(false); | 542 new MockAsyncProxyResolverFactory(false); |
538 | 543 |
539 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 544 ProxyService service(make_scoped_ptr(config_service), |
| 545 make_scoped_ptr(factory), NULL); |
540 | 546 |
541 GURL url("http://www.google.com/"); | 547 GURL url("http://www.google.com/"); |
542 | 548 |
543 ProxyInfo info; | 549 ProxyInfo info; |
544 TestCompletionCallback callback1; | 550 TestCompletionCallback callback1; |
545 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 551 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
546 NULL, NULL, BoundNetLog()); | 552 NULL, NULL, BoundNetLog()); |
547 EXPECT_EQ(ERR_IO_PENDING, rv); | 553 EXPECT_EQ(ERR_IO_PENDING, rv); |
548 | 554 |
549 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 555 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
582 | 588 |
583 // Test that if the execution of the PAC script fails (i.e. javascript runtime | 589 // Test that if the execution of the PAC script fails (i.e. javascript runtime |
584 // error), and the PAC settings are non-mandatory, that we fall-back to direct. | 590 // error), and the PAC settings are non-mandatory, that we fall-back to direct. |
585 TEST_F(ProxyServiceTest, PAC_RuntimeError) { | 591 TEST_F(ProxyServiceTest, PAC_RuntimeError) { |
586 MockProxyConfigService* config_service = | 592 MockProxyConfigService* config_service = |
587 new MockProxyConfigService("http://foopy/proxy.pac"); | 593 new MockProxyConfigService("http://foopy/proxy.pac"); |
588 MockAsyncProxyResolver resolver; | 594 MockAsyncProxyResolver resolver; |
589 MockAsyncProxyResolverFactory* factory = | 595 MockAsyncProxyResolverFactory* factory = |
590 new MockAsyncProxyResolverFactory(false); | 596 new MockAsyncProxyResolverFactory(false); |
591 | 597 |
592 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 598 ProxyService service(make_scoped_ptr(config_service), |
| 599 make_scoped_ptr(factory), NULL); |
593 | 600 |
594 GURL url("http://this-causes-js-error/"); | 601 GURL url("http://this-causes-js-error/"); |
595 | 602 |
596 ProxyInfo info; | 603 ProxyInfo info; |
597 TestCompletionCallback callback1; | 604 TestCompletionCallback callback1; |
598 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 605 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
599 NULL, NULL, BoundNetLog()); | 606 NULL, NULL, BoundNetLog()); |
600 EXPECT_EQ(ERR_IO_PENDING, rv); | 607 EXPECT_EQ(ERR_IO_PENDING, rv); |
601 | 608 |
602 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 609 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
639 // | 646 // |
640 // The important check of this test is to make sure that DIRECT is not somehow | 647 // The important check of this test is to make sure that DIRECT is not somehow |
641 // cached as being a bad proxy. | 648 // cached as being a bad proxy. |
642 TEST_F(ProxyServiceTest, PAC_FailoverAfterDirect) { | 649 TEST_F(ProxyServiceTest, PAC_FailoverAfterDirect) { |
643 MockProxyConfigService* config_service = | 650 MockProxyConfigService* config_service = |
644 new MockProxyConfigService("http://foopy/proxy.pac"); | 651 new MockProxyConfigService("http://foopy/proxy.pac"); |
645 MockAsyncProxyResolver resolver; | 652 MockAsyncProxyResolver resolver; |
646 MockAsyncProxyResolverFactory* factory = | 653 MockAsyncProxyResolverFactory* factory = |
647 new MockAsyncProxyResolverFactory(false); | 654 new MockAsyncProxyResolverFactory(false); |
648 | 655 |
649 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 656 ProxyService service(make_scoped_ptr(config_service), |
| 657 make_scoped_ptr(factory), NULL); |
650 | 658 |
651 GURL url("http://www.google.com/"); | 659 GURL url("http://www.google.com/"); |
652 | 660 |
653 ProxyInfo info; | 661 ProxyInfo info; |
654 TestCompletionCallback callback1; | 662 TestCompletionCallback callback1; |
655 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 663 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
656 NULL, NULL, BoundNetLog()); | 664 NULL, NULL, BoundNetLog()); |
657 EXPECT_EQ(ERR_IO_PENDING, rv); | 665 EXPECT_EQ(ERR_IO_PENDING, rv); |
658 | 666 |
659 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 667 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
714 // Test whether the ProxyConfigSource set by the ProxyConfigService is applied | 722 // Test whether the ProxyConfigSource set by the ProxyConfigService is applied |
715 // to ProxyInfo after the proxy is resolved via a PAC script. | 723 // to ProxyInfo after the proxy is resolved via a PAC script. |
716 ProxyConfig config = | 724 ProxyConfig config = |
717 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac")); | 725 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac")); |
718 config.set_source(PROXY_CONFIG_SOURCE_TEST); | 726 config.set_source(PROXY_CONFIG_SOURCE_TEST); |
719 | 727 |
720 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 728 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
721 MockAsyncProxyResolver resolver; | 729 MockAsyncProxyResolver resolver; |
722 MockAsyncProxyResolverFactory* factory = | 730 MockAsyncProxyResolverFactory* factory = |
723 new MockAsyncProxyResolverFactory(false); | 731 new MockAsyncProxyResolverFactory(false); |
724 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 732 ProxyService service(make_scoped_ptr(config_service), |
| 733 make_scoped_ptr(factory), NULL); |
725 | 734 |
726 // Resolve something. | 735 // Resolve something. |
727 GURL url("http://www.google.com/"); | 736 GURL url("http://www.google.com/"); |
728 ProxyInfo info; | 737 ProxyInfo info; |
729 TestCompletionCallback callback; | 738 TestCompletionCallback callback; |
730 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), | 739 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), |
731 NULL, NULL, BoundNetLog()); | 740 NULL, NULL, BoundNetLog()); |
732 ASSERT_EQ(ERR_IO_PENDING, rv); | 741 ASSERT_EQ(ERR_IO_PENDING, rv); |
733 factory->pending_requests()[0]->CompleteNowWithForwarder(OK, &resolver); | 742 factory->pending_requests()[0]->CompleteNowWithForwarder(OK, &resolver); |
734 ASSERT_EQ(1u, resolver.pending_requests().size()); | 743 ASSERT_EQ(1u, resolver.pending_requests().size()); |
(...skipping 16 matching lines...) Expand all Loading... |
751 // of the PAC script have already succeeded, so this corresponds with a | 760 // of the PAC script have already succeeded, so this corresponds with a |
752 // javascript runtime error while calling FindProxyForURL(). | 761 // javascript runtime error while calling FindProxyForURL(). |
753 | 762 |
754 MockProxyConfigService* config_service = | 763 MockProxyConfigService* config_service = |
755 new MockProxyConfigService("http://foopy/proxy.pac"); | 764 new MockProxyConfigService("http://foopy/proxy.pac"); |
756 | 765 |
757 MockAsyncProxyResolver resolver; | 766 MockAsyncProxyResolver resolver; |
758 MockAsyncProxyResolverFactory* factory = | 767 MockAsyncProxyResolverFactory* factory = |
759 new MockAsyncProxyResolverFactory(false); | 768 new MockAsyncProxyResolverFactory(false); |
760 | 769 |
761 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 770 ProxyService service(make_scoped_ptr(config_service), |
| 771 make_scoped_ptr(factory), NULL); |
762 | 772 |
763 // Start first resolve request. | 773 // Start first resolve request. |
764 GURL url("http://www.google.com/"); | 774 GURL url("http://www.google.com/"); |
765 ProxyInfo info; | 775 ProxyInfo info; |
766 TestCompletionCallback callback1; | 776 TestCompletionCallback callback1; |
767 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 777 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
768 NULL, NULL, BoundNetLog()); | 778 NULL, NULL, BoundNetLog()); |
769 EXPECT_EQ(ERR_IO_PENDING, rv); | 779 EXPECT_EQ(ERR_IO_PENDING, rv); |
770 | 780 |
771 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 781 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
812 // Test what happens when the ProxyResolver fails with a fatal error while | 822 // Test what happens when the ProxyResolver fails with a fatal error while |
813 // a GetProxyForURL() call is in progress. | 823 // a GetProxyForURL() call is in progress. |
814 | 824 |
815 MockProxyConfigService* config_service = | 825 MockProxyConfigService* config_service = |
816 new MockProxyConfigService("http://foopy/proxy.pac"); | 826 new MockProxyConfigService("http://foopy/proxy.pac"); |
817 | 827 |
818 MockAsyncProxyResolver resolver; | 828 MockAsyncProxyResolver resolver; |
819 MockAsyncProxyResolverFactory* factory = | 829 MockAsyncProxyResolverFactory* factory = |
820 new MockAsyncProxyResolverFactory(false); | 830 new MockAsyncProxyResolverFactory(false); |
821 | 831 |
822 ProxyService service(config_service, make_scoped_ptr(factory), nullptr); | 832 ProxyService service(make_scoped_ptr(config_service), |
| 833 make_scoped_ptr(factory), nullptr); |
823 | 834 |
824 // Start first resolve request. | 835 // Start first resolve request. |
825 GURL url("http://www.google.com/"); | 836 GURL url("http://www.google.com/"); |
826 ProxyInfo info; | 837 ProxyInfo info; |
827 TestCompletionCallback callback1; | 838 TestCompletionCallback callback1; |
828 int rv = | 839 int rv = |
829 service.ResolveProxy(url, net::LOAD_NORMAL, &info, callback1.callback(), | 840 service.ResolveProxy(url, net::LOAD_NORMAL, &info, callback1.callback(), |
830 nullptr, nullptr, BoundNetLog()); | 841 nullptr, nullptr, BoundNetLog()); |
831 EXPECT_EQ(ERR_IO_PENDING, rv); | 842 EXPECT_EQ(ERR_IO_PENDING, rv); |
832 | 843 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
882 // Test what happens when the ProxyResolver fails with a fatal error while | 893 // Test what happens when the ProxyResolver fails with a fatal error while |
883 // a GetProxyForURL() call is in progress. | 894 // a GetProxyForURL() call is in progress. |
884 | 895 |
885 MockProxyConfigService* config_service = | 896 MockProxyConfigService* config_service = |
886 new MockProxyConfigService("http://foopy/proxy.pac"); | 897 new MockProxyConfigService("http://foopy/proxy.pac"); |
887 | 898 |
888 MockAsyncProxyResolver resolver; | 899 MockAsyncProxyResolver resolver; |
889 MockAsyncProxyResolverFactory* factory = | 900 MockAsyncProxyResolverFactory* factory = |
890 new MockAsyncProxyResolverFactory(false); | 901 new MockAsyncProxyResolverFactory(false); |
891 | 902 |
892 ProxyService service(config_service, make_scoped_ptr(factory), nullptr); | 903 ProxyService service(make_scoped_ptr(config_service), |
| 904 make_scoped_ptr(factory), nullptr); |
893 | 905 |
894 // Start two resolve requests. | 906 // Start two resolve requests. |
895 GURL url1("http://www.google.com/"); | 907 GURL url1("http://www.google.com/"); |
896 GURL url2("https://www.google.com/"); | 908 GURL url2("https://www.google.com/"); |
897 ProxyInfo info; | 909 ProxyInfo info; |
898 TestCompletionCallback callback1; | 910 TestCompletionCallback callback1; |
899 int rv = | 911 int rv = |
900 service.ResolveProxy(url1, net::LOAD_NORMAL, &info, callback1.callback(), | 912 service.ResolveProxy(url1, net::LOAD_NORMAL, &info, callback1.callback(), |
901 nullptr, nullptr, BoundNetLog()); | 913 nullptr, nullptr, BoundNetLog()); |
902 EXPECT_EQ(ERR_IO_PENDING, rv); | 914 EXPECT_EQ(ERR_IO_PENDING, rv); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
952 | 964 |
953 ProxyConfig config( | 965 ProxyConfig config( |
954 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac"))); | 966 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac"))); |
955 config.set_pac_mandatory(true); | 967 config.set_pac_mandatory(true); |
956 | 968 |
957 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 969 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
958 | 970 |
959 MockAsyncProxyResolverFactory* factory = | 971 MockAsyncProxyResolverFactory* factory = |
960 new MockAsyncProxyResolverFactory(false); | 972 new MockAsyncProxyResolverFactory(false); |
961 | 973 |
962 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 974 ProxyService service(make_scoped_ptr(config_service), |
| 975 make_scoped_ptr(factory), NULL); |
963 | 976 |
964 // Start first resolve request. | 977 // Start first resolve request. |
965 GURL url("http://www.google.com/"); | 978 GURL url("http://www.google.com/"); |
966 ProxyInfo info; | 979 ProxyInfo info; |
967 TestCompletionCallback callback1; | 980 TestCompletionCallback callback1; |
968 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 981 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
969 NULL, NULL, BoundNetLog()); | 982 NULL, NULL, BoundNetLog()); |
970 EXPECT_EQ(ERR_IO_PENDING, rv); | 983 EXPECT_EQ(ERR_IO_PENDING, rv); |
971 | 984 |
972 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 985 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
(...skipping 23 matching lines...) Expand all Loading... |
996 | 1009 |
997 ProxyConfig config( | 1010 ProxyConfig config( |
998 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac"))); | 1011 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac"))); |
999 config.set_pac_mandatory(true); | 1012 config.set_pac_mandatory(true); |
1000 | 1013 |
1001 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1014 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
1002 | 1015 |
1003 MockAsyncProxyResolverFactory* factory = | 1016 MockAsyncProxyResolverFactory* factory = |
1004 new MockAsyncProxyResolverFactory(true); | 1017 new MockAsyncProxyResolverFactory(true); |
1005 | 1018 |
1006 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1019 ProxyService service(make_scoped_ptr(config_service), |
| 1020 make_scoped_ptr(factory), NULL); |
1007 | 1021 |
1008 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1022 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
1009 service.SetProxyScriptFetchers( | 1023 service.SetProxyScriptFetchers( |
1010 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); | 1024 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
1011 | 1025 |
1012 // Start resolve request. | 1026 // Start resolve request. |
1013 GURL url("http://www.google.com/"); | 1027 GURL url("http://www.google.com/"); |
1014 ProxyInfo info; | 1028 ProxyInfo info; |
1015 TestCompletionCallback callback; | 1029 TestCompletionCallback callback; |
1016 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), | 1030 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), |
(...skipping 28 matching lines...) Expand all Loading... |
1045 ProxyConfig config( | 1059 ProxyConfig config( |
1046 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac"))); | 1060 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac"))); |
1047 config.set_pac_mandatory(true); | 1061 config.set_pac_mandatory(true); |
1048 | 1062 |
1049 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1063 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
1050 | 1064 |
1051 MockAsyncProxyResolver resolver; | 1065 MockAsyncProxyResolver resolver; |
1052 MockAsyncProxyResolverFactory* factory = | 1066 MockAsyncProxyResolverFactory* factory = |
1053 new MockAsyncProxyResolverFactory(false); | 1067 new MockAsyncProxyResolverFactory(false); |
1054 | 1068 |
1055 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1069 ProxyService service(make_scoped_ptr(config_service), |
| 1070 make_scoped_ptr(factory), NULL); |
1056 | 1071 |
1057 // Start first resolve request. | 1072 // Start first resolve request. |
1058 GURL url("http://www.google.com/"); | 1073 GURL url("http://www.google.com/"); |
1059 ProxyInfo info; | 1074 ProxyInfo info; |
1060 TestCompletionCallback callback1; | 1075 TestCompletionCallback callback1; |
1061 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 1076 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
1062 NULL, NULL, BoundNetLog()); | 1077 NULL, NULL, BoundNetLog()); |
1063 EXPECT_EQ(ERR_IO_PENDING, rv); | 1078 EXPECT_EQ(ERR_IO_PENDING, rv); |
1064 | 1079 |
1065 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 1080 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1102 // Test what happens when we specify multiple proxy servers and some of them | 1117 // Test what happens when we specify multiple proxy servers and some of them |
1103 // are bad. | 1118 // are bad. |
1104 | 1119 |
1105 MockProxyConfigService* config_service = | 1120 MockProxyConfigService* config_service = |
1106 new MockProxyConfigService("http://foopy/proxy.pac"); | 1121 new MockProxyConfigService("http://foopy/proxy.pac"); |
1107 | 1122 |
1108 MockAsyncProxyResolver resolver; | 1123 MockAsyncProxyResolver resolver; |
1109 MockAsyncProxyResolverFactory* factory = | 1124 MockAsyncProxyResolverFactory* factory = |
1110 new MockAsyncProxyResolverFactory(false); | 1125 new MockAsyncProxyResolverFactory(false); |
1111 | 1126 |
1112 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1127 ProxyService service(make_scoped_ptr(config_service), |
| 1128 make_scoped_ptr(factory), NULL); |
1113 | 1129 |
1114 GURL url("http://www.google.com/"); | 1130 GURL url("http://www.google.com/"); |
1115 | 1131 |
1116 // Get the proxy information. | 1132 // Get the proxy information. |
1117 ProxyInfo info; | 1133 ProxyInfo info; |
1118 TestCompletionCallback callback1; | 1134 TestCompletionCallback callback1; |
1119 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 1135 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
1120 NULL, NULL, BoundNetLog()); | 1136 NULL, NULL, BoundNetLog()); |
1121 EXPECT_EQ(ERR_IO_PENDING, rv); | 1137 EXPECT_EQ(ERR_IO_PENDING, rv); |
1122 | 1138 |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1251 // This test is similar to ProxyFallback, but this time we have an explicit | 1267 // This test is similar to ProxyFallback, but this time we have an explicit |
1252 // fallback choice to DIRECT. | 1268 // fallback choice to DIRECT. |
1253 TEST_F(ProxyServiceTest, ProxyFallbackToDirect) { | 1269 TEST_F(ProxyServiceTest, ProxyFallbackToDirect) { |
1254 MockProxyConfigService* config_service = | 1270 MockProxyConfigService* config_service = |
1255 new MockProxyConfigService("http://foopy/proxy.pac"); | 1271 new MockProxyConfigService("http://foopy/proxy.pac"); |
1256 | 1272 |
1257 MockAsyncProxyResolver resolver; | 1273 MockAsyncProxyResolver resolver; |
1258 MockAsyncProxyResolverFactory* factory = | 1274 MockAsyncProxyResolverFactory* factory = |
1259 new MockAsyncProxyResolverFactory(false); | 1275 new MockAsyncProxyResolverFactory(false); |
1260 | 1276 |
1261 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1277 ProxyService service(make_scoped_ptr(config_service), |
| 1278 make_scoped_ptr(factory), NULL); |
1262 | 1279 |
1263 GURL url("http://www.google.com/"); | 1280 GURL url("http://www.google.com/"); |
1264 | 1281 |
1265 // Get the proxy information. | 1282 // Get the proxy information. |
1266 ProxyInfo info; | 1283 ProxyInfo info; |
1267 TestCompletionCallback callback1; | 1284 TestCompletionCallback callback1; |
1268 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 1285 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
1269 NULL, NULL, BoundNetLog()); | 1286 NULL, NULL, BoundNetLog()); |
1270 EXPECT_EQ(ERR_IO_PENDING, rv); | 1287 EXPECT_EQ(ERR_IO_PENDING, rv); |
1271 | 1288 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1323 TEST_F(ProxyServiceTest, ProxyFallback_NewSettings) { | 1340 TEST_F(ProxyServiceTest, ProxyFallback_NewSettings) { |
1324 // Test proxy failover when new settings are available. | 1341 // Test proxy failover when new settings are available. |
1325 | 1342 |
1326 MockProxyConfigService* config_service = | 1343 MockProxyConfigService* config_service = |
1327 new MockProxyConfigService("http://foopy/proxy.pac"); | 1344 new MockProxyConfigService("http://foopy/proxy.pac"); |
1328 | 1345 |
1329 MockAsyncProxyResolver resolver; | 1346 MockAsyncProxyResolver resolver; |
1330 MockAsyncProxyResolverFactory* factory = | 1347 MockAsyncProxyResolverFactory* factory = |
1331 new MockAsyncProxyResolverFactory(false); | 1348 new MockAsyncProxyResolverFactory(false); |
1332 | 1349 |
1333 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1350 ProxyService service(make_scoped_ptr(config_service), |
| 1351 make_scoped_ptr(factory), NULL); |
1334 | 1352 |
1335 GURL url("http://www.google.com/"); | 1353 GURL url("http://www.google.com/"); |
1336 | 1354 |
1337 // Get the proxy information. | 1355 // Get the proxy information. |
1338 ProxyInfo info; | 1356 ProxyInfo info; |
1339 TestCompletionCallback callback1; | 1357 TestCompletionCallback callback1; |
1340 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 1358 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
1341 NULL, NULL, BoundNetLog()); | 1359 NULL, NULL, BoundNetLog()); |
1342 EXPECT_EQ(ERR_IO_PENDING, rv); | 1360 EXPECT_EQ(ERR_IO_PENDING, rv); |
1343 | 1361 |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1425 TEST_F(ProxyServiceTest, ProxyFallback_BadConfig) { | 1443 TEST_F(ProxyServiceTest, ProxyFallback_BadConfig) { |
1426 // Test proxy failover when the configuration is bad. | 1444 // Test proxy failover when the configuration is bad. |
1427 | 1445 |
1428 MockProxyConfigService* config_service = | 1446 MockProxyConfigService* config_service = |
1429 new MockProxyConfigService("http://foopy/proxy.pac"); | 1447 new MockProxyConfigService("http://foopy/proxy.pac"); |
1430 | 1448 |
1431 MockAsyncProxyResolver resolver; | 1449 MockAsyncProxyResolver resolver; |
1432 MockAsyncProxyResolverFactory* factory = | 1450 MockAsyncProxyResolverFactory* factory = |
1433 new MockAsyncProxyResolverFactory(false); | 1451 new MockAsyncProxyResolverFactory(false); |
1434 | 1452 |
1435 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1453 ProxyService service(make_scoped_ptr(config_service), |
| 1454 make_scoped_ptr(factory), NULL); |
1436 | 1455 |
1437 GURL url("http://www.google.com/"); | 1456 GURL url("http://www.google.com/"); |
1438 | 1457 |
1439 // Get the proxy information. | 1458 // Get the proxy information. |
1440 ProxyInfo info; | 1459 ProxyInfo info; |
1441 TestCompletionCallback callback1; | 1460 TestCompletionCallback callback1; |
1442 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 1461 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
1443 NULL, NULL, BoundNetLog()); | 1462 NULL, NULL, BoundNetLog()); |
1444 EXPECT_EQ(ERR_IO_PENDING, rv); | 1463 EXPECT_EQ(ERR_IO_PENDING, rv); |
1445 | 1464 |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1522 ProxyConfig config( | 1541 ProxyConfig config( |
1523 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac"))); | 1542 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac"))); |
1524 | 1543 |
1525 config.set_pac_mandatory(true); | 1544 config.set_pac_mandatory(true); |
1526 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1545 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
1527 | 1546 |
1528 MockAsyncProxyResolver resolver; | 1547 MockAsyncProxyResolver resolver; |
1529 MockAsyncProxyResolverFactory* factory = | 1548 MockAsyncProxyResolverFactory* factory = |
1530 new MockAsyncProxyResolverFactory(false); | 1549 new MockAsyncProxyResolverFactory(false); |
1531 | 1550 |
1532 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1551 ProxyService service(make_scoped_ptr(config_service), |
| 1552 make_scoped_ptr(factory), NULL); |
1533 | 1553 |
1534 GURL url("http://www.google.com/"); | 1554 GURL url("http://www.google.com/"); |
1535 | 1555 |
1536 // Get the proxy information. | 1556 // Get the proxy information. |
1537 ProxyInfo info; | 1557 ProxyInfo info; |
1538 TestCompletionCallback callback1; | 1558 TestCompletionCallback callback1; |
1539 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), | 1559 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback1.callback(), |
1540 NULL, NULL, BoundNetLog()); | 1560 NULL, NULL, BoundNetLog()); |
1541 EXPECT_EQ(ERR_IO_PENDING, rv); | 1561 EXPECT_EQ(ERR_IO_PENDING, rv); |
1542 | 1562 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1613 TEST_F(ProxyServiceTest, ProxyBypassList) { | 1633 TEST_F(ProxyServiceTest, ProxyBypassList) { |
1614 // Test that the proxy bypass rules are consulted. | 1634 // Test that the proxy bypass rules are consulted. |
1615 | 1635 |
1616 TestCompletionCallback callback[2]; | 1636 TestCompletionCallback callback[2]; |
1617 ProxyInfo info[2]; | 1637 ProxyInfo info[2]; |
1618 ProxyConfig config; | 1638 ProxyConfig config; |
1619 config.proxy_rules().ParseFromString("foopy1:8080;foopy2:9090"); | 1639 config.proxy_rules().ParseFromString("foopy1:8080;foopy2:9090"); |
1620 config.set_auto_detect(false); | 1640 config.set_auto_detect(false); |
1621 config.proxy_rules().bypass_rules.ParseFromString("*.org"); | 1641 config.proxy_rules().bypass_rules.ParseFromString("*.org"); |
1622 | 1642 |
1623 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1643 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1644 nullptr, NULL); |
1624 | 1645 |
1625 int rv; | 1646 int rv; |
1626 GURL url1("http://www.webkit.org"); | 1647 GURL url1("http://www.webkit.org"); |
1627 GURL url2("http://www.webkit.com"); | 1648 GURL url2("http://www.webkit.com"); |
1628 | 1649 |
1629 // Request for a .org domain should bypass proxy. | 1650 // Request for a .org domain should bypass proxy. |
1630 rv = service.ResolveProxy(url1, LOAD_NORMAL, &info[0], callback[0].callback(), | 1651 rv = service.ResolveProxy(url1, LOAD_NORMAL, &info[0], callback[0].callback(), |
1631 NULL, NULL, BoundNetLog()); | 1652 NULL, NULL, BoundNetLog()); |
1632 EXPECT_EQ(OK, rv); | 1653 EXPECT_EQ(OK, rv); |
1633 EXPECT_TRUE(info[0].is_direct()); | 1654 EXPECT_TRUE(info[0].is_direct()); |
(...skipping 17 matching lines...) Expand all Loading... |
1651 config.proxy_rules().proxies_for_http.GetAll()) { | 1672 config.proxy_rules().proxies_for_http.GetAll()) { |
1652 proxy_list.AddProxyServer(proxy_server); | 1673 proxy_list.AddProxyServer(proxy_server); |
1653 if (proxy_server == config.proxy_rules().proxies_for_http.Get()) | 1674 if (proxy_server == config.proxy_rules().proxies_for_http.Get()) |
1654 continue; | 1675 continue; |
1655 | 1676 |
1656 additional_bad_proxies.push_back(proxy_server); | 1677 additional_bad_proxies.push_back(proxy_server); |
1657 } | 1678 } |
1658 | 1679 |
1659 EXPECT_EQ(3u, additional_bad_proxies.size()); | 1680 EXPECT_EQ(3u, additional_bad_proxies.size()); |
1660 | 1681 |
1661 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1682 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1683 nullptr, NULL); |
1662 ProxyInfo proxy_info; | 1684 ProxyInfo proxy_info; |
1663 proxy_info.UseProxyList(proxy_list); | 1685 proxy_info.UseProxyList(proxy_list); |
1664 const ProxyRetryInfoMap& retry_info = service.proxy_retry_info(); | 1686 const ProxyRetryInfoMap& retry_info = service.proxy_retry_info(); |
1665 service.MarkProxiesAsBadUntil(proxy_info, base::TimeDelta::FromSeconds(1), | 1687 service.MarkProxiesAsBadUntil(proxy_info, base::TimeDelta::FromSeconds(1), |
1666 additional_bad_proxies, BoundNetLog()); | 1688 additional_bad_proxies, BoundNetLog()); |
1667 ASSERT_EQ(4u, retry_info.size()); | 1689 ASSERT_EQ(4u, retry_info.size()); |
1668 for (const ProxyServer& proxy_server : | 1690 for (const ProxyServer& proxy_server : |
1669 config.proxy_rules().proxies_for_http.GetAll()) { | 1691 config.proxy_rules().proxies_for_http.GetAll()) { |
1670 ProxyRetryInfoMap::const_iterator i = | 1692 ProxyRetryInfoMap::const_iterator i = |
1671 retry_info.find(proxy_server.host_port_pair().ToString()); | 1693 retry_info.find(proxy_server.host_port_pair().ToString()); |
1672 ASSERT_TRUE(i != retry_info.end()); | 1694 ASSERT_TRUE(i != retry_info.end()); |
1673 } | 1695 } |
1674 } | 1696 } |
1675 | 1697 |
1676 TEST_F(ProxyServiceTest, PerProtocolProxyTests) { | 1698 TEST_F(ProxyServiceTest, PerProtocolProxyTests) { |
1677 ProxyConfig config; | 1699 ProxyConfig config; |
1678 config.proxy_rules().ParseFromString("http=foopy1:8080;https=foopy2:8080"); | 1700 config.proxy_rules().ParseFromString("http=foopy1:8080;https=foopy2:8080"); |
1679 config.set_auto_detect(false); | 1701 config.set_auto_detect(false); |
1680 { | 1702 { |
1681 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1703 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1704 nullptr, NULL); |
1682 GURL test_url("http://www.msn.com"); | 1705 GURL test_url("http://www.msn.com"); |
1683 ProxyInfo info; | 1706 ProxyInfo info; |
1684 TestCompletionCallback callback; | 1707 TestCompletionCallback callback; |
1685 int rv = | 1708 int rv = |
1686 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1709 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1687 NULL, NULL, BoundNetLog()); | 1710 NULL, NULL, BoundNetLog()); |
1688 EXPECT_EQ(OK, rv); | 1711 EXPECT_EQ(OK, rv); |
1689 EXPECT_FALSE(info.is_direct()); | 1712 EXPECT_FALSE(info.is_direct()); |
1690 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 1713 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
1691 } | 1714 } |
1692 { | 1715 { |
1693 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1716 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1717 nullptr, NULL); |
1694 GURL test_url("ftp://ftp.google.com"); | 1718 GURL test_url("ftp://ftp.google.com"); |
1695 ProxyInfo info; | 1719 ProxyInfo info; |
1696 TestCompletionCallback callback; | 1720 TestCompletionCallback callback; |
1697 int rv = | 1721 int rv = |
1698 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1722 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1699 NULL, NULL, BoundNetLog()); | 1723 NULL, NULL, BoundNetLog()); |
1700 EXPECT_EQ(OK, rv); | 1724 EXPECT_EQ(OK, rv); |
1701 EXPECT_TRUE(info.is_direct()); | 1725 EXPECT_TRUE(info.is_direct()); |
1702 EXPECT_EQ("direct://", info.proxy_server().ToURI()); | 1726 EXPECT_EQ("direct://", info.proxy_server().ToURI()); |
1703 } | 1727 } |
1704 { | 1728 { |
1705 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1729 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1730 nullptr, NULL); |
1706 GURL test_url("https://webbranch.techcu.com"); | 1731 GURL test_url("https://webbranch.techcu.com"); |
1707 ProxyInfo info; | 1732 ProxyInfo info; |
1708 TestCompletionCallback callback; | 1733 TestCompletionCallback callback; |
1709 int rv = | 1734 int rv = |
1710 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1735 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1711 NULL, NULL, BoundNetLog()); | 1736 NULL, NULL, BoundNetLog()); |
1712 EXPECT_EQ(OK, rv); | 1737 EXPECT_EQ(OK, rv); |
1713 EXPECT_FALSE(info.is_direct()); | 1738 EXPECT_FALSE(info.is_direct()); |
1714 EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); | 1739 EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); |
1715 } | 1740 } |
1716 { | 1741 { |
1717 config.proxy_rules().ParseFromString("foopy1:8080"); | 1742 config.proxy_rules().ParseFromString("foopy1:8080"); |
1718 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1743 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1744 nullptr, NULL); |
1719 GURL test_url("http://www.microsoft.com"); | 1745 GURL test_url("http://www.microsoft.com"); |
1720 ProxyInfo info; | 1746 ProxyInfo info; |
1721 TestCompletionCallback callback; | 1747 TestCompletionCallback callback; |
1722 int rv = | 1748 int rv = |
1723 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1749 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1724 NULL, NULL, BoundNetLog()); | 1750 NULL, NULL, BoundNetLog()); |
1725 EXPECT_EQ(OK, rv); | 1751 EXPECT_EQ(OK, rv); |
1726 EXPECT_FALSE(info.is_direct()); | 1752 EXPECT_FALSE(info.is_direct()); |
1727 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 1753 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
1728 } | 1754 } |
1729 } | 1755 } |
1730 | 1756 |
1731 TEST_F(ProxyServiceTest, ProxyConfigSourcePropagates) { | 1757 TEST_F(ProxyServiceTest, ProxyConfigSourcePropagates) { |
1732 // Test that the proxy config source is set correctly when resolving proxies | 1758 // Test that the proxy config source is set correctly when resolving proxies |
1733 // using manual proxy rules. Namely, the config source should only be set if | 1759 // using manual proxy rules. Namely, the config source should only be set if |
1734 // any of the rules were applied. | 1760 // any of the rules were applied. |
1735 { | 1761 { |
1736 ProxyConfig config; | 1762 ProxyConfig config; |
1737 config.set_source(PROXY_CONFIG_SOURCE_TEST); | 1763 config.set_source(PROXY_CONFIG_SOURCE_TEST); |
1738 config.proxy_rules().ParseFromString("https=foopy2:8080"); | 1764 config.proxy_rules().ParseFromString("https=foopy2:8080"); |
1739 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1765 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1766 nullptr, NULL); |
1740 GURL test_url("http://www.google.com"); | 1767 GURL test_url("http://www.google.com"); |
1741 ProxyInfo info; | 1768 ProxyInfo info; |
1742 TestCompletionCallback callback; | 1769 TestCompletionCallback callback; |
1743 int rv = | 1770 int rv = |
1744 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1771 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1745 NULL, NULL, BoundNetLog()); | 1772 NULL, NULL, BoundNetLog()); |
1746 ASSERT_EQ(OK, rv); | 1773 ASSERT_EQ(OK, rv); |
1747 // Should be SOURCE_TEST, even if there are no HTTP proxies configured. | 1774 // Should be SOURCE_TEST, even if there are no HTTP proxies configured. |
1748 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); | 1775 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); |
1749 } | 1776 } |
1750 { | 1777 { |
1751 ProxyConfig config; | 1778 ProxyConfig config; |
1752 config.set_source(PROXY_CONFIG_SOURCE_TEST); | 1779 config.set_source(PROXY_CONFIG_SOURCE_TEST); |
1753 config.proxy_rules().ParseFromString("https=foopy2:8080"); | 1780 config.proxy_rules().ParseFromString("https=foopy2:8080"); |
1754 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1781 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1782 nullptr, NULL); |
1755 GURL test_url("https://www.google.com"); | 1783 GURL test_url("https://www.google.com"); |
1756 ProxyInfo info; | 1784 ProxyInfo info; |
1757 TestCompletionCallback callback; | 1785 TestCompletionCallback callback; |
1758 int rv = | 1786 int rv = |
1759 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1787 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1760 NULL, NULL, BoundNetLog()); | 1788 NULL, NULL, BoundNetLog()); |
1761 ASSERT_EQ(OK, rv); | 1789 ASSERT_EQ(OK, rv); |
1762 // Used the HTTPS proxy. So source should be TEST. | 1790 // Used the HTTPS proxy. So source should be TEST. |
1763 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); | 1791 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); |
1764 } | 1792 } |
1765 { | 1793 { |
1766 ProxyConfig config; | 1794 ProxyConfig config; |
1767 config.set_source(PROXY_CONFIG_SOURCE_TEST); | 1795 config.set_source(PROXY_CONFIG_SOURCE_TEST); |
1768 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1796 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1797 nullptr, NULL); |
1769 GURL test_url("http://www.google.com"); | 1798 GURL test_url("http://www.google.com"); |
1770 ProxyInfo info; | 1799 ProxyInfo info; |
1771 TestCompletionCallback callback; | 1800 TestCompletionCallback callback; |
1772 int rv = | 1801 int rv = |
1773 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1802 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1774 NULL, NULL, BoundNetLog()); | 1803 NULL, NULL, BoundNetLog()); |
1775 ASSERT_EQ(OK, rv); | 1804 ASSERT_EQ(OK, rv); |
1776 // ProxyConfig is empty. Source should still be TEST. | 1805 // ProxyConfig is empty. Source should still be TEST. |
1777 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); | 1806 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); |
1778 } | 1807 } |
1779 } | 1808 } |
1780 | 1809 |
1781 // If only HTTP and a SOCKS proxy are specified, check if ftp/https queries | 1810 // If only HTTP and a SOCKS proxy are specified, check if ftp/https queries |
1782 // fall back to the SOCKS proxy. | 1811 // fall back to the SOCKS proxy. |
1783 TEST_F(ProxyServiceTest, DefaultProxyFallbackToSOCKS) { | 1812 TEST_F(ProxyServiceTest, DefaultProxyFallbackToSOCKS) { |
1784 ProxyConfig config; | 1813 ProxyConfig config; |
1785 config.proxy_rules().ParseFromString("http=foopy1:8080;socks=foopy2:1080"); | 1814 config.proxy_rules().ParseFromString("http=foopy1:8080;socks=foopy2:1080"); |
1786 config.set_auto_detect(false); | 1815 config.set_auto_detect(false); |
1787 EXPECT_EQ(ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME, | 1816 EXPECT_EQ(ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME, |
1788 config.proxy_rules().type); | 1817 config.proxy_rules().type); |
1789 | 1818 |
1790 { | 1819 { |
1791 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1820 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1821 nullptr, NULL); |
1792 GURL test_url("http://www.msn.com"); | 1822 GURL test_url("http://www.msn.com"); |
1793 ProxyInfo info; | 1823 ProxyInfo info; |
1794 TestCompletionCallback callback; | 1824 TestCompletionCallback callback; |
1795 int rv = | 1825 int rv = |
1796 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1826 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1797 NULL, NULL, BoundNetLog()); | 1827 NULL, NULL, BoundNetLog()); |
1798 EXPECT_EQ(OK, rv); | 1828 EXPECT_EQ(OK, rv); |
1799 EXPECT_FALSE(info.is_direct()); | 1829 EXPECT_FALSE(info.is_direct()); |
1800 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 1830 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
1801 } | 1831 } |
1802 { | 1832 { |
1803 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1833 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1834 nullptr, NULL); |
1804 GURL test_url("ftp://ftp.google.com"); | 1835 GURL test_url("ftp://ftp.google.com"); |
1805 ProxyInfo info; | 1836 ProxyInfo info; |
1806 TestCompletionCallback callback; | 1837 TestCompletionCallback callback; |
1807 int rv = | 1838 int rv = |
1808 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1839 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1809 NULL, NULL, BoundNetLog()); | 1840 NULL, NULL, BoundNetLog()); |
1810 EXPECT_EQ(OK, rv); | 1841 EXPECT_EQ(OK, rv); |
1811 EXPECT_FALSE(info.is_direct()); | 1842 EXPECT_FALSE(info.is_direct()); |
1812 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); | 1843 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); |
1813 } | 1844 } |
1814 { | 1845 { |
1815 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1846 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1847 nullptr, NULL); |
1816 GURL test_url("https://webbranch.techcu.com"); | 1848 GURL test_url("https://webbranch.techcu.com"); |
1817 ProxyInfo info; | 1849 ProxyInfo info; |
1818 TestCompletionCallback callback; | 1850 TestCompletionCallback callback; |
1819 int rv = | 1851 int rv = |
1820 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1852 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1821 NULL, NULL, BoundNetLog()); | 1853 NULL, NULL, BoundNetLog()); |
1822 EXPECT_EQ(OK, rv); | 1854 EXPECT_EQ(OK, rv); |
1823 EXPECT_FALSE(info.is_direct()); | 1855 EXPECT_FALSE(info.is_direct()); |
1824 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); | 1856 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); |
1825 } | 1857 } |
1826 { | 1858 { |
1827 ProxyService service(new MockProxyConfigService(config), nullptr, NULL); | 1859 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
| 1860 nullptr, NULL); |
1828 GURL test_url("unknown://www.microsoft.com"); | 1861 GURL test_url("unknown://www.microsoft.com"); |
1829 ProxyInfo info; | 1862 ProxyInfo info; |
1830 TestCompletionCallback callback; | 1863 TestCompletionCallback callback; |
1831 int rv = | 1864 int rv = |
1832 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), | 1865 service.ResolveProxy(test_url, LOAD_NORMAL, &info, callback.callback(), |
1833 NULL, NULL, BoundNetLog()); | 1866 NULL, NULL, BoundNetLog()); |
1834 EXPECT_EQ(OK, rv); | 1867 EXPECT_EQ(OK, rv); |
1835 EXPECT_FALSE(info.is_direct()); | 1868 EXPECT_FALSE(info.is_direct()); |
1836 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); | 1869 EXPECT_EQ("socks4://foopy2:1080", info.proxy_server().ToURI()); |
1837 } | 1870 } |
1838 } | 1871 } |
1839 | 1872 |
1840 // Test cancellation of an in-progress request. | 1873 // Test cancellation of an in-progress request. |
1841 TEST_F(ProxyServiceTest, CancelInProgressRequest) { | 1874 TEST_F(ProxyServiceTest, CancelInProgressRequest) { |
1842 const GURL url1("http://request1"); | 1875 const GURL url1("http://request1"); |
1843 const GURL url2("http://request2"); | 1876 const GURL url2("http://request2"); |
1844 const GURL url3("http://request3"); | 1877 const GURL url3("http://request3"); |
1845 MockProxyConfigService* config_service = | 1878 MockProxyConfigService* config_service = |
1846 new MockProxyConfigService("http://foopy/proxy.pac"); | 1879 new MockProxyConfigService("http://foopy/proxy.pac"); |
1847 | 1880 |
1848 MockAsyncProxyResolver resolver; | 1881 MockAsyncProxyResolver resolver; |
1849 MockAsyncProxyResolverFactory* factory = | 1882 MockAsyncProxyResolverFactory* factory = |
1850 new MockAsyncProxyResolverFactory(false); | 1883 new MockAsyncProxyResolverFactory(false); |
1851 | 1884 |
1852 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1885 ProxyService service(make_scoped_ptr(config_service), |
| 1886 make_scoped_ptr(factory), NULL); |
1853 | 1887 |
1854 // Start 3 requests. | 1888 // Start 3 requests. |
1855 | 1889 |
1856 ProxyInfo info1; | 1890 ProxyInfo info1; |
1857 TestCompletionCallback callback1; | 1891 TestCompletionCallback callback1; |
1858 int rv = service.ResolveProxy(url1, LOAD_NORMAL, &info1, callback1.callback(), | 1892 int rv = service.ResolveProxy(url1, LOAD_NORMAL, &info1, callback1.callback(), |
1859 NULL, NULL, BoundNetLog()); | 1893 NULL, NULL, BoundNetLog()); |
1860 EXPECT_EQ(ERR_IO_PENDING, rv); | 1894 EXPECT_EQ(ERR_IO_PENDING, rv); |
1861 | 1895 |
1862 // Successfully initialize the PAC script. | 1896 // Successfully initialize the PAC script. |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1904 | 1938 |
1905 EXPECT_EQ(OK, callback3.WaitForResult()); | 1939 EXPECT_EQ(OK, callback3.WaitForResult()); |
1906 EXPECT_EQ("request3:80", info3.proxy_server().ToURI()); | 1940 EXPECT_EQ("request3:80", info3.proxy_server().ToURI()); |
1907 } | 1941 } |
1908 | 1942 |
1909 // Test the initial PAC download for resolver that expects bytes. | 1943 // Test the initial PAC download for resolver that expects bytes. |
1910 TEST_F(ProxyServiceTest, InitialPACScriptDownload) { | 1944 TEST_F(ProxyServiceTest, InitialPACScriptDownload) { |
1911 const GURL url1("http://request1"); | 1945 const GURL url1("http://request1"); |
1912 const GURL url2("http://request2"); | 1946 const GURL url2("http://request2"); |
1913 const GURL url3("http://request3"); | 1947 const GURL url3("http://request3"); |
1914 | |
1915 MockProxyConfigService* config_service = | 1948 MockProxyConfigService* config_service = |
1916 new MockProxyConfigService("http://foopy/proxy.pac"); | 1949 new MockProxyConfigService("http://foopy/proxy.pac"); |
1917 | 1950 |
1918 MockAsyncProxyResolver resolver; | 1951 MockAsyncProxyResolver resolver; |
1919 MockAsyncProxyResolverFactory* factory = | 1952 MockAsyncProxyResolverFactory* factory = |
1920 new MockAsyncProxyResolverFactory(true); | 1953 new MockAsyncProxyResolverFactory(true); |
1921 | 1954 |
1922 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1955 ProxyService service(make_scoped_ptr(config_service), |
| 1956 make_scoped_ptr(factory), NULL); |
1923 | 1957 |
1924 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1958 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
1925 service.SetProxyScriptFetchers( | 1959 service.SetProxyScriptFetchers( |
1926 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); | 1960 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
1927 | 1961 |
1928 // Start 3 requests. | 1962 // Start 3 requests. |
1929 | 1963 |
1930 ProxyInfo info1; | 1964 ProxyInfo info1; |
1931 TestCompletionCallback callback1; | 1965 TestCompletionCallback callback1; |
1932 ProxyService::PacRequest* request1; | 1966 ProxyService::PacRequest* request1; |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2014 TEST_F(ProxyServiceTest, ChangeScriptFetcherWhilePACDownloadInProgress) { | 2048 TEST_F(ProxyServiceTest, ChangeScriptFetcherWhilePACDownloadInProgress) { |
2015 const GURL url1("http://request1"); | 2049 const GURL url1("http://request1"); |
2016 const GURL url2("http://request2"); | 2050 const GURL url2("http://request2"); |
2017 MockProxyConfigService* config_service = | 2051 MockProxyConfigService* config_service = |
2018 new MockProxyConfigService("http://foopy/proxy.pac"); | 2052 new MockProxyConfigService("http://foopy/proxy.pac"); |
2019 | 2053 |
2020 MockAsyncProxyResolver resolver; | 2054 MockAsyncProxyResolver resolver; |
2021 MockAsyncProxyResolverFactory* factory = | 2055 MockAsyncProxyResolverFactory* factory = |
2022 new MockAsyncProxyResolverFactory(true); | 2056 new MockAsyncProxyResolverFactory(true); |
2023 | 2057 |
2024 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2058 ProxyService service(make_scoped_ptr(config_service), |
| 2059 make_scoped_ptr(factory), NULL); |
2025 | 2060 |
2026 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2061 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2027 service.SetProxyScriptFetchers( | 2062 service.SetProxyScriptFetchers( |
2028 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); | 2063 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
2029 | 2064 |
2030 // Start 2 requests. | 2065 // Start 2 requests. |
2031 | 2066 |
2032 ProxyInfo info1; | 2067 ProxyInfo info1; |
2033 TestCompletionCallback callback1; | 2068 TestCompletionCallback callback1; |
2034 int rv = service.ResolveProxy(url1, LOAD_NORMAL, &info1, callback1.callback(), | 2069 int rv = service.ResolveProxy(url1, LOAD_NORMAL, &info1, callback1.callback(), |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2072 | 2107 |
2073 // Test cancellation of a request, while the PAC script is being fetched. | 2108 // Test cancellation of a request, while the PAC script is being fetched. |
2074 TEST_F(ProxyServiceTest, CancelWhilePACFetching) { | 2109 TEST_F(ProxyServiceTest, CancelWhilePACFetching) { |
2075 MockProxyConfigService* config_service = | 2110 MockProxyConfigService* config_service = |
2076 new MockProxyConfigService("http://foopy/proxy.pac"); | 2111 new MockProxyConfigService("http://foopy/proxy.pac"); |
2077 | 2112 |
2078 MockAsyncProxyResolver resolver; | 2113 MockAsyncProxyResolver resolver; |
2079 MockAsyncProxyResolverFactory* factory = | 2114 MockAsyncProxyResolverFactory* factory = |
2080 new MockAsyncProxyResolverFactory(true); | 2115 new MockAsyncProxyResolverFactory(true); |
2081 | 2116 |
2082 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2117 ProxyService service(make_scoped_ptr(config_service), |
| 2118 make_scoped_ptr(factory), NULL); |
2083 | 2119 |
2084 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2120 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2085 service.SetProxyScriptFetchers( | 2121 service.SetProxyScriptFetchers( |
2086 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); | 2122 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
2087 | 2123 |
2088 // Start 3 requests. | 2124 // Start 3 requests. |
2089 ProxyInfo info1; | 2125 ProxyInfo info1; |
2090 TestCompletionCallback callback1; | 2126 TestCompletionCallback callback1; |
2091 ProxyService::PacRequest* request1; | 2127 ProxyService::PacRequest* request1; |
2092 BoundTestNetLog log1; | 2128 BoundTestNetLog log1; |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2169 const GURL url2("http://request2"); | 2205 const GURL url2("http://request2"); |
2170 ProxyConfig config; | 2206 ProxyConfig config; |
2171 config.set_auto_detect(true); | 2207 config.set_auto_detect(true); |
2172 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 2208 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
2173 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. | 2209 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. |
2174 | 2210 |
2175 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 2211 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
2176 MockAsyncProxyResolver resolver; | 2212 MockAsyncProxyResolver resolver; |
2177 MockAsyncProxyResolverFactory* factory = | 2213 MockAsyncProxyResolverFactory* factory = |
2178 new MockAsyncProxyResolverFactory(true); | 2214 new MockAsyncProxyResolverFactory(true); |
2179 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2215 ProxyService service(make_scoped_ptr(config_service), |
| 2216 make_scoped_ptr(factory), NULL); |
2180 | 2217 |
2181 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2218 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2182 service.SetProxyScriptFetchers( | 2219 service.SetProxyScriptFetchers( |
2183 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); | 2220 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
2184 | 2221 |
2185 // Start 2 requests. | 2222 // Start 2 requests. |
2186 | 2223 |
2187 ProxyInfo info1; | 2224 ProxyInfo info1; |
2188 TestCompletionCallback callback1; | 2225 TestCompletionCallback callback1; |
2189 int rv = service.ResolveProxy(url1, LOAD_NORMAL, &info1, callback1.callback(), | 2226 int rv = service.ResolveProxy(url1, LOAD_NORMAL, &info1, callback1.callback(), |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2247 const GURL url2("http://request2"); | 2284 const GURL url2("http://request2"); |
2248 ProxyConfig config; | 2285 ProxyConfig config; |
2249 config.set_auto_detect(true); | 2286 config.set_auto_detect(true); |
2250 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 2287 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
2251 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. | 2288 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. |
2252 | 2289 |
2253 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 2290 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
2254 MockAsyncProxyResolver resolver; | 2291 MockAsyncProxyResolver resolver; |
2255 MockAsyncProxyResolverFactory* factory = | 2292 MockAsyncProxyResolverFactory* factory = |
2256 new MockAsyncProxyResolverFactory(true); | 2293 new MockAsyncProxyResolverFactory(true); |
2257 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2294 ProxyService service(make_scoped_ptr(config_service), |
| 2295 make_scoped_ptr(factory), NULL); |
2258 | 2296 |
2259 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2297 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2260 service.SetProxyScriptFetchers( | 2298 service.SetProxyScriptFetchers( |
2261 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); | 2299 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
2262 | 2300 |
2263 // Start 2 requests. | 2301 // Start 2 requests. |
2264 | 2302 |
2265 ProxyInfo info1; | 2303 ProxyInfo info1; |
2266 TestCompletionCallback callback1; | 2304 TestCompletionCallback callback1; |
2267 int rv = service.ResolveProxy(url1, LOAD_NORMAL, &info1, callback1.callback(), | 2305 int rv = service.ResolveProxy(url1, LOAD_NORMAL, &info1, callback1.callback(), |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2318 // are given, then we will try them in that order. | 2356 // are given, then we will try them in that order. |
2319 TEST_F(ProxyServiceTest, FallbackFromAutodetectToCustomToManual) { | 2357 TEST_F(ProxyServiceTest, FallbackFromAutodetectToCustomToManual) { |
2320 ProxyConfig config; | 2358 ProxyConfig config; |
2321 config.set_auto_detect(true); | 2359 config.set_auto_detect(true); |
2322 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 2360 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
2323 config.proxy_rules().ParseFromString("http=foopy:80"); | 2361 config.proxy_rules().ParseFromString("http=foopy:80"); |
2324 | 2362 |
2325 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 2363 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
2326 MockAsyncProxyResolverFactory* factory = | 2364 MockAsyncProxyResolverFactory* factory = |
2327 new MockAsyncProxyResolverFactory(true); | 2365 new MockAsyncProxyResolverFactory(true); |
2328 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2366 ProxyService service(make_scoped_ptr(config_service), |
| 2367 make_scoped_ptr(factory), NULL); |
2329 | 2368 |
2330 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2369 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2331 service.SetProxyScriptFetchers( | 2370 service.SetProxyScriptFetchers( |
2332 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); | 2371 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
2333 | 2372 |
2334 // Start 2 requests. | 2373 // Start 2 requests. |
2335 | 2374 |
2336 ProxyInfo info1; | 2375 ProxyInfo info1; |
2337 TestCompletionCallback callback1; | 2376 TestCompletionCallback callback1; |
2338 int rv = | 2377 int rv = |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2379 ProxyConfig config; | 2418 ProxyConfig config; |
2380 config.set_auto_detect(true); | 2419 config.set_auto_detect(true); |
2381 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 2420 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
2382 config.proxy_rules().ParseFromString("http=foopy:80"); // Not used. | 2421 config.proxy_rules().ParseFromString("http=foopy:80"); // Not used. |
2383 config.proxy_rules().bypass_rules.ParseFromString("www.google.com"); | 2422 config.proxy_rules().bypass_rules.ParseFromString("www.google.com"); |
2384 | 2423 |
2385 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 2424 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
2386 MockAsyncProxyResolver resolver; | 2425 MockAsyncProxyResolver resolver; |
2387 MockAsyncProxyResolverFactory* factory = | 2426 MockAsyncProxyResolverFactory* factory = |
2388 new MockAsyncProxyResolverFactory(true); | 2427 new MockAsyncProxyResolverFactory(true); |
2389 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2428 ProxyService service(make_scoped_ptr(config_service), |
| 2429 make_scoped_ptr(factory), NULL); |
2390 | 2430 |
2391 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2431 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2392 service.SetProxyScriptFetchers( | 2432 service.SetProxyScriptFetchers( |
2393 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); | 2433 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
2394 | 2434 |
2395 // Start 1 requests. | 2435 // Start 1 requests. |
2396 | 2436 |
2397 ProxyInfo info1; | 2437 ProxyInfo info1; |
2398 TestCompletionCallback callback1; | 2438 TestCompletionCallback callback1; |
2399 int rv = | 2439 int rv = |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2448 // request to the script fetcher. When run under valgrind, should not | 2488 // request to the script fetcher. When run under valgrind, should not |
2449 // have any memory errors (used to be that the ProxyScriptFetcher was | 2489 // have any memory errors (used to be that the ProxyScriptFetcher was |
2450 // being deleted prior to the InitProxyResolver). | 2490 // being deleted prior to the InitProxyResolver). |
2451 TEST_F(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingFetch) { | 2491 TEST_F(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingFetch) { |
2452 ProxyConfig config = | 2492 ProxyConfig config = |
2453 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac")); | 2493 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac")); |
2454 | 2494 |
2455 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 2495 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
2456 MockAsyncProxyResolverFactory* factory = | 2496 MockAsyncProxyResolverFactory* factory = |
2457 new MockAsyncProxyResolverFactory(true); | 2497 new MockAsyncProxyResolverFactory(true); |
2458 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2498 ProxyService service(make_scoped_ptr(config_service), |
| 2499 make_scoped_ptr(factory), NULL); |
2459 | 2500 |
2460 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2501 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2461 service.SetProxyScriptFetchers( | 2502 service.SetProxyScriptFetchers( |
2462 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); | 2503 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
2463 | 2504 |
2464 // Start 1 request. | 2505 // Start 1 request. |
2465 | 2506 |
2466 ProxyInfo info1; | 2507 ProxyInfo info1; |
2467 TestCompletionCallback callback1; | 2508 TestCompletionCallback callback1; |
2468 int rv = | 2509 int rv = |
(...skipping 14 matching lines...) Expand all Loading... |
2483 // request to the proxy resolver. When run under valgrind, should not | 2524 // request to the proxy resolver. When run under valgrind, should not |
2484 // have any memory errors (used to be that the ProxyResolver was | 2525 // have any memory errors (used to be that the ProxyResolver was |
2485 // being deleted prior to the InitProxyResolver). | 2526 // being deleted prior to the InitProxyResolver). |
2486 TEST_F(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingSet) { | 2527 TEST_F(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingSet) { |
2487 MockProxyConfigService* config_service = | 2528 MockProxyConfigService* config_service = |
2488 new MockProxyConfigService("http://foopy/proxy.pac"); | 2529 new MockProxyConfigService("http://foopy/proxy.pac"); |
2489 | 2530 |
2490 MockAsyncProxyResolverFactory* factory = | 2531 MockAsyncProxyResolverFactory* factory = |
2491 new MockAsyncProxyResolverFactory(false); | 2532 new MockAsyncProxyResolverFactory(false); |
2492 | 2533 |
2493 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2534 ProxyService service(make_scoped_ptr(config_service), |
| 2535 make_scoped_ptr(factory), NULL); |
2494 | 2536 |
2495 GURL url("http://www.google.com/"); | 2537 GURL url("http://www.google.com/"); |
2496 | 2538 |
2497 ProxyInfo info; | 2539 ProxyInfo info; |
2498 TestCompletionCallback callback; | 2540 TestCompletionCallback callback; |
2499 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), | 2541 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), |
2500 NULL, NULL, BoundNetLog()); | 2542 NULL, NULL, BoundNetLog()); |
2501 EXPECT_EQ(ERR_IO_PENDING, rv); | 2543 EXPECT_EQ(ERR_IO_PENDING, rv); |
2502 | 2544 |
2503 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 2545 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
2504 factory->pending_requests()[0]->script_data()->url()); | 2546 factory->pending_requests()[0]->script_data()->url()); |
2505 } | 2547 } |
2506 | 2548 |
2507 TEST_F(ProxyServiceTest, ResetProxyConfigService) { | 2549 TEST_F(ProxyServiceTest, ResetProxyConfigService) { |
2508 ProxyConfig config1; | 2550 ProxyConfig config1; |
2509 config1.proxy_rules().ParseFromString("foopy1:8080"); | 2551 config1.proxy_rules().ParseFromString("foopy1:8080"); |
2510 config1.set_auto_detect(false); | 2552 config1.set_auto_detect(false); |
2511 ProxyService service(new MockProxyConfigService(config1), nullptr, NULL); | 2553 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config1)), |
| 2554 nullptr, NULL); |
2512 | 2555 |
2513 ProxyInfo info; | 2556 ProxyInfo info; |
2514 TestCompletionCallback callback1; | 2557 TestCompletionCallback callback1; |
2515 int rv = | 2558 int rv = |
2516 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info, | 2559 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info, |
2517 callback1.callback(), NULL, NULL, BoundNetLog()); | 2560 callback1.callback(), NULL, NULL, BoundNetLog()); |
2518 EXPECT_EQ(OK, rv); | 2561 EXPECT_EQ(OK, rv); |
2519 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 2562 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
2520 | 2563 |
2521 ProxyConfig config2; | 2564 ProxyConfig config2; |
2522 config2.proxy_rules().ParseFromString("foopy2:8080"); | 2565 config2.proxy_rules().ParseFromString("foopy2:8080"); |
2523 config2.set_auto_detect(false); | 2566 config2.set_auto_detect(false); |
2524 service.ResetConfigService(new MockProxyConfigService(config2)); | 2567 service.ResetConfigService( |
| 2568 make_scoped_ptr(new MockProxyConfigService(config2))); |
2525 TestCompletionCallback callback2; | 2569 TestCompletionCallback callback2; |
2526 rv = service.ResolveProxy(GURL("http://request2"), LOAD_NORMAL, &info, | 2570 rv = service.ResolveProxy(GURL("http://request2"), LOAD_NORMAL, &info, |
2527 callback2.callback(), NULL, NULL, BoundNetLog()); | 2571 callback2.callback(), NULL, NULL, BoundNetLog()); |
2528 EXPECT_EQ(OK, rv); | 2572 EXPECT_EQ(OK, rv); |
2529 EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); | 2573 EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); |
2530 } | 2574 } |
2531 | 2575 |
2532 // Test that when going from a configuration that required PAC to one | 2576 // Test that when going from a configuration that required PAC to one |
2533 // that does NOT, we unset the variable |should_use_proxy_resolver_|. | 2577 // that does NOT, we unset the variable |should_use_proxy_resolver_|. |
2534 TEST_F(ProxyServiceTest, UpdateConfigFromPACToDirect) { | 2578 TEST_F(ProxyServiceTest, UpdateConfigFromPACToDirect) { |
2535 ProxyConfig config = ProxyConfig::CreateAutoDetect(); | 2579 ProxyConfig config = ProxyConfig::CreateAutoDetect(); |
2536 | 2580 |
2537 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 2581 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
2538 MockAsyncProxyResolver resolver; | 2582 MockAsyncProxyResolver resolver; |
2539 MockAsyncProxyResolverFactory* factory = | 2583 MockAsyncProxyResolverFactory* factory = |
2540 new MockAsyncProxyResolverFactory(false); | 2584 new MockAsyncProxyResolverFactory(false); |
2541 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2585 ProxyService service(make_scoped_ptr(config_service), |
| 2586 make_scoped_ptr(factory), NULL); |
2542 | 2587 |
2543 // Start 1 request. | 2588 // Start 1 request. |
2544 | 2589 |
2545 ProxyInfo info1; | 2590 ProxyInfo info1; |
2546 TestCompletionCallback callback1; | 2591 TestCompletionCallback callback1; |
2547 int rv = | 2592 int rv = |
2548 service.ResolveProxy(GURL("http://www.google.com"), LOAD_NORMAL, &info1, | 2593 service.ResolveProxy(GURL("http://www.google.com"), LOAD_NORMAL, &info1, |
2549 callback1.callback(), NULL, NULL, BoundNetLog()); | 2594 callback1.callback(), NULL, NULL, BoundNetLog()); |
2550 EXPECT_EQ(ERR_IO_PENDING, rv); | 2595 EXPECT_EQ(ERR_IO_PENDING, rv); |
2551 | 2596 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2583 TEST_F(ProxyServiceTest, NetworkChangeTriggersPacRefetch) { | 2628 TEST_F(ProxyServiceTest, NetworkChangeTriggersPacRefetch) { |
2584 MockProxyConfigService* config_service = | 2629 MockProxyConfigService* config_service = |
2585 new MockProxyConfigService("http://foopy/proxy.pac"); | 2630 new MockProxyConfigService("http://foopy/proxy.pac"); |
2586 | 2631 |
2587 MockAsyncProxyResolver resolver; | 2632 MockAsyncProxyResolver resolver; |
2588 MockAsyncProxyResolverFactory* factory = | 2633 MockAsyncProxyResolverFactory* factory = |
2589 new MockAsyncProxyResolverFactory(true); | 2634 new MockAsyncProxyResolverFactory(true); |
2590 | 2635 |
2591 TestNetLog log; | 2636 TestNetLog log; |
2592 | 2637 |
2593 ProxyService service(config_service, make_scoped_ptr(factory), &log); | 2638 ProxyService service(make_scoped_ptr(config_service), |
| 2639 make_scoped_ptr(factory), &log); |
2594 | 2640 |
2595 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2641 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2596 service.SetProxyScriptFetchers( | 2642 service.SetProxyScriptFetchers( |
2597 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); | 2643 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
2598 | 2644 |
2599 // Disable the "wait after IP address changes" hack, so this unit-test can | 2645 // Disable the "wait after IP address changes" hack, so this unit-test can |
2600 // complete quickly. | 2646 // complete quickly. |
2601 service.set_stall_proxy_auto_config_delay(base::TimeDelta()); | 2647 service.set_stall_proxy_auto_config_delay(base::TimeDelta()); |
2602 | 2648 |
2603 // Start 1 request. | 2649 // Start 1 request. |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2703 ImmediatePollPolicy poll_policy; | 2749 ImmediatePollPolicy poll_policy; |
2704 ProxyService::set_pac_script_poll_policy(&poll_policy); | 2750 ProxyService::set_pac_script_poll_policy(&poll_policy); |
2705 | 2751 |
2706 MockProxyConfigService* config_service = | 2752 MockProxyConfigService* config_service = |
2707 new MockProxyConfigService("http://foopy/proxy.pac"); | 2753 new MockProxyConfigService("http://foopy/proxy.pac"); |
2708 | 2754 |
2709 MockAsyncProxyResolver resolver; | 2755 MockAsyncProxyResolver resolver; |
2710 MockAsyncProxyResolverFactory* factory = | 2756 MockAsyncProxyResolverFactory* factory = |
2711 new MockAsyncProxyResolverFactory(true); | 2757 new MockAsyncProxyResolverFactory(true); |
2712 | 2758 |
2713 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2759 ProxyService service(make_scoped_ptr(config_service), |
| 2760 make_scoped_ptr(factory), NULL); |
2714 | 2761 |
2715 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2762 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2716 service.SetProxyScriptFetchers( | 2763 service.SetProxyScriptFetchers( |
2717 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); | 2764 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
2718 | 2765 |
2719 // Start 1 request. | 2766 // Start 1 request. |
2720 | 2767 |
2721 ProxyInfo info1; | 2768 ProxyInfo info1; |
2722 TestCompletionCallback callback1; | 2769 TestCompletionCallback callback1; |
2723 int rv = | 2770 int rv = |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2808 ImmediatePollPolicy poll_policy; | 2855 ImmediatePollPolicy poll_policy; |
2809 ProxyService::set_pac_script_poll_policy(&poll_policy); | 2856 ProxyService::set_pac_script_poll_policy(&poll_policy); |
2810 | 2857 |
2811 MockProxyConfigService* config_service = | 2858 MockProxyConfigService* config_service = |
2812 new MockProxyConfigService("http://foopy/proxy.pac"); | 2859 new MockProxyConfigService("http://foopy/proxy.pac"); |
2813 | 2860 |
2814 MockAsyncProxyResolver resolver; | 2861 MockAsyncProxyResolver resolver; |
2815 MockAsyncProxyResolverFactory* factory = | 2862 MockAsyncProxyResolverFactory* factory = |
2816 new MockAsyncProxyResolverFactory(true); | 2863 new MockAsyncProxyResolverFactory(true); |
2817 | 2864 |
2818 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2865 ProxyService service(make_scoped_ptr(config_service), |
| 2866 make_scoped_ptr(factory), NULL); |
2819 | 2867 |
2820 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2868 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2821 service.SetProxyScriptFetchers( | 2869 service.SetProxyScriptFetchers( |
2822 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); | 2870 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
2823 | 2871 |
2824 // Start 1 request. | 2872 // Start 1 request. |
2825 | 2873 |
2826 ProxyInfo info1; | 2874 ProxyInfo info1; |
2827 TestCompletionCallback callback1; | 2875 TestCompletionCallback callback1; |
2828 int rv = | 2876 int rv = |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2919 ImmediatePollPolicy poll_policy; | 2967 ImmediatePollPolicy poll_policy; |
2920 ProxyService::set_pac_script_poll_policy(&poll_policy); | 2968 ProxyService::set_pac_script_poll_policy(&poll_policy); |
2921 | 2969 |
2922 MockProxyConfigService* config_service = | 2970 MockProxyConfigService* config_service = |
2923 new MockProxyConfigService("http://foopy/proxy.pac"); | 2971 new MockProxyConfigService("http://foopy/proxy.pac"); |
2924 | 2972 |
2925 MockAsyncProxyResolver resolver; | 2973 MockAsyncProxyResolver resolver; |
2926 MockAsyncProxyResolverFactory* factory = | 2974 MockAsyncProxyResolverFactory* factory = |
2927 new MockAsyncProxyResolverFactory(true); | 2975 new MockAsyncProxyResolverFactory(true); |
2928 | 2976 |
2929 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2977 ProxyService service(make_scoped_ptr(config_service), |
| 2978 make_scoped_ptr(factory), NULL); |
2930 | 2979 |
2931 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2980 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2932 service.SetProxyScriptFetchers( | 2981 service.SetProxyScriptFetchers( |
2933 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); | 2982 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
2934 | 2983 |
2935 // Start 1 request. | 2984 // Start 1 request. |
2936 | 2985 |
2937 ProxyInfo info1; | 2986 ProxyInfo info1; |
2938 TestCompletionCallback callback1; | 2987 TestCompletionCallback callback1; |
2939 int rv = | 2988 int rv = |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3027 ImmediatePollPolicy poll_policy; | 3076 ImmediatePollPolicy poll_policy; |
3028 ProxyService::set_pac_script_poll_policy(&poll_policy); | 3077 ProxyService::set_pac_script_poll_policy(&poll_policy); |
3029 | 3078 |
3030 MockProxyConfigService* config_service = | 3079 MockProxyConfigService* config_service = |
3031 new MockProxyConfigService("http://foopy/proxy.pac"); | 3080 new MockProxyConfigService("http://foopy/proxy.pac"); |
3032 | 3081 |
3033 MockAsyncProxyResolver resolver; | 3082 MockAsyncProxyResolver resolver; |
3034 MockAsyncProxyResolverFactory* factory = | 3083 MockAsyncProxyResolverFactory* factory = |
3035 new MockAsyncProxyResolverFactory(true); | 3084 new MockAsyncProxyResolverFactory(true); |
3036 | 3085 |
3037 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 3086 ProxyService service(make_scoped_ptr(config_service), |
| 3087 make_scoped_ptr(factory), NULL); |
3038 | 3088 |
3039 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 3089 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
3040 service.SetProxyScriptFetchers( | 3090 service.SetProxyScriptFetchers( |
3041 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); | 3091 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
3042 | 3092 |
3043 // Start 1 request. | 3093 // Start 1 request. |
3044 | 3094 |
3045 ProxyInfo info1; | 3095 ProxyInfo info1; |
3046 TestCompletionCallback callback1; | 3096 TestCompletionCallback callback1; |
3047 int rv = | 3097 int rv = |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3180 ImmediateAfterActivityPollPolicy poll_policy; | 3230 ImmediateAfterActivityPollPolicy poll_policy; |
3181 ProxyService::set_pac_script_poll_policy(&poll_policy); | 3231 ProxyService::set_pac_script_poll_policy(&poll_policy); |
3182 | 3232 |
3183 MockProxyConfigService* config_service = | 3233 MockProxyConfigService* config_service = |
3184 new MockProxyConfigService("http://foopy/proxy.pac"); | 3234 new MockProxyConfigService("http://foopy/proxy.pac"); |
3185 | 3235 |
3186 MockAsyncProxyResolver resolver; | 3236 MockAsyncProxyResolver resolver; |
3187 MockAsyncProxyResolverFactory* factory = | 3237 MockAsyncProxyResolverFactory* factory = |
3188 new MockAsyncProxyResolverFactory(true); | 3238 new MockAsyncProxyResolverFactory(true); |
3189 | 3239 |
3190 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 3240 ProxyService service(make_scoped_ptr(config_service), |
| 3241 make_scoped_ptr(factory), NULL); |
3191 | 3242 |
3192 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 3243 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
3193 service.SetProxyScriptFetchers( | 3244 service.SetProxyScriptFetchers( |
3194 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); | 3245 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
3195 | 3246 |
3196 // Start 1 request. | 3247 // Start 1 request. |
3197 | 3248 |
3198 ProxyInfo info1; | 3249 ProxyInfo info1; |
3199 TestCompletionCallback callback1; | 3250 TestCompletionCallback callback1; |
3200 int rv = | 3251 int rv = |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3279 } | 3330 } |
3280 | 3331 |
3281 // Test that the synchronous resolution fails when a PAC script is active. | 3332 // Test that the synchronous resolution fails when a PAC script is active. |
3282 TEST_F(ProxyServiceTest, SynchronousWithPAC) { | 3333 TEST_F(ProxyServiceTest, SynchronousWithPAC) { |
3283 MockProxyConfigService* config_service = | 3334 MockProxyConfigService* config_service = |
3284 new MockProxyConfigService("http://foopy/proxy.pac"); | 3335 new MockProxyConfigService("http://foopy/proxy.pac"); |
3285 | 3336 |
3286 MockAsyncProxyResolverFactory* factory = | 3337 MockAsyncProxyResolverFactory* factory = |
3287 new MockAsyncProxyResolverFactory(false); | 3338 new MockAsyncProxyResolverFactory(false); |
3288 | 3339 |
3289 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 3340 ProxyService service(make_scoped_ptr(config_service), |
| 3341 make_scoped_ptr(factory), NULL); |
3290 | 3342 |
3291 GURL url("http://www.google.com/"); | 3343 GURL url("http://www.google.com/"); |
3292 | 3344 |
3293 ProxyInfo info; | 3345 ProxyInfo info; |
3294 info.UseDirect(); | 3346 info.UseDirect(); |
3295 BoundTestNetLog log; | 3347 BoundTestNetLog log; |
3296 | 3348 |
3297 bool synchronous_success = service.TryResolveProxySynchronously( | 3349 bool synchronous_success = service.TryResolveProxySynchronously( |
3298 url, LOAD_NORMAL, &info, NULL, log.bound()); | 3350 url, LOAD_NORMAL, &info, NULL, log.bound()); |
3299 EXPECT_FALSE(synchronous_success); | 3351 EXPECT_FALSE(synchronous_success); |
3300 | 3352 |
3301 // |info| should not have been modified. | 3353 // |info| should not have been modified. |
3302 EXPECT_TRUE(info.is_direct()); | 3354 EXPECT_TRUE(info.is_direct()); |
3303 } | 3355 } |
3304 | 3356 |
3305 // Test that synchronous results are returned correctly if a fixed proxy | 3357 // Test that synchronous results are returned correctly if a fixed proxy |
3306 // configuration is active. | 3358 // configuration is active. |
3307 TEST_F(ProxyServiceTest, SynchronousWithFixedConfiguration) { | 3359 TEST_F(ProxyServiceTest, SynchronousWithFixedConfiguration) { |
3308 ProxyConfig config; | 3360 ProxyConfig config; |
3309 config.proxy_rules().ParseFromString("foopy1:8080"); | 3361 config.proxy_rules().ParseFromString("foopy1:8080"); |
3310 config.set_auto_detect(false); | 3362 config.set_auto_detect(false); |
3311 | 3363 |
3312 MockAsyncProxyResolverFactory* factory = | 3364 MockAsyncProxyResolverFactory* factory = |
3313 new MockAsyncProxyResolverFactory(false); | 3365 new MockAsyncProxyResolverFactory(false); |
3314 | 3366 |
3315 ProxyService service(new MockProxyConfigService(config), | 3367 ProxyService service(make_scoped_ptr(new MockProxyConfigService(config)), |
3316 make_scoped_ptr(factory), NULL); | 3368 make_scoped_ptr(factory), NULL); |
3317 | 3369 |
3318 GURL url("http://www.google.com/"); | 3370 GURL url("http://www.google.com/"); |
3319 | 3371 |
3320 ProxyInfo info; | 3372 ProxyInfo info; |
3321 BoundTestNetLog log; | 3373 BoundTestNetLog log; |
3322 | 3374 |
3323 bool synchronous_success = service.TryResolveProxySynchronously( | 3375 bool synchronous_success = service.TryResolveProxySynchronously( |
3324 url, LOAD_NORMAL, &info, NULL, log.bound()); | 3376 url, LOAD_NORMAL, &info, NULL, log.bound()); |
3325 EXPECT_TRUE(synchronous_success); | 3377 EXPECT_TRUE(synchronous_success); |
3326 EXPECT_FALSE(info.is_direct()); | 3378 EXPECT_FALSE(info.is_direct()); |
3327 EXPECT_EQ("foopy1", info.proxy_server().host_port_pair().host()); | 3379 EXPECT_EQ("foopy1", info.proxy_server().host_port_pair().host()); |
3328 | 3380 |
3329 // No request should have been queued. | 3381 // No request should have been queued. |
3330 EXPECT_EQ(0u, factory->pending_requests().size()); | 3382 EXPECT_EQ(0u, factory->pending_requests().size()); |
3331 } | 3383 } |
3332 | 3384 |
3333 } // namespace net | 3385 } // namespace net |
OLD | NEW |