| Index: net/proxy/proxy_service_unittest.cc
|
| ===================================================================
|
| --- net/proxy/proxy_service_unittest.cc (revision 6881)
|
| +++ net/proxy/proxy_service_unittest.cc (working copy)
|
| @@ -62,12 +62,13 @@
|
| }
|
|
|
| TEST(ProxyServiceTest, Direct) {
|
| - net::ProxyService service(new MockProxyResolver);
|
| + scoped_refptr<net::ProxyService> service =
|
| + new net::ProxyService(new MockProxyResolver);
|
|
|
| GURL url("http://www.google.com/");
|
|
|
| net::ProxyInfo info;
|
| - int rv = service.ResolveProxy(url, &info, NULL, NULL);
|
| + int rv = service->ResolveProxy(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_TRUE(info.is_direct());
|
| }
|
| @@ -78,12 +79,12 @@
|
| resolver->info.UseNamedProxy("foopy");
|
| resolver->info_predicate_query_host = "www.google.com";
|
|
|
| - net::ProxyService service(resolver);
|
| + scoped_refptr<net::ProxyService> service = new net::ProxyService(resolver);
|
|
|
| GURL url("http://www.google.com/");
|
|
|
| net::ProxyInfo info;
|
| - int rv = service.ResolveProxy(url, &info, NULL, NULL);
|
| + int rv = service->ResolveProxy(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_FALSE(info.is_direct());
|
| EXPECT_EQ(info.proxy_server(), "foopy");
|
| @@ -95,18 +96,18 @@
|
| resolver->info.UseNamedProxy("foopy:8080");
|
| resolver->info_predicate_query_host = "www.google.com";
|
|
|
| - net::ProxyService service(resolver);
|
| + scoped_refptr<net::ProxyService> service = new net::ProxyService(resolver);
|
|
|
| GURL url("http://www.google.com/");
|
|
|
| net::ProxyInfo info;
|
| - int rv = service.ResolveProxy(url, &info, NULL, NULL);
|
| + int rv = service->ResolveProxy(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_FALSE(info.is_direct());
|
| EXPECT_EQ(info.proxy_server(), "foopy:8080");
|
|
|
| // Now, imagine that connecting to foopy:8080 fails.
|
| - rv = service.ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| + rv = service->ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_TRUE(info.is_direct());
|
| }
|
| @@ -120,15 +121,15 @@
|
| resolver->info_predicate_query_host = "www.google.com";
|
| resolver->fail_get_proxy_for_url = true;
|
|
|
| - net::ProxyService service(resolver);
|
| + scoped_refptr<net::ProxyService> service = new net::ProxyService(resolver);
|
|
|
| GURL url("http://www.google.com/");
|
| net::ProxyInfo info;
|
| - int rv = service.ResolveProxy(url, &info, NULL, NULL);
|
| + int rv = service->ResolveProxy(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_TRUE(info.is_direct());
|
|
|
| - rv = service.ResolveProxy(url, &info, NULL, NULL);
|
| + rv = service->ResolveProxy(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_TRUE(info.is_direct());
|
|
|
| @@ -137,7 +138,7 @@
|
|
|
| // But, if that fails, then we should give the proxy config another shot
|
| // since we have never tried it with this URL before.
|
| - rv = service.ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| + rv = service->ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_FALSE(info.is_direct());
|
| EXPECT_EQ(info.proxy_server(), "foopy_valid:8080");
|
| @@ -153,13 +154,13 @@
|
| resolver->info_predicate_query_host = "www.google.com";
|
| resolver->fail_get_proxy_for_url = false;
|
|
|
| - net::ProxyService service(resolver);
|
| + scoped_refptr<net::ProxyService> service = new net::ProxyService(resolver);
|
|
|
| GURL url("http://www.google.com/");
|
|
|
| // Get the proxy information.
|
| net::ProxyInfo info;
|
| - int rv = service.ResolveProxy(url, &info, NULL, NULL);
|
| + int rv = service->ResolveProxy(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_FALSE(info.is_direct());
|
|
|
| @@ -167,7 +168,7 @@
|
| EXPECT_EQ(info.proxy_server(), "foopy1:8080");
|
|
|
| // Fake an error on the proxy.
|
| - rv = service.ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| + rv = service->ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
|
|
| // The second proxy should be specified.
|
| @@ -180,23 +181,23 @@
|
| resolver->info_predicate_query_host = "www.google.com";
|
| resolver->fail_get_proxy_for_url = false;
|
|
|
| - rv = service.ResolveProxy(url, &info, NULL, NULL);
|
| + rv = service->ResolveProxy(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_FALSE(info.is_direct());
|
| EXPECT_EQ(info.proxy_server(), "foopy3:7070");
|
|
|
| // We fake another error. It should now try the third one.
|
| - rv = service.ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| + rv = service->ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_EQ(info.proxy_server(), "foopy2:9090");
|
|
|
| // Fake another error, the last proxy is gone, the list should now be empty.
|
| - rv = service.ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| + rv = service->ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK); // We try direct.
|
| EXPECT_TRUE(info.is_direct());
|
|
|
| // If it fails again, we don't have anything else to try.
|
| - rv = service.ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| + rv = service->ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::ERR_FAILED); // We try direct.
|
|
|
| // TODO(nsylvain): Test that the proxy can be retried after the delay.
|
| @@ -211,13 +212,13 @@
|
| resolver->info_predicate_query_host = "www.google.com";
|
| resolver->fail_get_proxy_for_url = false;
|
|
|
| - net::ProxyService service(resolver);
|
| + scoped_refptr<net::ProxyService> service = new net::ProxyService(resolver);
|
|
|
| GURL url("http://www.google.com/");
|
|
|
| // Get the proxy information.
|
| net::ProxyInfo info;
|
| - int rv = service.ResolveProxy(url, &info, NULL, NULL);
|
| + int rv = service->ResolveProxy(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_FALSE(info.is_direct());
|
|
|
| @@ -228,14 +229,14 @@
|
| resolver->config = net::ProxyConfig();
|
| resolver->config.pac_url = GURL("http://foopy-new/proxy.pac");
|
|
|
| - rv = service.ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| + rv = service->ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
|
|
| // The first proxy is still there since the configuration changed.
|
| EXPECT_EQ(info.proxy_server(), "foopy1:8080");
|
|
|
| // We fake another error. It should now ignore the first one.
|
| - rv = service.ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| + rv = service->ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_EQ(info.proxy_server(), "foopy2:9090");
|
|
|
| @@ -244,7 +245,7 @@
|
| resolver->config.pac_url = GURL("http://foopy-new2/proxy.pac");
|
|
|
| // We fake anothe error. It should go back to the first proxy.
|
| - rv = service.ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| + rv = service->ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_EQ(info.proxy_server(), "foopy1:8080");
|
| }
|
| @@ -258,13 +259,13 @@
|
| resolver->info_predicate_query_host = "www.google.com";
|
| resolver->fail_get_proxy_for_url = false;
|
|
|
| - net::ProxyService service(resolver);
|
| + scoped_refptr<net::ProxyService> service = new net::ProxyService(resolver);
|
|
|
| GURL url("http://www.google.com/");
|
|
|
| // Get the proxy information.
|
| net::ProxyInfo info;
|
| - int rv = service.ResolveProxy(url, &info, NULL, NULL);
|
| + int rv = service->ResolveProxy(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_FALSE(info.is_direct());
|
|
|
| @@ -272,7 +273,7 @@
|
| EXPECT_EQ(info.proxy_server(), "foopy1:8080");
|
|
|
| // Fake a proxy error.
|
| - rv = service.ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| + rv = service->ReconsiderProxyAfterError(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
|
|
| // The first proxy is ignored, and the second one is selected.
|
| @@ -282,7 +283,7 @@
|
| // Fake a PAC failure.
|
| net::ProxyInfo info2;
|
| resolver->fail_get_proxy_for_url = true;
|
| - rv = service.ResolveProxy(url, &info2, NULL, NULL);
|
| + rv = service->ResolveProxy(url, &info2, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
|
|
| // No proxy servers are returned. It's a direct connection.
|
| @@ -295,14 +296,14 @@
|
| // Try to resolve, it will still return "direct" because we have no reason
|
| // to check the config since everything works.
|
| net::ProxyInfo info3;
|
| - rv = service.ResolveProxy(url, &info3, NULL, NULL);
|
| + rv = service->ResolveProxy(url, &info3, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_TRUE(info3.is_direct());
|
|
|
| // But if the direct connection fails, we check if the ProxyInfo tried to
|
| // resolve the proxy before, and if not (like in this case), we give the
|
| // PAC another try.
|
| - rv = service.ReconsiderProxyAfterError(url, &info3, NULL, NULL);
|
| + rv = service->ReconsiderProxyAfterError(url, &info3, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
|
|
| // The first proxy is still there since the list of bad proxies got cleared.
|
| @@ -318,18 +319,20 @@
|
| config.auto_detect = false;
|
| config.proxy_bypass_local_names = true;
|
|
|
| - net::ProxyService service(new MockProxyResolver(config));
|
| + scoped_refptr<net::ProxyService> service =
|
| + new net::ProxyService(new MockProxyResolver(config));
|
| GURL url("http://www.google.com/");
|
| // Get the proxy information.
|
| net::ProxyInfo info;
|
| - int rv = service.ResolveProxy(url, &info, NULL, NULL);
|
| + int rv = service->ResolveProxy(url, &info, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_FALSE(info.is_direct());
|
|
|
| - net::ProxyService service1(new MockProxyResolver(config));
|
| + scoped_refptr<net::ProxyService> service1 =
|
| + new net::ProxyService(new MockProxyResolver(config));
|
| GURL test_url1("local");
|
| net::ProxyInfo info1;
|
| - rv = service1.ResolveProxy(test_url1, &info1, NULL, NULL);
|
| + rv = service1->ResolveProxy(test_url1, &info1, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_TRUE(info1.is_direct());
|
|
|
| @@ -337,10 +340,10 @@
|
| config.proxy_bypass.push_back("*.org");
|
| config.proxy_bypass_local_names = true;
|
| MockProxyResolver* resolver = new MockProxyResolver(config);
|
| - net::ProxyService service2(resolver);
|
| + scoped_refptr<net::ProxyService> service2 = new net::ProxyService(resolver);
|
| GURL test_url2("http://www.webkit.org");
|
| net::ProxyInfo info2;
|
| - rv = service2.ResolveProxy(test_url2, &info2, NULL, NULL);
|
| + rv = service2->ResolveProxy(test_url2, &info2, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_TRUE(info2.is_direct());
|
|
|
| @@ -349,10 +352,10 @@
|
| config.proxy_bypass.push_back("7*");
|
| config.proxy_bypass_local_names = true;
|
| resolver = new MockProxyResolver(config);
|
| - net::ProxyService service3(resolver);
|
| + scoped_refptr<net::ProxyService> service3 = new net::ProxyService(resolver);
|
| GURL test_url3("http://74.125.19.147");
|
| net::ProxyInfo info3;
|
| - rv = service3.ResolveProxy(test_url3, &info3, NULL, NULL);
|
| + rv = service3->ResolveProxy(test_url3, &info3, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_TRUE(info3.is_direct());
|
|
|
| @@ -360,10 +363,10 @@
|
| config.proxy_bypass.push_back("*.org");
|
| config.proxy_bypass_local_names = true;
|
| resolver = new MockProxyResolver(config);
|
| - net::ProxyService service4(resolver);
|
| + scoped_refptr<net::ProxyService> service4 = new net::ProxyService(resolver);
|
| GURL test_url4("http://www.msn.com");
|
| net::ProxyInfo info4;
|
| - rv = service4.ResolveProxy(test_url4, &info4, NULL, NULL);
|
| + rv = service4->ResolveProxy(test_url4, &info4, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_FALSE(info4.is_direct());
|
|
|
| @@ -371,10 +374,10 @@
|
| config.proxy_bypass.push_back("*.MSN.COM");
|
| config.proxy_bypass_local_names = true;
|
| resolver = new MockProxyResolver(config);
|
| - net::ProxyService service5(resolver);
|
| + scoped_refptr<net::ProxyService> service5 = new net::ProxyService(resolver);
|
| GURL test_url5("http://www.msnbc.msn.com");
|
| net::ProxyInfo info5;
|
| - rv = service5.ResolveProxy(test_url5, &info5, NULL, NULL);
|
| + rv = service5->ResolveProxy(test_url5, &info5, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_TRUE(info5.is_direct());
|
|
|
| @@ -382,10 +385,10 @@
|
| config.proxy_bypass.push_back("*.msn.com");
|
| config.proxy_bypass_local_names = true;
|
| resolver = new MockProxyResolver(config);
|
| - net::ProxyService service6(resolver);
|
| + scoped_refptr<net::ProxyService> service6 = new net::ProxyService(resolver);
|
| GURL test_url6("HTTP://WWW.MSNBC.MSN.COM");
|
| net::ProxyInfo info6;
|
| - rv = service6.ResolveProxy(test_url6, &info6, NULL, NULL);
|
| + rv = service6->ResolveProxy(test_url6, &info6, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_TRUE(info6.is_direct());
|
| }
|
| @@ -395,36 +398,40 @@
|
| config.proxy_server = "http=foopy1:8080;https=foopy2:8080";
|
| config.auto_detect = false;
|
|
|
| - net::ProxyService service1(new MockProxyResolver(config));
|
| + scoped_refptr<net::ProxyService> service1 =
|
| + new net::ProxyService(new MockProxyResolver(config));
|
| GURL test_url1("http://www.msn.com");
|
| net::ProxyInfo info1;
|
| - int rv = service1.ResolveProxy(test_url1, &info1, NULL, NULL);
|
| + int rv = service1->ResolveProxy(test_url1, &info1, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_FALSE(info1.is_direct());
|
| EXPECT_TRUE(info1.proxy_server() == "foopy1:8080");
|
|
|
| - net::ProxyService service2(new MockProxyResolver(config));
|
| + scoped_refptr<net::ProxyService> service2 =
|
| + new net::ProxyService(new MockProxyResolver(config));
|
| GURL test_url2("ftp://ftp.google.com");
|
| net::ProxyInfo info2;
|
| - rv = service2.ResolveProxy(test_url2, &info2, NULL, NULL);
|
| + rv = service2->ResolveProxy(test_url2, &info2, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_TRUE(info2.is_direct());
|
| EXPECT_TRUE(info2.proxy_server() == "");
|
|
|
| - net::ProxyService service3(new MockProxyResolver(config));
|
| + scoped_refptr<net::ProxyService> service3 =
|
| + new net::ProxyService(new MockProxyResolver(config));
|
| GURL test_url3("https://webbranch.techcu.com");
|
| net::ProxyInfo info3;
|
| - rv = service3.ResolveProxy(test_url3, &info3, NULL, NULL);
|
| + rv = service3->ResolveProxy(test_url3, &info3, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_FALSE(info3.is_direct());
|
| EXPECT_TRUE(info3.proxy_server() == "foopy2:8080");
|
|
|
| MockProxyResolver* resolver = new MockProxyResolver(config);
|
| resolver->config.proxy_server = "foopy1:8080";
|
| - net::ProxyService service4(resolver);
|
| + scoped_refptr<net::ProxyService> service4 =
|
| + new net::ProxyService(resolver);
|
| GURL test_url4("www.microsoft.com");
|
| net::ProxyInfo info4;
|
| - rv = service4.ResolveProxy(test_url4, &info4, NULL, NULL);
|
| + rv = service4->ResolveProxy(test_url4, &info4, NULL, NULL);
|
| EXPECT_EQ(rv, net::OK);
|
| EXPECT_FALSE(info4.is_direct());
|
| EXPECT_TRUE(info4.proxy_server() == "foopy1:8080");
|
|
|