| 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 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 | 155 |
| 156 TEST_F(ProxyServiceTest, Direct) { | 156 TEST_F(ProxyServiceTest, Direct) { |
| 157 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 157 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
| 158 ProxyService service(new MockProxyConfigService( | 158 ProxyService service(new MockProxyConfigService( |
| 159 ProxyConfig::CreateDirect()), resolver, NULL); | 159 ProxyConfig::CreateDirect()), resolver, NULL); |
| 160 | 160 |
| 161 GURL url("http://www.google.com/"); | 161 GURL url("http://www.google.com/"); |
| 162 | 162 |
| 163 ProxyInfo info; | 163 ProxyInfo info; |
| 164 TestCompletionCallback callback; | 164 TestCompletionCallback callback; |
| 165 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); | 165 CapturingBoundNetLog log; |
| 166 int rv = service.ResolveProxy( | 166 int rv = service.ResolveProxy( |
| 167 url, &info, callback.callback(), NULL, log.bound()); | 167 url, &info, callback.callback(), NULL, log.bound()); |
| 168 EXPECT_EQ(OK, rv); | 168 EXPECT_EQ(OK, rv); |
| 169 EXPECT_TRUE(resolver->pending_requests().empty()); | 169 EXPECT_TRUE(resolver->pending_requests().empty()); |
| 170 | 170 |
| 171 EXPECT_TRUE(info.is_direct()); | 171 EXPECT_TRUE(info.is_direct()); |
| 172 | 172 |
| 173 // Check the NetLog was filled correctly. | 173 // Check the NetLog was filled correctly. |
| 174 CapturingNetLog::CapturedEntryList entries; | 174 CapturingNetLog::CapturedEntryList entries; |
| 175 log.GetEntries(&entries); | 175 log.GetEntries(&entries); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 189 new MockProxyConfigService("http://foopy/proxy.pac"); | 189 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 190 | 190 |
| 191 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; | 191 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; |
| 192 | 192 |
| 193 ProxyService service(config_service, resolver, NULL); | 193 ProxyService service(config_service, resolver, NULL); |
| 194 | 194 |
| 195 GURL url("http://www.google.com/"); | 195 GURL url("http://www.google.com/"); |
| 196 | 196 |
| 197 ProxyInfo info; | 197 ProxyInfo info; |
| 198 TestCompletionCallback callback; | 198 TestCompletionCallback callback; |
| 199 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); | 199 CapturingBoundNetLog log; |
| 200 | 200 |
| 201 int rv = service.ResolveProxy( | 201 int rv = service.ResolveProxy( |
| 202 url, &info, callback.callback(), NULL, log.bound()); | 202 url, &info, callback.callback(), NULL, log.bound()); |
| 203 EXPECT_EQ(ERR_IO_PENDING, rv); | 203 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 204 | 204 |
| 205 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 205 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
| 206 resolver->pending_set_pac_script_request()->script_data()->url()); | 206 resolver->pending_set_pac_script_request()->script_data()->url()); |
| 207 resolver->pending_set_pac_script_request()->CompleteNow(OK); | 207 resolver->pending_set_pac_script_request()->CompleteNow(OK); |
| 208 | 208 |
| 209 ASSERT_EQ(1u, resolver->pending_requests().size()); | 209 ASSERT_EQ(1u, resolver->pending_requests().size()); |
| (...skipping 1192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1402 ProxyService service(config_service, resolver, NULL); | 1402 ProxyService service(config_service, resolver, NULL); |
| 1403 | 1403 |
| 1404 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1404 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 1405 service.SetProxyScriptFetchers(fetcher, | 1405 service.SetProxyScriptFetchers(fetcher, |
| 1406 new DoNothingDhcpProxyScriptFetcher()); | 1406 new DoNothingDhcpProxyScriptFetcher()); |
| 1407 | 1407 |
| 1408 // Start 3 requests. | 1408 // Start 3 requests. |
| 1409 ProxyInfo info1; | 1409 ProxyInfo info1; |
| 1410 TestCompletionCallback callback1; | 1410 TestCompletionCallback callback1; |
| 1411 ProxyService::PacRequest* request1; | 1411 ProxyService::PacRequest* request1; |
| 1412 CapturingBoundNetLog log1(CapturingNetLog::kUnbounded); | 1412 CapturingBoundNetLog log1; |
| 1413 int rv = service.ResolveProxy(GURL("http://request1"), &info1, | 1413 int rv = service.ResolveProxy(GURL("http://request1"), &info1, |
| 1414 callback1.callback(), &request1, log1.bound()); | 1414 callback1.callback(), &request1, log1.bound()); |
| 1415 EXPECT_EQ(ERR_IO_PENDING, rv); | 1415 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 1416 | 1416 |
| 1417 // The first request should have triggered download of PAC script. | 1417 // The first request should have triggered download of PAC script. |
| 1418 EXPECT_TRUE(fetcher->has_pending_request()); | 1418 EXPECT_TRUE(fetcher->has_pending_request()); |
| 1419 EXPECT_EQ(GURL("http://foopy/proxy.pac"), fetcher->pending_request_url()); | 1419 EXPECT_EQ(GURL("http://foopy/proxy.pac"), fetcher->pending_request_url()); |
| 1420 | 1420 |
| 1421 ProxyInfo info2; | 1421 ProxyInfo info2; |
| 1422 TestCompletionCallback callback2; | 1422 TestCompletionCallback callback2; |
| (...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1886 EXPECT_TRUE(info2.is_direct()); | 1886 EXPECT_TRUE(info2.is_direct()); |
| 1887 } | 1887 } |
| 1888 | 1888 |
| 1889 TEST_F(ProxyServiceTest, NetworkChangeTriggersPacRefetch) { | 1889 TEST_F(ProxyServiceTest, NetworkChangeTriggersPacRefetch) { |
| 1890 MockProxyConfigService* config_service = | 1890 MockProxyConfigService* config_service = |
| 1891 new MockProxyConfigService("http://foopy/proxy.pac"); | 1891 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 1892 | 1892 |
| 1893 MockAsyncProxyResolverExpectsBytes* resolver = | 1893 MockAsyncProxyResolverExpectsBytes* resolver = |
| 1894 new MockAsyncProxyResolverExpectsBytes; | 1894 new MockAsyncProxyResolverExpectsBytes; |
| 1895 | 1895 |
| 1896 CapturingNetLog log(CapturingNetLog::kUnbounded); | 1896 CapturingNetLog log; |
| 1897 | 1897 |
| 1898 ProxyService service(config_service, resolver, &log); | 1898 ProxyService service(config_service, resolver, &log); |
| 1899 | 1899 |
| 1900 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1900 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 1901 service.SetProxyScriptFetchers(fetcher, | 1901 service.SetProxyScriptFetchers(fetcher, |
| 1902 new DoNothingDhcpProxyScriptFetcher()); | 1902 new DoNothingDhcpProxyScriptFetcher()); |
| 1903 | 1903 |
| 1904 // Disable the "wait after IP address changes" hack, so this unit-test can | 1904 // Disable the "wait after IP address changes" hack, so this unit-test can |
| 1905 // complete quickly. | 1905 // complete quickly. |
| 1906 service.set_stall_proxy_auto_config_delay(base::TimeDelta()); | 1906 service.set_stall_proxy_auto_config_delay(base::TimeDelta()); |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2006 // runs quickly. | 2006 // runs quickly. |
| 2007 ImmediatePollPolicy poll_policy; | 2007 ImmediatePollPolicy poll_policy; |
| 2008 ProxyService::set_pac_script_poll_policy(&poll_policy); | 2008 ProxyService::set_pac_script_poll_policy(&poll_policy); |
| 2009 | 2009 |
| 2010 MockProxyConfigService* config_service = | 2010 MockProxyConfigService* config_service = |
| 2011 new MockProxyConfigService("http://foopy/proxy.pac"); | 2011 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 2012 | 2012 |
| 2013 MockAsyncProxyResolverExpectsBytes* resolver = | 2013 MockAsyncProxyResolverExpectsBytes* resolver = |
| 2014 new MockAsyncProxyResolverExpectsBytes; | 2014 new MockAsyncProxyResolverExpectsBytes; |
| 2015 | 2015 |
| 2016 CapturingNetLog log(CapturingNetLog::kUnbounded); | 2016 ProxyService service(config_service, resolver, NULL); |
| 2017 | |
| 2018 ProxyService service(config_service, resolver, &log); | |
| 2019 | 2017 |
| 2020 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2018 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 2021 service.SetProxyScriptFetchers(fetcher, | 2019 service.SetProxyScriptFetchers(fetcher, |
| 2022 new DoNothingDhcpProxyScriptFetcher()); | 2020 new DoNothingDhcpProxyScriptFetcher()); |
| 2023 | 2021 |
| 2024 // Start 1 request. | 2022 // Start 1 request. |
| 2025 | 2023 |
| 2026 ProxyInfo info1; | 2024 ProxyInfo info1; |
| 2027 TestCompletionCallback callback1; | 2025 TestCompletionCallback callback1; |
| 2028 int rv = service.ResolveProxy( | 2026 int rv = service.ResolveProxy( |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2113 // runs quickly. | 2111 // runs quickly. |
| 2114 ImmediatePollPolicy poll_policy; | 2112 ImmediatePollPolicy poll_policy; |
| 2115 ProxyService::set_pac_script_poll_policy(&poll_policy); | 2113 ProxyService::set_pac_script_poll_policy(&poll_policy); |
| 2116 | 2114 |
| 2117 MockProxyConfigService* config_service = | 2115 MockProxyConfigService* config_service = |
| 2118 new MockProxyConfigService("http://foopy/proxy.pac"); | 2116 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 2119 | 2117 |
| 2120 MockAsyncProxyResolverExpectsBytes* resolver = | 2118 MockAsyncProxyResolverExpectsBytes* resolver = |
| 2121 new MockAsyncProxyResolverExpectsBytes; | 2119 new MockAsyncProxyResolverExpectsBytes; |
| 2122 | 2120 |
| 2123 CapturingNetLog log(CapturingNetLog::kUnbounded); | 2121 ProxyService service(config_service, resolver, NULL); |
| 2124 | |
| 2125 ProxyService service(config_service, resolver, &log); | |
| 2126 | 2122 |
| 2127 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2123 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 2128 service.SetProxyScriptFetchers(fetcher, | 2124 service.SetProxyScriptFetchers(fetcher, |
| 2129 new DoNothingDhcpProxyScriptFetcher()); | 2125 new DoNothingDhcpProxyScriptFetcher()); |
| 2130 | 2126 |
| 2131 // Start 1 request. | 2127 // Start 1 request. |
| 2132 | 2128 |
| 2133 ProxyInfo info1; | 2129 ProxyInfo info1; |
| 2134 TestCompletionCallback callback1; | 2130 TestCompletionCallback callback1; |
| 2135 int rv = service.ResolveProxy( | 2131 int rv = service.ResolveProxy( |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2225 // runs quickly. | 2221 // runs quickly. |
| 2226 ImmediatePollPolicy poll_policy; | 2222 ImmediatePollPolicy poll_policy; |
| 2227 ProxyService::set_pac_script_poll_policy(&poll_policy); | 2223 ProxyService::set_pac_script_poll_policy(&poll_policy); |
| 2228 | 2224 |
| 2229 MockProxyConfigService* config_service = | 2225 MockProxyConfigService* config_service = |
| 2230 new MockProxyConfigService("http://foopy/proxy.pac"); | 2226 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 2231 | 2227 |
| 2232 MockAsyncProxyResolverExpectsBytes* resolver = | 2228 MockAsyncProxyResolverExpectsBytes* resolver = |
| 2233 new MockAsyncProxyResolverExpectsBytes; | 2229 new MockAsyncProxyResolverExpectsBytes; |
| 2234 | 2230 |
| 2235 CapturingNetLog log(CapturingNetLog::kUnbounded); | 2231 ProxyService service(config_service, resolver, NULL); |
| 2236 | |
| 2237 ProxyService service(config_service, resolver, &log); | |
| 2238 | 2232 |
| 2239 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2233 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 2240 service.SetProxyScriptFetchers(fetcher, | 2234 service.SetProxyScriptFetchers(fetcher, |
| 2241 new DoNothingDhcpProxyScriptFetcher()); | 2235 new DoNothingDhcpProxyScriptFetcher()); |
| 2242 | 2236 |
| 2243 // Start 1 request. | 2237 // Start 1 request. |
| 2244 | 2238 |
| 2245 ProxyInfo info1; | 2239 ProxyInfo info1; |
| 2246 TestCompletionCallback callback1; | 2240 TestCompletionCallback callback1; |
| 2247 int rv = service.ResolveProxy( | 2241 int rv = service.ResolveProxy( |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2333 // runs quickly. | 2327 // runs quickly. |
| 2334 ImmediatePollPolicy poll_policy; | 2328 ImmediatePollPolicy poll_policy; |
| 2335 ProxyService::set_pac_script_poll_policy(&poll_policy); | 2329 ProxyService::set_pac_script_poll_policy(&poll_policy); |
| 2336 | 2330 |
| 2337 MockProxyConfigService* config_service = | 2331 MockProxyConfigService* config_service = |
| 2338 new MockProxyConfigService("http://foopy/proxy.pac"); | 2332 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 2339 | 2333 |
| 2340 MockAsyncProxyResolverExpectsBytes* resolver = | 2334 MockAsyncProxyResolverExpectsBytes* resolver = |
| 2341 new MockAsyncProxyResolverExpectsBytes; | 2335 new MockAsyncProxyResolverExpectsBytes; |
| 2342 | 2336 |
| 2343 CapturingNetLog log(CapturingNetLog::kUnbounded); | 2337 ProxyService service(config_service, resolver, NULL); |
| 2344 | |
| 2345 ProxyService service(config_service, resolver, &log); | |
| 2346 | 2338 |
| 2347 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2339 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 2348 service.SetProxyScriptFetchers(fetcher, | 2340 service.SetProxyScriptFetchers(fetcher, |
| 2349 new DoNothingDhcpProxyScriptFetcher()); | 2341 new DoNothingDhcpProxyScriptFetcher()); |
| 2350 | 2342 |
| 2351 // Start 1 request. | 2343 // Start 1 request. |
| 2352 | 2344 |
| 2353 ProxyInfo info1; | 2345 ProxyInfo info1; |
| 2354 TestCompletionCallback callback1; | 2346 TestCompletionCallback callback1; |
| 2355 int rv = service.ResolveProxy( | 2347 int rv = service.ResolveProxy( |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2487 TEST_F(ProxyServiceTest, PACScriptRefetchAfterActivity) { | 2479 TEST_F(ProxyServiceTest, PACScriptRefetchAfterActivity) { |
| 2488 ImmediateAfterActivityPollPolicy poll_policy; | 2480 ImmediateAfterActivityPollPolicy poll_policy; |
| 2489 ProxyService::set_pac_script_poll_policy(&poll_policy); | 2481 ProxyService::set_pac_script_poll_policy(&poll_policy); |
| 2490 | 2482 |
| 2491 MockProxyConfigService* config_service = | 2483 MockProxyConfigService* config_service = |
| 2492 new MockProxyConfigService("http://foopy/proxy.pac"); | 2484 new MockProxyConfigService("http://foopy/proxy.pac"); |
| 2493 | 2485 |
| 2494 MockAsyncProxyResolverExpectsBytes* resolver = | 2486 MockAsyncProxyResolverExpectsBytes* resolver = |
| 2495 new MockAsyncProxyResolverExpectsBytes; | 2487 new MockAsyncProxyResolverExpectsBytes; |
| 2496 | 2488 |
| 2497 CapturingNetLog log(CapturingNetLog::kUnbounded); | 2489 ProxyService service(config_service, resolver, NULL); |
| 2498 | |
| 2499 ProxyService service(config_service, resolver, &log); | |
| 2500 | 2490 |
| 2501 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2491 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
| 2502 service.SetProxyScriptFetchers(fetcher, | 2492 service.SetProxyScriptFetchers(fetcher, |
| 2503 new DoNothingDhcpProxyScriptFetcher()); | 2493 new DoNothingDhcpProxyScriptFetcher()); |
| 2504 | 2494 |
| 2505 // Start 1 request. | 2495 // Start 1 request. |
| 2506 | 2496 |
| 2507 ProxyInfo info1; | 2497 ProxyInfo info1; |
| 2508 TestCompletionCallback callback1; | 2498 TestCompletionCallback callback1; |
| 2509 int rv = service.ResolveProxy( | 2499 int rv = service.ResolveProxy( |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2582 ProxyInfo info3; | 2572 ProxyInfo info3; |
| 2583 TestCompletionCallback callback3; | 2573 TestCompletionCallback callback3; |
| 2584 rv = service.ResolveProxy( | 2574 rv = service.ResolveProxy( |
| 2585 GURL("http://request3"), &info3, callback3.callback(), NULL, | 2575 GURL("http://request3"), &info3, callback3.callback(), NULL, |
| 2586 BoundNetLog()); | 2576 BoundNetLog()); |
| 2587 EXPECT_EQ(OK, rv); | 2577 EXPECT_EQ(OK, rv); |
| 2588 EXPECT_TRUE(info3.is_direct()); | 2578 EXPECT_TRUE(info3.is_direct()); |
| 2589 } | 2579 } |
| 2590 | 2580 |
| 2591 } // namespace net | 2581 } // namespace net |
| OLD | NEW |