Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(539)

Side by Side Diff: net/proxy/proxy_service_unittest.cc

Issue 1356933002: make ProxyService::CreateSystemProxyConfigService return scoped_ptrs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: small ios fix Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698