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