| 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 <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/format_macros.h" | 9 #include "base/format_macros.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 925 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 936 config.set_pac_mandatory(true); | 936 config.set_pac_mandatory(true); |
| 937 | 937 |
| 938 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 938 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
| 939 | 939 |
| 940 MockAsyncProxyResolverFactory* factory = | 940 MockAsyncProxyResolverFactory* factory = |
| 941 new MockAsyncProxyResolverFactory(true); | 941 new MockAsyncProxyResolverFactory(true); |
| 942 | 942 |
| 943 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 943 ProxyService service(config_service, make_scoped_ptr(factory), NULL); |
| 944 | 944 |
| 945 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 945 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 946 DhcpProxyScriptFetcher* dhcp_fetcher = new DoNothingDhcpProxyScriptFetcher(); | 946 service.SetProxyScriptFetchers( |
| 947 service.SetProxyScriptFetchers(fetcher, dhcp_fetcher); | 947 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
| 948 | 948 |
| 949 // Start resolve request. | 949 // Start resolve request. |
| 950 GURL url("http://www.google.com/"); | 950 GURL url("http://www.google.com/"); |
| 951 ProxyInfo info; | 951 ProxyInfo info; |
| 952 TestCompletionCallback callback; | 952 TestCompletionCallback callback; |
| 953 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), | 953 int rv = service.ResolveProxy(url, LOAD_NORMAL, &info, callback.callback(), |
| 954 NULL, NULL, BoundNetLog()); | 954 NULL, NULL, BoundNetLog()); |
| 955 EXPECT_EQ(ERR_IO_PENDING, rv); | 955 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 956 | 956 |
| 957 // Check that nothing has been sent to the proxy resolver factory yet. | 957 // Check that nothing has been sent to the proxy resolver factory yet. |
| (...skipping 894 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1852 MockProxyConfigService* config_service = | 1852 MockProxyConfigService* config_service = |
| 1853 new MockProxyConfigService("http://foopy/proxy.pac"); | 1853 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 1854 | 1854 |
| 1855 MockAsyncProxyResolver resolver; | 1855 MockAsyncProxyResolver resolver; |
| 1856 MockAsyncProxyResolverFactory* factory = | 1856 MockAsyncProxyResolverFactory* factory = |
| 1857 new MockAsyncProxyResolverFactory(true); | 1857 new MockAsyncProxyResolverFactory(true); |
| 1858 | 1858 |
| 1859 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1859 ProxyService service(config_service, make_scoped_ptr(factory), NULL); |
| 1860 | 1860 |
| 1861 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1861 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 1862 service.SetProxyScriptFetchers(fetcher, | 1862 service.SetProxyScriptFetchers( |
| 1863 new DoNothingDhcpProxyScriptFetcher()); | 1863 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
| 1864 | 1864 |
| 1865 // Start 3 requests. | 1865 // Start 3 requests. |
| 1866 | 1866 |
| 1867 ProxyInfo info1; | 1867 ProxyInfo info1; |
| 1868 TestCompletionCallback callback1; | 1868 TestCompletionCallback callback1; |
| 1869 ProxyService::PacRequest* request1; | 1869 ProxyService::PacRequest* request1; |
| 1870 int rv = service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, | 1870 int rv = service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, |
| 1871 callback1.callback(), &request1, NULL, | 1871 callback1.callback(), &request1, NULL, |
| 1872 BoundNetLog()); | 1872 BoundNetLog()); |
| 1873 EXPECT_EQ(ERR_IO_PENDING, rv); | 1873 EXPECT_EQ(ERR_IO_PENDING, rv); |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1959 MockProxyConfigService* config_service = | 1959 MockProxyConfigService* config_service = |
| 1960 new MockProxyConfigService("http://foopy/proxy.pac"); | 1960 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 1961 | 1961 |
| 1962 MockAsyncProxyResolver resolver; | 1962 MockAsyncProxyResolver resolver; |
| 1963 MockAsyncProxyResolverFactory* factory = | 1963 MockAsyncProxyResolverFactory* factory = |
| 1964 new MockAsyncProxyResolverFactory(true); | 1964 new MockAsyncProxyResolverFactory(true); |
| 1965 | 1965 |
| 1966 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 1966 ProxyService service(config_service, make_scoped_ptr(factory), NULL); |
| 1967 | 1967 |
| 1968 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1968 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 1969 service.SetProxyScriptFetchers(fetcher, | 1969 service.SetProxyScriptFetchers( |
| 1970 new DoNothingDhcpProxyScriptFetcher()); | 1970 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
| 1971 | 1971 |
| 1972 // Start 2 requests. | 1972 // Start 2 requests. |
| 1973 | 1973 |
| 1974 ProxyInfo info1; | 1974 ProxyInfo info1; |
| 1975 TestCompletionCallback callback1; | 1975 TestCompletionCallback callback1; |
| 1976 int rv = | 1976 int rv = |
| 1977 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, | 1977 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, |
| 1978 callback1.callback(), NULL, NULL, BoundNetLog()); | 1978 callback1.callback(), NULL, NULL, BoundNetLog()); |
| 1979 EXPECT_EQ(ERR_IO_PENDING, rv); | 1979 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 1980 | 1980 |
| 1981 // The first request should have triggered download of PAC script. | 1981 // The first request should have triggered download of PAC script. |
| 1982 EXPECT_TRUE(fetcher->has_pending_request()); | 1982 EXPECT_TRUE(fetcher->has_pending_request()); |
| 1983 EXPECT_EQ(GURL("http://foopy/proxy.pac"), fetcher->pending_request_url()); | 1983 EXPECT_EQ(GURL("http://foopy/proxy.pac"), fetcher->pending_request_url()); |
| 1984 | 1984 |
| 1985 ProxyInfo info2; | 1985 ProxyInfo info2; |
| 1986 TestCompletionCallback callback2; | 1986 TestCompletionCallback callback2; |
| 1987 rv = service.ResolveProxy(GURL("http://request2"), LOAD_NORMAL, &info2, | 1987 rv = service.ResolveProxy(GURL("http://request2"), LOAD_NORMAL, &info2, |
| 1988 callback2.callback(), NULL, NULL, BoundNetLog()); | 1988 callback2.callback(), NULL, NULL, BoundNetLog()); |
| 1989 EXPECT_EQ(ERR_IO_PENDING, rv); | 1989 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 1990 | 1990 |
| 1991 // At this point the ProxyService should be waiting for the | 1991 // At this point the ProxyService should be waiting for the |
| 1992 // ProxyScriptFetcher to invoke its completion callback, notifying it of | 1992 // ProxyScriptFetcher to invoke its completion callback, notifying it of |
| 1993 // PAC script download completion. | 1993 // PAC script download completion. |
| 1994 | 1994 |
| 1995 // We now change out the ProxyService's script fetcher. We should restart | 1995 // We now change out the ProxyService's script fetcher. We should restart |
| 1996 // the initialization with the new fetcher. | 1996 // the initialization with the new fetcher. |
| 1997 | 1997 |
| 1998 fetcher = new MockProxyScriptFetcher; | 1998 fetcher = new MockProxyScriptFetcher; |
| 1999 service.SetProxyScriptFetchers(fetcher, | 1999 service.SetProxyScriptFetchers( |
| 2000 new DoNothingDhcpProxyScriptFetcher()); | 2000 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
| 2001 | 2001 |
| 2002 // Nothing has been sent to the factory yet. | 2002 // Nothing has been sent to the factory yet. |
| 2003 EXPECT_TRUE(factory->pending_requests().empty()); | 2003 EXPECT_TRUE(factory->pending_requests().empty()); |
| 2004 | 2004 |
| 2005 fetcher->NotifyFetchCompletion(OK, kValidPacScript1); | 2005 fetcher->NotifyFetchCompletion(OK, kValidPacScript1); |
| 2006 | 2006 |
| 2007 // Now that the PAC script is downloaded, it will have been sent to the proxy | 2007 // Now that the PAC script is downloaded, it will have been sent to the proxy |
| 2008 // resolver. | 2008 // resolver. |
| 2009 EXPECT_EQ(ASCIIToUTF16(kValidPacScript1), | 2009 EXPECT_EQ(ASCIIToUTF16(kValidPacScript1), |
| 2010 factory->pending_requests()[0]->script_data()->utf16()); | 2010 factory->pending_requests()[0]->script_data()->utf16()); |
| 2011 factory->pending_requests()[0]->CompleteNowWithForwarder(OK, &resolver); | 2011 factory->pending_requests()[0]->CompleteNowWithForwarder(OK, &resolver); |
| 2012 | 2012 |
| 2013 ASSERT_EQ(2u, resolver.pending_requests().size()); | 2013 ASSERT_EQ(2u, resolver.pending_requests().size()); |
| 2014 EXPECT_EQ(GURL("http://request1"), resolver.pending_requests()[0]->url()); | 2014 EXPECT_EQ(GURL("http://request1"), resolver.pending_requests()[0]->url()); |
| 2015 EXPECT_EQ(GURL("http://request2"), resolver.pending_requests()[1]->url()); | 2015 EXPECT_EQ(GURL("http://request2"), resolver.pending_requests()[1]->url()); |
| 2016 } | 2016 } |
| 2017 | 2017 |
| 2018 // Test cancellation of a request, while the PAC script is being fetched. | 2018 // Test cancellation of a request, while the PAC script is being fetched. |
| 2019 TEST_F(ProxyServiceTest, CancelWhilePACFetching) { | 2019 TEST_F(ProxyServiceTest, CancelWhilePACFetching) { |
| 2020 MockProxyConfigService* config_service = | 2020 MockProxyConfigService* config_service = |
| 2021 new MockProxyConfigService("http://foopy/proxy.pac"); | 2021 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 2022 | 2022 |
| 2023 MockAsyncProxyResolver resolver; | 2023 MockAsyncProxyResolver resolver; |
| 2024 MockAsyncProxyResolverFactory* factory = | 2024 MockAsyncProxyResolverFactory* factory = |
| 2025 new MockAsyncProxyResolverFactory(true); | 2025 new MockAsyncProxyResolverFactory(true); |
| 2026 | 2026 |
| 2027 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2027 ProxyService service(config_service, make_scoped_ptr(factory), NULL); |
| 2028 | 2028 |
| 2029 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2029 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 2030 service.SetProxyScriptFetchers(fetcher, | 2030 service.SetProxyScriptFetchers( |
| 2031 new DoNothingDhcpProxyScriptFetcher()); | 2031 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
| 2032 | 2032 |
| 2033 // Start 3 requests. | 2033 // Start 3 requests. |
| 2034 ProxyInfo info1; | 2034 ProxyInfo info1; |
| 2035 TestCompletionCallback callback1; | 2035 TestCompletionCallback callback1; |
| 2036 ProxyService::PacRequest* request1; | 2036 ProxyService::PacRequest* request1; |
| 2037 BoundTestNetLog log1; | 2037 BoundTestNetLog log1; |
| 2038 int rv = | 2038 int rv = |
| 2039 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, | 2039 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, |
| 2040 callback1.callback(), &request1, NULL, log1.bound()); | 2040 callback1.callback(), &request1, NULL, log1.bound()); |
| 2041 EXPECT_EQ(ERR_IO_PENDING, rv); | 2041 EXPECT_EQ(ERR_IO_PENDING, rv); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2115 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 2115 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
| 2116 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. | 2116 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. |
| 2117 | 2117 |
| 2118 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 2118 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
| 2119 MockAsyncProxyResolver resolver; | 2119 MockAsyncProxyResolver resolver; |
| 2120 MockAsyncProxyResolverFactory* factory = | 2120 MockAsyncProxyResolverFactory* factory = |
| 2121 new MockAsyncProxyResolverFactory(true); | 2121 new MockAsyncProxyResolverFactory(true); |
| 2122 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2122 ProxyService service(config_service, make_scoped_ptr(factory), NULL); |
| 2123 | 2123 |
| 2124 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2124 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 2125 service.SetProxyScriptFetchers(fetcher, | 2125 service.SetProxyScriptFetchers( |
| 2126 new DoNothingDhcpProxyScriptFetcher()); | 2126 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
| 2127 | 2127 |
| 2128 // Start 2 requests. | 2128 // Start 2 requests. |
| 2129 | 2129 |
| 2130 ProxyInfo info1; | 2130 ProxyInfo info1; |
| 2131 TestCompletionCallback callback1; | 2131 TestCompletionCallback callback1; |
| 2132 int rv = | 2132 int rv = |
| 2133 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, | 2133 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, |
| 2134 callback1.callback(), NULL, NULL, BoundNetLog()); | 2134 callback1.callback(), NULL, NULL, BoundNetLog()); |
| 2135 EXPECT_EQ(ERR_IO_PENDING, rv); | 2135 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 2136 | 2136 |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2195 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 2195 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
| 2196 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. | 2196 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. |
| 2197 | 2197 |
| 2198 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 2198 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
| 2199 MockAsyncProxyResolver resolver; | 2199 MockAsyncProxyResolver resolver; |
| 2200 MockAsyncProxyResolverFactory* factory = | 2200 MockAsyncProxyResolverFactory* factory = |
| 2201 new MockAsyncProxyResolverFactory(true); | 2201 new MockAsyncProxyResolverFactory(true); |
| 2202 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2202 ProxyService service(config_service, make_scoped_ptr(factory), NULL); |
| 2203 | 2203 |
| 2204 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2204 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 2205 service.SetProxyScriptFetchers(fetcher, | 2205 service.SetProxyScriptFetchers( |
| 2206 new DoNothingDhcpProxyScriptFetcher()); | 2206 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
| 2207 | 2207 |
| 2208 // Start 2 requests. | 2208 // Start 2 requests. |
| 2209 | 2209 |
| 2210 ProxyInfo info1; | 2210 ProxyInfo info1; |
| 2211 TestCompletionCallback callback1; | 2211 TestCompletionCallback callback1; |
| 2212 int rv = | 2212 int rv = |
| 2213 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, | 2213 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, |
| 2214 callback1.callback(), NULL, NULL, BoundNetLog()); | 2214 callback1.callback(), NULL, NULL, BoundNetLog()); |
| 2215 EXPECT_EQ(ERR_IO_PENDING, rv); | 2215 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 2216 | 2216 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2270 config.set_auto_detect(true); | 2270 config.set_auto_detect(true); |
| 2271 config.set_pac_url(GURL("http://foopy/proxy.pac")); | 2271 config.set_pac_url(GURL("http://foopy/proxy.pac")); |
| 2272 config.proxy_rules().ParseFromString("http=foopy:80"); | 2272 config.proxy_rules().ParseFromString("http=foopy:80"); |
| 2273 | 2273 |
| 2274 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 2274 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
| 2275 MockAsyncProxyResolverFactory* factory = | 2275 MockAsyncProxyResolverFactory* factory = |
| 2276 new MockAsyncProxyResolverFactory(true); | 2276 new MockAsyncProxyResolverFactory(true); |
| 2277 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2277 ProxyService service(config_service, make_scoped_ptr(factory), NULL); |
| 2278 | 2278 |
| 2279 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2279 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 2280 service.SetProxyScriptFetchers(fetcher, | 2280 service.SetProxyScriptFetchers( |
| 2281 new DoNothingDhcpProxyScriptFetcher()); | 2281 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
| 2282 | 2282 |
| 2283 // Start 2 requests. | 2283 // Start 2 requests. |
| 2284 | 2284 |
| 2285 ProxyInfo info1; | 2285 ProxyInfo info1; |
| 2286 TestCompletionCallback callback1; | 2286 TestCompletionCallback callback1; |
| 2287 int rv = | 2287 int rv = |
| 2288 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, | 2288 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, |
| 2289 callback1.callback(), NULL, NULL, BoundNetLog()); | 2289 callback1.callback(), NULL, NULL, BoundNetLog()); |
| 2290 EXPECT_EQ(ERR_IO_PENDING, rv); | 2290 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 2291 | 2291 |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2331 config.proxy_rules().ParseFromString("http=foopy:80"); // Not used. | 2331 config.proxy_rules().ParseFromString("http=foopy:80"); // Not used. |
| 2332 config.proxy_rules().bypass_rules.ParseFromString("www.google.com"); | 2332 config.proxy_rules().bypass_rules.ParseFromString("www.google.com"); |
| 2333 | 2333 |
| 2334 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 2334 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
| 2335 MockAsyncProxyResolver resolver; | 2335 MockAsyncProxyResolver resolver; |
| 2336 MockAsyncProxyResolverFactory* factory = | 2336 MockAsyncProxyResolverFactory* factory = |
| 2337 new MockAsyncProxyResolverFactory(true); | 2337 new MockAsyncProxyResolverFactory(true); |
| 2338 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2338 ProxyService service(config_service, make_scoped_ptr(factory), NULL); |
| 2339 | 2339 |
| 2340 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2340 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 2341 service.SetProxyScriptFetchers(fetcher, | 2341 service.SetProxyScriptFetchers( |
| 2342 new DoNothingDhcpProxyScriptFetcher()); | 2342 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
| 2343 | 2343 |
| 2344 // Start 1 requests. | 2344 // Start 1 requests. |
| 2345 | 2345 |
| 2346 ProxyInfo info1; | 2346 ProxyInfo info1; |
| 2347 TestCompletionCallback callback1; | 2347 TestCompletionCallback callback1; |
| 2348 int rv = | 2348 int rv = |
| 2349 service.ResolveProxy(GURL("http://www.google.com"), LOAD_NORMAL, &info1, | 2349 service.ResolveProxy(GURL("http://www.google.com"), LOAD_NORMAL, &info1, |
| 2350 callback1.callback(), NULL, NULL, BoundNetLog()); | 2350 callback1.callback(), NULL, NULL, BoundNetLog()); |
| 2351 EXPECT_EQ(ERR_IO_PENDING, rv); | 2351 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 2352 | 2352 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2400 TEST_F(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingFetch) { | 2400 TEST_F(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingFetch) { |
| 2401 ProxyConfig config = | 2401 ProxyConfig config = |
| 2402 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac")); | 2402 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac")); |
| 2403 | 2403 |
| 2404 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 2404 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
| 2405 MockAsyncProxyResolverFactory* factory = | 2405 MockAsyncProxyResolverFactory* factory = |
| 2406 new MockAsyncProxyResolverFactory(true); | 2406 new MockAsyncProxyResolverFactory(true); |
| 2407 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2407 ProxyService service(config_service, make_scoped_ptr(factory), NULL); |
| 2408 | 2408 |
| 2409 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2409 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 2410 service.SetProxyScriptFetchers(fetcher, | 2410 service.SetProxyScriptFetchers( |
| 2411 new DoNothingDhcpProxyScriptFetcher()); | 2411 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
| 2412 | 2412 |
| 2413 // Start 1 request. | 2413 // Start 1 request. |
| 2414 | 2414 |
| 2415 ProxyInfo info1; | 2415 ProxyInfo info1; |
| 2416 TestCompletionCallback callback1; | 2416 TestCompletionCallback callback1; |
| 2417 int rv = | 2417 int rv = |
| 2418 service.ResolveProxy(GURL("http://www.google.com"), LOAD_NORMAL, &info1, | 2418 service.ResolveProxy(GURL("http://www.google.com"), LOAD_NORMAL, &info1, |
| 2419 callback1.callback(), NULL, NULL, BoundNetLog()); | 2419 callback1.callback(), NULL, NULL, BoundNetLog()); |
| 2420 EXPECT_EQ(ERR_IO_PENDING, rv); | 2420 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 2421 | 2421 |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2535 | 2535 |
| 2536 MockAsyncProxyResolver resolver; | 2536 MockAsyncProxyResolver resolver; |
| 2537 MockAsyncProxyResolverFactory* factory = | 2537 MockAsyncProxyResolverFactory* factory = |
| 2538 new MockAsyncProxyResolverFactory(true); | 2538 new MockAsyncProxyResolverFactory(true); |
| 2539 | 2539 |
| 2540 TestNetLog log; | 2540 TestNetLog log; |
| 2541 | 2541 |
| 2542 ProxyService service(config_service, make_scoped_ptr(factory), &log); | 2542 ProxyService service(config_service, make_scoped_ptr(factory), &log); |
| 2543 | 2543 |
| 2544 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2544 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 2545 service.SetProxyScriptFetchers(fetcher, | 2545 service.SetProxyScriptFetchers( |
| 2546 new DoNothingDhcpProxyScriptFetcher()); | 2546 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
| 2547 | 2547 |
| 2548 // Disable the "wait after IP address changes" hack, so this unit-test can | 2548 // Disable the "wait after IP address changes" hack, so this unit-test can |
| 2549 // complete quickly. | 2549 // complete quickly. |
| 2550 service.set_stall_proxy_auto_config_delay(base::TimeDelta()); | 2550 service.set_stall_proxy_auto_config_delay(base::TimeDelta()); |
| 2551 | 2551 |
| 2552 // Start 1 request. | 2552 // Start 1 request. |
| 2553 | 2553 |
| 2554 ProxyInfo info1; | 2554 ProxyInfo info1; |
| 2555 TestCompletionCallback callback1; | 2555 TestCompletionCallback callback1; |
| 2556 int rv = | 2556 int rv = |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2655 MockProxyConfigService* config_service = | 2655 MockProxyConfigService* config_service = |
| 2656 new MockProxyConfigService("http://foopy/proxy.pac"); | 2656 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 2657 | 2657 |
| 2658 MockAsyncProxyResolver resolver; | 2658 MockAsyncProxyResolver resolver; |
| 2659 MockAsyncProxyResolverFactory* factory = | 2659 MockAsyncProxyResolverFactory* factory = |
| 2660 new MockAsyncProxyResolverFactory(true); | 2660 new MockAsyncProxyResolverFactory(true); |
| 2661 | 2661 |
| 2662 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2662 ProxyService service(config_service, make_scoped_ptr(factory), NULL); |
| 2663 | 2663 |
| 2664 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2664 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 2665 service.SetProxyScriptFetchers(fetcher, | 2665 service.SetProxyScriptFetchers( |
| 2666 new DoNothingDhcpProxyScriptFetcher()); | 2666 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
| 2667 | 2667 |
| 2668 // Start 1 request. | 2668 // Start 1 request. |
| 2669 | 2669 |
| 2670 ProxyInfo info1; | 2670 ProxyInfo info1; |
| 2671 TestCompletionCallback callback1; | 2671 TestCompletionCallback callback1; |
| 2672 int rv = | 2672 int rv = |
| 2673 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, | 2673 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, |
| 2674 callback1.callback(), NULL, NULL, BoundNetLog()); | 2674 callback1.callback(), NULL, NULL, BoundNetLog()); |
| 2675 EXPECT_EQ(ERR_IO_PENDING, rv); | 2675 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 2676 | 2676 |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2760 MockProxyConfigService* config_service = | 2760 MockProxyConfigService* config_service = |
| 2761 new MockProxyConfigService("http://foopy/proxy.pac"); | 2761 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 2762 | 2762 |
| 2763 MockAsyncProxyResolver resolver; | 2763 MockAsyncProxyResolver resolver; |
| 2764 MockAsyncProxyResolverFactory* factory = | 2764 MockAsyncProxyResolverFactory* factory = |
| 2765 new MockAsyncProxyResolverFactory(true); | 2765 new MockAsyncProxyResolverFactory(true); |
| 2766 | 2766 |
| 2767 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2767 ProxyService service(config_service, make_scoped_ptr(factory), NULL); |
| 2768 | 2768 |
| 2769 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2769 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 2770 service.SetProxyScriptFetchers(fetcher, | 2770 service.SetProxyScriptFetchers( |
| 2771 new DoNothingDhcpProxyScriptFetcher()); | 2771 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
| 2772 | 2772 |
| 2773 // Start 1 request. | 2773 // Start 1 request. |
| 2774 | 2774 |
| 2775 ProxyInfo info1; | 2775 ProxyInfo info1; |
| 2776 TestCompletionCallback callback1; | 2776 TestCompletionCallback callback1; |
| 2777 int rv = | 2777 int rv = |
| 2778 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, | 2778 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, |
| 2779 callback1.callback(), NULL, NULL, BoundNetLog()); | 2779 callback1.callback(), NULL, NULL, BoundNetLog()); |
| 2780 EXPECT_EQ(ERR_IO_PENDING, rv); | 2780 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 2781 | 2781 |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2871 MockProxyConfigService* config_service = | 2871 MockProxyConfigService* config_service = |
| 2872 new MockProxyConfigService("http://foopy/proxy.pac"); | 2872 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 2873 | 2873 |
| 2874 MockAsyncProxyResolver resolver; | 2874 MockAsyncProxyResolver resolver; |
| 2875 MockAsyncProxyResolverFactory* factory = | 2875 MockAsyncProxyResolverFactory* factory = |
| 2876 new MockAsyncProxyResolverFactory(true); | 2876 new MockAsyncProxyResolverFactory(true); |
| 2877 | 2877 |
| 2878 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2878 ProxyService service(config_service, make_scoped_ptr(factory), NULL); |
| 2879 | 2879 |
| 2880 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2880 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 2881 service.SetProxyScriptFetchers(fetcher, | 2881 service.SetProxyScriptFetchers( |
| 2882 new DoNothingDhcpProxyScriptFetcher()); | 2882 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
| 2883 | 2883 |
| 2884 // Start 1 request. | 2884 // Start 1 request. |
| 2885 | 2885 |
| 2886 ProxyInfo info1; | 2886 ProxyInfo info1; |
| 2887 TestCompletionCallback callback1; | 2887 TestCompletionCallback callback1; |
| 2888 int rv = | 2888 int rv = |
| 2889 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, | 2889 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, |
| 2890 callback1.callback(), NULL, NULL, BoundNetLog()); | 2890 callback1.callback(), NULL, NULL, BoundNetLog()); |
| 2891 EXPECT_EQ(ERR_IO_PENDING, rv); | 2891 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 2892 | 2892 |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2979 MockProxyConfigService* config_service = | 2979 MockProxyConfigService* config_service = |
| 2980 new MockProxyConfigService("http://foopy/proxy.pac"); | 2980 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 2981 | 2981 |
| 2982 MockAsyncProxyResolver resolver; | 2982 MockAsyncProxyResolver resolver; |
| 2983 MockAsyncProxyResolverFactory* factory = | 2983 MockAsyncProxyResolverFactory* factory = |
| 2984 new MockAsyncProxyResolverFactory(true); | 2984 new MockAsyncProxyResolverFactory(true); |
| 2985 | 2985 |
| 2986 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 2986 ProxyService service(config_service, make_scoped_ptr(factory), NULL); |
| 2987 | 2987 |
| 2988 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2988 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 2989 service.SetProxyScriptFetchers(fetcher, | 2989 service.SetProxyScriptFetchers( |
| 2990 new DoNothingDhcpProxyScriptFetcher()); | 2990 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
| 2991 | 2991 |
| 2992 // Start 1 request. | 2992 // Start 1 request. |
| 2993 | 2993 |
| 2994 ProxyInfo info1; | 2994 ProxyInfo info1; |
| 2995 TestCompletionCallback callback1; | 2995 TestCompletionCallback callback1; |
| 2996 int rv = | 2996 int rv = |
| 2997 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, | 2997 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, |
| 2998 callback1.callback(), NULL, NULL, BoundNetLog()); | 2998 callback1.callback(), NULL, NULL, BoundNetLog()); |
| 2999 EXPECT_EQ(ERR_IO_PENDING, rv); | 2999 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 3000 | 3000 |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3132 MockProxyConfigService* config_service = | 3132 MockProxyConfigService* config_service = |
| 3133 new MockProxyConfigService("http://foopy/proxy.pac"); | 3133 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 3134 | 3134 |
| 3135 MockAsyncProxyResolver resolver; | 3135 MockAsyncProxyResolver resolver; |
| 3136 MockAsyncProxyResolverFactory* factory = | 3136 MockAsyncProxyResolverFactory* factory = |
| 3137 new MockAsyncProxyResolverFactory(true); | 3137 new MockAsyncProxyResolverFactory(true); |
| 3138 | 3138 |
| 3139 ProxyService service(config_service, make_scoped_ptr(factory), NULL); | 3139 ProxyService service(config_service, make_scoped_ptr(factory), NULL); |
| 3140 | 3140 |
| 3141 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 3141 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 3142 service.SetProxyScriptFetchers(fetcher, | 3142 service.SetProxyScriptFetchers( |
| 3143 new DoNothingDhcpProxyScriptFetcher()); | 3143 fetcher, make_scoped_ptr(new DoNothingDhcpProxyScriptFetcher())); |
| 3144 | 3144 |
| 3145 // Start 1 request. | 3145 // Start 1 request. |
| 3146 | 3146 |
| 3147 ProxyInfo info1; | 3147 ProxyInfo info1; |
| 3148 TestCompletionCallback callback1; | 3148 TestCompletionCallback callback1; |
| 3149 int rv = | 3149 int rv = |
| 3150 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, | 3150 service.ResolveProxy(GURL("http://request1"), LOAD_NORMAL, &info1, |
| 3151 callback1.callback(), NULL, NULL, BoundNetLog()); | 3151 callback1.callback(), NULL, NULL, BoundNetLog()); |
| 3152 EXPECT_EQ(ERR_IO_PENDING, rv); | 3152 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 3153 | 3153 |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3273 url, LOAD_NORMAL, &info, NULL, log.bound()); | 3273 url, LOAD_NORMAL, &info, NULL, log.bound()); |
| 3274 EXPECT_TRUE(synchronous_success); | 3274 EXPECT_TRUE(synchronous_success); |
| 3275 EXPECT_FALSE(info.is_direct()); | 3275 EXPECT_FALSE(info.is_direct()); |
| 3276 EXPECT_EQ("foopy1", info.proxy_server().host_port_pair().host()); | 3276 EXPECT_EQ("foopy1", info.proxy_server().host_port_pair().host()); |
| 3277 | 3277 |
| 3278 // No request should have been queued. | 3278 // No request should have been queued. |
| 3279 EXPECT_EQ(0u, factory->pending_requests().size()); | 3279 EXPECT_EQ(0u, factory->pending_requests().size()); |
| 3280 } | 3280 } |
| 3281 | 3281 |
| 3282 } // namespace net | 3282 } // namespace net |
| OLD | NEW |