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

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

Issue 73038: Allows a proxy bypass entry to match on a specific port, used by the... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/proxy/proxy_service.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 "base/compiler_specific.h" 5 #include "base/compiler_specific.h"
6 #include "googleurl/src/gurl.h" 6 #include "googleurl/src/gurl.h"
7 #include "net/base/net_errors.h" 7 #include "net/base/net_errors.h"
8 #include "net/proxy/proxy_config_service.h" 8 #include "net/proxy/proxy_config_service.h"
9 #include "net/proxy/proxy_resolver.h" 9 #include "net/proxy/proxy_resolver.h"
10 #include "net/proxy/proxy_script_fetcher.h" 10 #include "net/proxy/proxy_script_fetcher.h"
(...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 EXPECT_EQ(rv, net::OK); 679 EXPECT_EQ(rv, net::OK);
680 680
681 // The first proxy is still there since the list of bad proxies got cleared. 681 // The first proxy is still there since the list of bad proxies got cleared.
682 EXPECT_FALSE(info3.is_direct()); 682 EXPECT_FALSE(info3.is_direct());
683 EXPECT_EQ("foopy1:8080", info3.proxy_server().ToURI()); 683 EXPECT_EQ("foopy1:8080", info3.proxy_server().ToURI());
684 } 684 }
685 685
686 TEST(ProxyServiceTest, ProxyBypassList) { 686 TEST(ProxyServiceTest, ProxyBypassList) {
687 // Test what happens when a proxy bypass list is specified. 687 // Test what happens when a proxy bypass list is specified.
688 688
689 net::ProxyInfo info;
689 net::ProxyConfig config; 690 net::ProxyConfig config;
690 config.proxy_rules.ParseFromString("foopy1:8080;foopy2:9090"); 691 config.proxy_rules.ParseFromString("foopy1:8080;foopy2:9090");
691 config.auto_detect = false; 692 config.auto_detect = false;
692 config.proxy_bypass_local_names = true; 693 config.proxy_bypass_local_names = true;
693 694
694 SyncProxyService service(new MockProxyConfigService(config), 695 {
695 new MockProxyResolver()); 696 SyncProxyService service(new MockProxyConfigService(config),
696 GURL url("http://www.google.com/"); 697 new MockProxyResolver());
697 // Get the proxy information. 698 GURL url("http://www.google.com/");
698 net::ProxyInfo info; 699 // Get the proxy information.
699 int rv = service.ResolveProxy(url, &info); 700 int rv = service.ResolveProxy(url, &info);
700 EXPECT_EQ(rv, net::OK); 701 EXPECT_EQ(rv, net::OK);
701 EXPECT_FALSE(info.is_direct()); 702 EXPECT_FALSE(info.is_direct());
703 }
702 704
703 SyncProxyService service1(new MockProxyConfigService(config), 705 {
704 new MockProxyResolver()); 706 SyncProxyService service(new MockProxyConfigService(config),
705 GURL test_url1("local"); 707 new MockProxyResolver());
706 net::ProxyInfo info1; 708 GURL test_url("local");
707 rv = service1.ResolveProxy(test_url1, &info1); 709 int rv = service.ResolveProxy(test_url, &info);
708 EXPECT_EQ(rv, net::OK); 710 EXPECT_EQ(rv, net::OK);
709 EXPECT_TRUE(info1.is_direct()); 711 EXPECT_TRUE(info.is_direct());
712 }
710 713
711 config.proxy_bypass.clear(); 714 config.proxy_bypass.clear();
712 config.proxy_bypass.push_back("*.org"); 715 config.proxy_bypass.push_back("*.org");
713 config.proxy_bypass_local_names = true; 716 config.proxy_bypass_local_names = true;
714 SyncProxyService service2(new MockProxyConfigService(config), 717 {
715 new MockProxyResolver); 718 SyncProxyService service(new MockProxyConfigService(config),
716 GURL test_url2("http://www.webkit.org"); 719 new MockProxyResolver);
717 net::ProxyInfo info2; 720 GURL test_url("http://www.webkit.org");
718 rv = service2.ResolveProxy(test_url2, &info2); 721 int rv = service.ResolveProxy(test_url, &info);
719 EXPECT_EQ(rv, net::OK); 722 EXPECT_EQ(rv, net::OK);
720 EXPECT_TRUE(info2.is_direct()); 723 EXPECT_TRUE(info.is_direct());
724 }
721 725
722 config.proxy_bypass.clear(); 726 config.proxy_bypass.clear();
723 config.proxy_bypass.push_back("*.org"); 727 config.proxy_bypass.push_back("*.org");
724 config.proxy_bypass.push_back("7*"); 728 config.proxy_bypass.push_back("7*");
725 config.proxy_bypass_local_names = true; 729 config.proxy_bypass_local_names = true;
726 SyncProxyService service3(new MockProxyConfigService(config), 730 {
727 new MockProxyResolver); 731 SyncProxyService service(new MockProxyConfigService(config),
728 GURL test_url3("http://74.125.19.147"); 732 new MockProxyResolver);
729 net::ProxyInfo info3; 733 GURL test_url("http://74.125.19.147");
730 rv = service3.ResolveProxy(test_url3, &info3); 734 int rv = service.ResolveProxy(test_url, &info);
731 EXPECT_EQ(rv, net::OK); 735 EXPECT_EQ(rv, net::OK);
732 EXPECT_TRUE(info3.is_direct()); 736 EXPECT_TRUE(info.is_direct());
737 }
733 738
734 config.proxy_bypass.clear(); 739 config.proxy_bypass.clear();
735 config.proxy_bypass.push_back("*.org"); 740 config.proxy_bypass.push_back("*.org");
736 config.proxy_bypass_local_names = true; 741 config.proxy_bypass_local_names = true;
737 SyncProxyService service4(new MockProxyConfigService(config), 742 {
738 new MockProxyResolver); 743 SyncProxyService service(new MockProxyConfigService(config),
739 GURL test_url4("http://www.msn.com"); 744 new MockProxyResolver);
740 net::ProxyInfo info4; 745 GURL test_url("http://www.msn.com");
741 rv = service4.ResolveProxy(test_url4, &info4); 746 int rv = service.ResolveProxy(test_url, &info);
742 EXPECT_EQ(rv, net::OK); 747 EXPECT_EQ(rv, net::OK);
743 EXPECT_FALSE(info4.is_direct()); 748 EXPECT_FALSE(info.is_direct());
749 }
744 750
745 config.proxy_bypass.clear(); 751 config.proxy_bypass.clear();
746 config.proxy_bypass.push_back("*.MSN.COM"); 752 config.proxy_bypass.push_back("*.MSN.COM");
747 config.proxy_bypass_local_names = true; 753 config.proxy_bypass_local_names = true;
748 SyncProxyService service5(new MockProxyConfigService(config), 754 {
749 new MockProxyResolver); 755 SyncProxyService service(new MockProxyConfigService(config),
750 GURL test_url5("http://www.msnbc.msn.com"); 756 new MockProxyResolver);
751 net::ProxyInfo info5; 757 GURL test_url("http://www.msnbc.msn.com");
752 rv = service5.ResolveProxy(test_url5, &info5); 758 int rv = service.ResolveProxy(test_url, &info);
753 EXPECT_EQ(rv, net::OK); 759 EXPECT_EQ(rv, net::OK);
754 EXPECT_TRUE(info5.is_direct()); 760 EXPECT_TRUE(info.is_direct());
761 }
755 762
756 config.proxy_bypass.clear(); 763 config.proxy_bypass.clear();
757 config.proxy_bypass.push_back("*.msn.com"); 764 config.proxy_bypass.push_back("*.msn.com");
758 config.proxy_bypass_local_names = true; 765 config.proxy_bypass_local_names = true;
759 SyncProxyService service6(new MockProxyConfigService(config), 766 {
760 new MockProxyResolver); 767 SyncProxyService service(new MockProxyConfigService(config),
761 GURL test_url6("HTTP://WWW.MSNBC.MSN.COM"); 768 new MockProxyResolver);
762 net::ProxyInfo info6; 769 GURL test_url("HTTP://WWW.MSNBC.MSN.COM");
763 rv = service6.ResolveProxy(test_url6, &info6); 770 int rv = service.ResolveProxy(test_url, &info);
764 EXPECT_EQ(rv, net::OK); 771 EXPECT_EQ(rv, net::OK);
765 EXPECT_TRUE(info6.is_direct()); 772 EXPECT_TRUE(info.is_direct());
773 }
774 }
775
776 TEST(ProxyServiceTest, ProxyBypassListWithPorts) {
777 // Test port specification in bypass list entries.
778 net::ProxyInfo info;
779 net::ProxyConfig config;
780 config.proxy_rules.ParseFromString("foopy1:8080;foopy2:9090");
781 config.auto_detect = false;
782 config.proxy_bypass_local_names = false;
783
784 config.proxy_bypass.clear();
785 config.proxy_bypass.push_back("*.example.com:99");
786 {
787 SyncProxyService service(new MockProxyConfigService(config),
788 new MockProxyResolver);
789 {
790 GURL test_url("http://www.example.com:99");
791 int rv = service.ResolveProxy(test_url, &info);
792 EXPECT_EQ(rv, net::OK);
793 EXPECT_TRUE(info.is_direct());
794 }
795 {
796 GURL test_url("http://www.example.com:100");
797 int rv = service.ResolveProxy(test_url, &info);
798 EXPECT_EQ(rv, net::OK);
799 EXPECT_FALSE(info.is_direct());
800 }
801 {
802 GURL test_url("http://www.example.com");
803 int rv = service.ResolveProxy(test_url, &info);
804 EXPECT_EQ(rv, net::OK);
805 EXPECT_FALSE(info.is_direct());
806 }
807 }
808
809 config.proxy_bypass.clear();
810 config.proxy_bypass.push_back("*.example.com:80");
811 {
812 SyncProxyService service(new MockProxyConfigService(config),
813 new MockProxyResolver);
814 GURL test_url("http://www.example.com");
815 int rv = service.ResolveProxy(test_url, &info);
816 EXPECT_EQ(rv, net::OK);
817 EXPECT_TRUE(info.is_direct());
818 }
819
820 config.proxy_bypass.clear();
821 config.proxy_bypass.push_back("*.example.com");
822 {
823 SyncProxyService service(new MockProxyConfigService(config),
824 new MockProxyResolver);
825 GURL test_url("http://www.example.com:99");
826 int rv = service.ResolveProxy(test_url, &info);
827 EXPECT_EQ(rv, net::OK);
828 EXPECT_TRUE(info.is_direct());
829 }
830
831 // IPv6 with port.
832 config.proxy_bypass.clear();
833 config.proxy_bypass.push_back("[3ffe:2a00:100:7031::1]:99");
834 {
835 SyncProxyService service(new MockProxyConfigService(config),
836 new MockProxyResolver);
837 {
838 GURL test_url("http://[3ffe:2a00:100:7031::1]:99/");
839 int rv = service.ResolveProxy(test_url, &info);
840 EXPECT_EQ(rv, net::OK);
841 EXPECT_TRUE(info.is_direct());
842 }
843 {
844 GURL test_url("http://[3ffe:2a00:100:7031::1]/");
845 int rv = service.ResolveProxy(test_url, &info);
846 EXPECT_EQ(rv, net::OK);
847 EXPECT_FALSE(info.is_direct());
848 }
849 }
850
851 // IPv6 without port. The bypass entry ought to work without the
852 // brackets, but the bypass matching logic in ProxyService is
853 // currently limited.
854 config.proxy_bypass.clear();
855 config.proxy_bypass.push_back("[3ffe:2a00:100:7031::1]");
856 {
857 SyncProxyService service(new MockProxyConfigService(config),
858 new MockProxyResolver);
859 {
860 GURL test_url("http://[3ffe:2a00:100:7031::1]:99/");
861 int rv = service.ResolveProxy(test_url, &info);
862 EXPECT_EQ(rv, net::OK);
863 EXPECT_TRUE(info.is_direct());
864 }
865 {
866 GURL test_url("http://[3ffe:2a00:100:7031::1]/");
867 int rv = service.ResolveProxy(test_url, &info);
868 EXPECT_EQ(rv, net::OK);
869 EXPECT_TRUE(info.is_direct());
870 }
871 }
766 } 872 }
767 873
768 TEST(ProxyServiceTest, PerProtocolProxyTests) { 874 TEST(ProxyServiceTest, PerProtocolProxyTests) {
769 net::ProxyConfig config; 875 net::ProxyConfig config;
770 config.proxy_rules.ParseFromString("http=foopy1:8080;https=foopy2:8080"); 876 config.proxy_rules.ParseFromString("http=foopy1:8080;https=foopy2:8080");
771 config.auto_detect = false; 877 config.auto_detect = false;
772 878
773 SyncProxyService service1(new MockProxyConfigService(config), 879 SyncProxyService service1(new MockProxyConfigService(config),
774 new MockProxyResolver); 880 new MockProxyResolver);
775 GURL test_url1("http://www.msn.com"); 881 GURL test_url1("http://www.msn.com");
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
983 result3->WaitUntilCompleted(); 1089 result3->WaitUntilCompleted();
984 1090
985 EXPECT_FALSE(result1->IsCompleted()); // Cancelled. 1091 EXPECT_FALSE(result1->IsCompleted()); // Cancelled.
986 EXPECT_FALSE(result2->IsCompleted()); // Cancelled. 1092 EXPECT_FALSE(result2->IsCompleted()); // Cancelled.
987 1093
988 EXPECT_TRUE(result3->IsCompleted()); 1094 EXPECT_TRUE(result3->IsCompleted());
989 EXPECT_EQ(net::OK, result3->GetResultCode()); 1095 EXPECT_EQ(net::OK, result3->GetResultCode());
990 EXPECT_EQ("pac-v1.request3:80", 1096 EXPECT_EQ("pac-v1.request3:80",
991 result3->GetProxyInfo().proxy_server().ToURI()); 1097 result3->GetProxyInfo().proxy_server().ToURI());
992 } 1098 }
OLDNEW
« no previous file with comments | « net/proxy/proxy_service.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698