OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 <vector> | 5 #include <vector> |
6 | 6 |
7 #include "net/base/net_errors.h" | 7 #include "net/base/net_errors.h" |
8 #include "net/base/net_log.h" | 8 #include "net/base/net_log.h" |
9 #include "net/base/net_log_unittest.h" | 9 #include "net/base/net_log_unittest.h" |
10 #include "net/base/test_completion_callback.h" | 10 #include "net/base/test_completion_callback.h" |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 | 170 |
171 Rules::Rule rule = rules.AddSuccessRule("http://custom/proxy.pac"); | 171 Rules::Rule rule = rules.AddSuccessRule("http://custom/proxy.pac"); |
172 | 172 |
173 TestCompletionCallback callback; | 173 TestCompletionCallback callback; |
174 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); | 174 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); |
175 InitProxyResolver init(&resolver, &fetcher); | 175 InitProxyResolver init(&resolver, &fetcher); |
176 EXPECT_EQ(OK, init.Init(config, &callback, log.bound())); | 176 EXPECT_EQ(OK, init.Init(config, &callback, log.bound())); |
177 EXPECT_EQ(rule.bytes(), resolver.pac_bytes()); | 177 EXPECT_EQ(rule.bytes(), resolver.pac_bytes()); |
178 | 178 |
179 // Check the NetLog was filled correctly. | 179 // Check the NetLog was filled correctly. |
180 EXPECT_EQ(9u, log.entries().size()); | 180 EXPECT_EQ(6u, log.entries().size()); |
181 EXPECT_TRUE(LogContainsBeginEvent( | 181 EXPECT_TRUE(LogContainsBeginEvent( |
182 log.entries(), 0, NetLog::TYPE_INIT_PROXY_RESOLVER)); | 182 log.entries(), 0, NetLog::TYPE_INIT_PROXY_RESOLVER)); |
183 EXPECT_TRUE(LogContainsBeginEvent( | 183 EXPECT_TRUE(LogContainsBeginEvent( |
184 log.entries(), 1, NetLog::TYPE_INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT)); | 184 log.entries(), 1, NetLog::TYPE_INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT)); |
185 EXPECT_TRUE(LogContainsEndEvent( | 185 EXPECT_TRUE(LogContainsEndEvent( |
186 log.entries(), 4, NetLog::TYPE_INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT)); | 186 log.entries(), 2, NetLog::TYPE_INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT)); |
187 EXPECT_TRUE(LogContainsBeginEvent( | 187 EXPECT_TRUE(LogContainsBeginEvent( |
188 log.entries(), 5, NetLog::TYPE_INIT_PROXY_RESOLVER_SET_PAC_SCRIPT)); | 188 log.entries(), 3, NetLog::TYPE_INIT_PROXY_RESOLVER_SET_PAC_SCRIPT)); |
189 EXPECT_TRUE(LogContainsEndEvent( | 189 EXPECT_TRUE(LogContainsEndEvent( |
190 log.entries(), 7, NetLog::TYPE_INIT_PROXY_RESOLVER_SET_PAC_SCRIPT)); | 190 log.entries(), 4, NetLog::TYPE_INIT_PROXY_RESOLVER_SET_PAC_SCRIPT)); |
191 EXPECT_TRUE(LogContainsEndEvent( | 191 EXPECT_TRUE(LogContainsEndEvent( |
192 log.entries(), 8, NetLog::TYPE_INIT_PROXY_RESOLVER)); | 192 log.entries(), 5, NetLog::TYPE_INIT_PROXY_RESOLVER)); |
193 } | 193 } |
194 | 194 |
195 // Fail downloading the custom PAC script. | 195 // Fail downloading the custom PAC script. |
196 TEST(InitProxyResolverTest, CustomPacFails1) { | 196 TEST(InitProxyResolverTest, CustomPacFails1) { |
197 Rules rules; | 197 Rules rules; |
198 RuleBasedProxyResolver resolver(&rules, true /*expects_pac_bytes*/); | 198 RuleBasedProxyResolver resolver(&rules, true /*expects_pac_bytes*/); |
199 RuleBasedProxyScriptFetcher fetcher(&rules); | 199 RuleBasedProxyScriptFetcher fetcher(&rules); |
200 | 200 |
201 ProxyConfig config; | 201 ProxyConfig config; |
202 config.set_pac_url(GURL("http://custom/proxy.pac")); | 202 config.set_pac_url(GURL("http://custom/proxy.pac")); |
203 | 203 |
204 rules.AddFailDownloadRule("http://custom/proxy.pac"); | 204 rules.AddFailDownloadRule("http://custom/proxy.pac"); |
205 | 205 |
206 TestCompletionCallback callback; | 206 TestCompletionCallback callback; |
207 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); | 207 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); |
208 InitProxyResolver init(&resolver, &fetcher); | 208 InitProxyResolver init(&resolver, &fetcher); |
209 EXPECT_EQ(kFailedDownloading, init.Init(config, &callback, log.bound())); | 209 EXPECT_EQ(kFailedDownloading, init.Init(config, &callback, log.bound())); |
210 EXPECT_EQ("", resolver.pac_bytes()); | 210 EXPECT_EQ("", resolver.pac_bytes()); |
211 | 211 |
212 // Check the NetLog was filled correctly. | 212 // Check the NetLog was filled correctly. |
213 EXPECT_EQ(6u, log.entries().size()); | 213 EXPECT_EQ(4u, log.entries().size()); |
214 EXPECT_TRUE(LogContainsBeginEvent( | 214 EXPECT_TRUE(LogContainsBeginEvent( |
215 log.entries(), 0, NetLog::TYPE_INIT_PROXY_RESOLVER)); | 215 log.entries(), 0, NetLog::TYPE_INIT_PROXY_RESOLVER)); |
216 EXPECT_TRUE(LogContainsBeginEvent( | 216 EXPECT_TRUE(LogContainsBeginEvent( |
217 log.entries(), 1, NetLog::TYPE_INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT)); | 217 log.entries(), 1, NetLog::TYPE_INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT)); |
218 EXPECT_TRUE(LogContainsEndEvent( | 218 EXPECT_TRUE(LogContainsEndEvent( |
219 log.entries(), 4, NetLog::TYPE_INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT)); | 219 log.entries(), 2, NetLog::TYPE_INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT)); |
220 EXPECT_TRUE(LogContainsEndEvent( | 220 EXPECT_TRUE(LogContainsEndEvent( |
221 log.entries(), 5, NetLog::TYPE_INIT_PROXY_RESOLVER)); | 221 log.entries(), 3, NetLog::TYPE_INIT_PROXY_RESOLVER)); |
222 } | 222 } |
223 | 223 |
224 // Fail parsing the custom PAC script. | 224 // Fail parsing the custom PAC script. |
225 TEST(InitProxyResolverTest, CustomPacFails2) { | 225 TEST(InitProxyResolverTest, CustomPacFails2) { |
226 Rules rules; | 226 Rules rules; |
227 RuleBasedProxyResolver resolver(&rules, true /*expects_pac_bytes*/); | 227 RuleBasedProxyResolver resolver(&rules, true /*expects_pac_bytes*/); |
228 RuleBasedProxyScriptFetcher fetcher(&rules); | 228 RuleBasedProxyScriptFetcher fetcher(&rules); |
229 | 229 |
230 ProxyConfig config; | 230 ProxyConfig config; |
231 config.set_pac_url(GURL("http://custom/proxy.pac")); | 231 config.set_pac_url(GURL("http://custom/proxy.pac")); |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
303 | 303 |
304 TestCompletionCallback callback; | 304 TestCompletionCallback callback; |
305 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); | 305 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); |
306 InitProxyResolver init(&resolver, &fetcher); | 306 InitProxyResolver init(&resolver, &fetcher); |
307 EXPECT_EQ(OK, init.Init(config, &callback, log.bound())); | 307 EXPECT_EQ(OK, init.Init(config, &callback, log.bound())); |
308 EXPECT_EQ(rule.bytes(), resolver.pac_bytes()); | 308 EXPECT_EQ(rule.bytes(), resolver.pac_bytes()); |
309 | 309 |
310 // Check the NetLog was filled correctly. | 310 // Check the NetLog was filled correctly. |
311 // (Note that the Fetch and Set states are repeated since both WPAD and custom | 311 // (Note that the Fetch and Set states are repeated since both WPAD and custom |
312 // PAC scripts are tried). | 312 // PAC scripts are tried). |
313 EXPECT_EQ(17u, log.entries().size()); | 313 EXPECT_EQ(11u, log.entries().size()); |
314 EXPECT_TRUE(LogContainsBeginEvent( | 314 EXPECT_TRUE(LogContainsBeginEvent( |
315 log.entries(), 0, NetLog::TYPE_INIT_PROXY_RESOLVER)); | 315 log.entries(), 0, NetLog::TYPE_INIT_PROXY_RESOLVER)); |
316 EXPECT_TRUE(LogContainsBeginEvent( | 316 EXPECT_TRUE(LogContainsBeginEvent( |
317 log.entries(), 1, NetLog::TYPE_INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT)); | 317 log.entries(), 1, NetLog::TYPE_INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT)); |
318 EXPECT_TRUE(LogContainsEndEvent( | 318 EXPECT_TRUE(LogContainsEndEvent( |
319 log.entries(), 4, NetLog::TYPE_INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT)); | 319 log.entries(), 2, NetLog::TYPE_INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT)); |
320 EXPECT_TRUE(LogContainsBeginEvent( | 320 EXPECT_TRUE(LogContainsBeginEvent( |
321 log.entries(), 5, NetLog::TYPE_INIT_PROXY_RESOLVER_SET_PAC_SCRIPT)); | 321 log.entries(), 3, NetLog::TYPE_INIT_PROXY_RESOLVER_SET_PAC_SCRIPT)); |
322 EXPECT_TRUE(LogContainsEndEvent( | 322 EXPECT_TRUE(LogContainsEndEvent( |
323 log.entries(), 7, NetLog::TYPE_INIT_PROXY_RESOLVER_SET_PAC_SCRIPT)); | 323 log.entries(), 4, NetLog::TYPE_INIT_PROXY_RESOLVER_SET_PAC_SCRIPT)); |
| 324 EXPECT_TRUE(LogContainsEvent( |
| 325 log.entries(), 5, |
| 326 NetLog::TYPE_INIT_PROXY_RESOLVER_FALLING_BACK_TO_NEXT_PAC_URL, |
| 327 NetLog::PHASE_NONE)); |
324 EXPECT_TRUE(LogContainsBeginEvent( | 328 EXPECT_TRUE(LogContainsBeginEvent( |
325 log.entries(), 9, NetLog::TYPE_INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT)); | 329 log.entries(), 6, NetLog::TYPE_INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT)); |
326 EXPECT_TRUE(LogContainsEndEvent( | 330 EXPECT_TRUE(LogContainsEndEvent( |
327 log.entries(), 12, NetLog::TYPE_INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT)); | 331 log.entries(), 7, NetLog::TYPE_INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT)); |
328 EXPECT_TRUE(LogContainsBeginEvent( | 332 EXPECT_TRUE(LogContainsBeginEvent( |
329 log.entries(), 13, NetLog::TYPE_INIT_PROXY_RESOLVER_SET_PAC_SCRIPT)); | 333 log.entries(), 8, NetLog::TYPE_INIT_PROXY_RESOLVER_SET_PAC_SCRIPT)); |
330 EXPECT_TRUE(LogContainsEndEvent( | 334 EXPECT_TRUE(LogContainsEndEvent( |
331 log.entries(), 15, NetLog::TYPE_INIT_PROXY_RESOLVER_SET_PAC_SCRIPT)); | 335 log.entries(), 9, NetLog::TYPE_INIT_PROXY_RESOLVER_SET_PAC_SCRIPT)); |
332 EXPECT_TRUE(LogContainsEndEvent( | 336 EXPECT_TRUE(LogContainsEndEvent( |
333 log.entries(), 16, NetLog::TYPE_INIT_PROXY_RESOLVER)); | 337 log.entries(), 10, NetLog::TYPE_INIT_PROXY_RESOLVER)); |
334 } | 338 } |
335 | 339 |
336 // Fails at WPAD (downloading), and fails at custom PAC (downloading). | 340 // Fails at WPAD (downloading), and fails at custom PAC (downloading). |
337 TEST(InitProxyResolverTest, AutodetectFailCustomFails1) { | 341 TEST(InitProxyResolverTest, AutodetectFailCustomFails1) { |
338 Rules rules; | 342 Rules rules; |
339 RuleBasedProxyResolver resolver(&rules, true /*expects_pac_bytes*/); | 343 RuleBasedProxyResolver resolver(&rules, true /*expects_pac_bytes*/); |
340 RuleBasedProxyScriptFetcher fetcher(&rules); | 344 RuleBasedProxyScriptFetcher fetcher(&rules); |
341 | 345 |
342 ProxyConfig config; | 346 ProxyConfig config; |
343 config.set_auto_detect(true); | 347 config.set_auto_detect(true); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
387 Rules::Rule rule = rules.AddSuccessRule("http://custom/proxy.pac"); | 391 Rules::Rule rule = rules.AddSuccessRule("http://custom/proxy.pac"); |
388 | 392 |
389 TestCompletionCallback callback; | 393 TestCompletionCallback callback; |
390 InitProxyResolver init(&resolver, &fetcher); | 394 InitProxyResolver init(&resolver, &fetcher); |
391 EXPECT_EQ(OK, init.Init(config, &callback, NULL)); | 395 EXPECT_EQ(OK, init.Init(config, &callback, NULL)); |
392 EXPECT_EQ(rule.url, resolver.pac_url()); | 396 EXPECT_EQ(rule.url, resolver.pac_url()); |
393 } | 397 } |
394 | 398 |
395 } // namespace | 399 } // namespace |
396 } // namespace net | 400 } // namespace net |
OLD | NEW |