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

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

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

Powered by Google App Engine
This is Rietveld 408576698