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 <stack> | 5 #include <stack> |
6 #include <string> | 6 #include <string> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 // exercise fallback code paths. | 67 // exercise fallback code paths. |
68 | 68 |
69 class MockURLRequestDelegate : public net::URLRequest::Delegate { | 69 class MockURLRequestDelegate : public net::URLRequest::Delegate { |
70 virtual void OnResponseStarted(net::URLRequest* request) {} | 70 virtual void OnResponseStarted(net::URLRequest* request) {} |
71 virtual void OnReadCompleted(net::URLRequest* request, int bytes_read) {} | 71 virtual void OnReadCompleted(net::URLRequest* request, int bytes_read) {} |
72 }; | 72 }; |
73 | 73 |
74 class MockURLRequestJob : public net::URLRequestJob { | 74 class MockURLRequestJob : public net::URLRequestJob { |
75 public: | 75 public: |
76 MockURLRequestJob(net::URLRequest* request, | 76 MockURLRequestJob(net::URLRequest* request, |
| 77 net::NetworkDelegate* network_delegate, |
77 int response_code) | 78 int response_code) |
78 : net::URLRequestJob(request, request->context()->network_delegate()), | 79 : net::URLRequestJob(request, network_delegate), |
79 response_code_(response_code), | 80 response_code_(response_code), |
80 has_response_info_(false) {} | 81 has_response_info_(false) {} |
81 MockURLRequestJob(net::URLRequest* request, | 82 MockURLRequestJob(net::URLRequest* request, |
| 83 net::NetworkDelegate* network_delegate, |
82 const net::HttpResponseInfo& info) | 84 const net::HttpResponseInfo& info) |
83 : net::URLRequestJob(request, | 85 : net::URLRequestJob(request, network_delegate), |
84 request->context()->network_delegate()), | |
85 response_code_(info.headers->response_code()), | 86 response_code_(info.headers->response_code()), |
86 has_response_info_(true), | 87 has_response_info_(true), |
87 response_info_(info) {} | 88 response_info_(info) {} |
88 | 89 |
89 protected: | 90 protected: |
90 virtual ~MockURLRequestJob() {} | 91 virtual ~MockURLRequestJob() {} |
91 virtual void Start() OVERRIDE { | 92 virtual void Start() OVERRIDE { |
92 NotifyHeadersComplete(); | 93 NotifyHeadersComplete(); |
93 } | 94 } |
94 virtual int GetResponseCode() const OVERRIDE { | 95 virtual int GetResponseCode() const OVERRIDE { |
(...skipping 12 matching lines...) Expand all Loading... |
107 net::HttpResponseInfo response_info_; | 108 net::HttpResponseInfo response_info_; |
108 }; | 109 }; |
109 | 110 |
110 class MockURLRequest : public net::URLRequest { | 111 class MockURLRequest : public net::URLRequest { |
111 public: | 112 public: |
112 explicit MockURLRequest(const GURL& url, net::URLRequestContext* context) : | 113 explicit MockURLRequest(const GURL& url, net::URLRequestContext* context) : |
113 net::URLRequest(url, NULL, context) { | 114 net::URLRequest(url, NULL, context) { |
114 } | 115 } |
115 | 116 |
116 void SimulateResponseCode(int http_response_code) { | 117 void SimulateResponseCode(int http_response_code) { |
117 mock_factory_job_ = new MockURLRequestJob(this, http_response_code); | 118 mock_factory_job_ = new MockURLRequestJob( |
| 119 this, context()->network_delegate(), http_response_code); |
118 Start(); | 120 Start(); |
119 DCHECK(!mock_factory_job_); | 121 DCHECK(!mock_factory_job_); |
120 // All our simulation needs to satisfy are the following two DCHECKs | 122 // All our simulation needs to satisfy are the following two DCHECKs |
121 DCHECK(status().is_success()); | 123 DCHECK(status().is_success()); |
122 DCHECK_EQ(http_response_code, GetResponseCode()); | 124 DCHECK_EQ(http_response_code, GetResponseCode()); |
123 } | 125 } |
124 | 126 |
125 void SimulateResponseInfo(const net::HttpResponseInfo& info) { | 127 void SimulateResponseInfo(const net::HttpResponseInfo& info) { |
126 mock_factory_job_ = new MockURLRequestJob(this, info); | 128 mock_factory_job_ = new MockURLRequestJob( |
| 129 this, context()->network_delegate(), info); |
127 set_delegate(&delegate_); // needed to get the info back out | 130 set_delegate(&delegate_); // needed to get the info back out |
128 Start(); | 131 Start(); |
129 DCHECK(!mock_factory_job_); | 132 DCHECK(!mock_factory_job_); |
130 } | 133 } |
131 | 134 |
132 MockURLRequestDelegate delegate_; | 135 MockURLRequestDelegate delegate_; |
133 }; | 136 }; |
134 | 137 |
135 static net::URLRequestJob* MockHttpJobFactory(net::URLRequest* request, | 138 static net::URLRequestJob* MockHttpJobFactory( |
136 const std::string& scheme) { | 139 net::URLRequest* request, |
| 140 net::NetworkDelegate* network_delegate, |
| 141 const std::string& scheme) { |
137 if (mock_factory_job_) { | 142 if (mock_factory_job_) { |
138 net::URLRequestJob* temp = mock_factory_job_; | 143 net::URLRequestJob* temp = mock_factory_job_; |
139 mock_factory_job_ = NULL; | 144 mock_factory_job_ = NULL; |
140 return temp; | 145 return temp; |
141 } else { | 146 } else { |
142 // Some of these tests trigger UpdateJobs which start URLRequests. | 147 // Some of these tests trigger UpdateJobs which start URLRequests. |
143 // We short circuit those be returning error jobs. | 148 // We short circuit those be returning error jobs. |
144 return new net::URLRequestErrorJob(request, | 149 return new net::URLRequestErrorJob(request, |
| 150 network_delegate, |
145 net::ERR_INTERNET_DISCONNECTED); | 151 net::ERR_INTERNET_DISCONNECTED); |
146 } | 152 } |
147 } | 153 } |
148 | 154 |
149 static void SetUpTestCase() { | 155 static void SetUpTestCase() { |
150 io_thread_.reset(new base::Thread("AppCacheRequestHandlerTest Thread")); | 156 io_thread_.reset(new base::Thread("AppCacheRequestHandlerTest Thread")); |
151 base::Thread::Options options(MessageLoop::TYPE_IO, 0); | 157 base::Thread::Options options(MessageLoop::TYPE_IO, 0); |
152 io_thread_->StartWithOptions(options); | 158 io_thread_->StartWithOptions(options); |
153 } | 159 } |
154 | 160 |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 void MainResource_Miss() { | 245 void MainResource_Miss() { |
240 PushNextTask( | 246 PushNextTask( |
241 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Miss, | 247 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Miss, |
242 base::Unretained(this))); | 248 base::Unretained(this))); |
243 | 249 |
244 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); | 250 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); |
245 handler_.reset(host_->CreateRequestHandler(request_.get(), | 251 handler_.reset(host_->CreateRequestHandler(request_.get(), |
246 ResourceType::MAIN_FRAME)); | 252 ResourceType::MAIN_FRAME)); |
247 EXPECT_TRUE(handler_.get()); | 253 EXPECT_TRUE(handler_.get()); |
248 | 254 |
249 job_ = handler_->MaybeLoadResource(request_.get()); | 255 job_ = handler_->MaybeLoadResource(request_.get(), |
| 256 empty_context_.network_delegate()); |
250 EXPECT_TRUE(job_.get()); | 257 EXPECT_TRUE(job_.get()); |
251 EXPECT_TRUE(job_->is_waiting()); | 258 EXPECT_TRUE(job_->is_waiting()); |
252 | 259 |
253 // We have to wait for completion of storage->FindResponseForMainRequest. | 260 // We have to wait for completion of storage->FindResponseForMainRequest. |
254 ScheduleNextTask(); | 261 ScheduleNextTask(); |
255 } | 262 } |
256 | 263 |
257 void Verify_MainResource_Miss() { | 264 void Verify_MainResource_Miss() { |
258 EXPECT_FALSE(job_->is_waiting()); | 265 EXPECT_FALSE(job_->is_waiting()); |
259 EXPECT_TRUE(job_->is_delivering_network_response()); | 266 EXPECT_TRUE(job_->is_delivering_network_response()); |
260 | 267 |
261 int64 cache_id = kNoCacheId; | 268 int64 cache_id = kNoCacheId; |
262 GURL manifest_url; | 269 GURL manifest_url; |
263 handler_->GetExtraResponseInfo(&cache_id, &manifest_url); | 270 handler_->GetExtraResponseInfo(&cache_id, &manifest_url); |
264 EXPECT_EQ(kNoCacheId, cache_id); | 271 EXPECT_EQ(kNoCacheId, cache_id); |
265 EXPECT_EQ(GURL(), manifest_url); | 272 EXPECT_EQ(GURL(), manifest_url); |
266 EXPECT_EQ(0, handler_->found_group_id_); | 273 EXPECT_EQ(0, handler_->found_group_id_); |
267 | 274 |
268 AppCacheURLRequestJob* fallback_job; | 275 AppCacheURLRequestJob* fallback_job; |
269 fallback_job = handler_->MaybeLoadFallbackForRedirect( | 276 fallback_job = handler_->MaybeLoadFallbackForRedirect( |
270 request_.get(), GURL("http://blah/redirect")); | 277 request_.get(), |
| 278 request_->context()->network_delegate(), |
| 279 GURL("http://blah/redirect")); |
271 EXPECT_FALSE(fallback_job); | 280 EXPECT_FALSE(fallback_job); |
272 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); | 281 fallback_job = handler_->MaybeLoadFallbackForResponse( |
| 282 request_.get(), request_->context()->network_delegate()); |
273 EXPECT_FALSE(fallback_job); | 283 EXPECT_FALSE(fallback_job); |
274 | 284 |
275 EXPECT_TRUE(host_->preferred_manifest_url().is_empty()); | 285 EXPECT_TRUE(host_->preferred_manifest_url().is_empty()); |
276 | 286 |
277 TestFinished(); | 287 TestFinished(); |
278 } | 288 } |
279 | 289 |
280 // MainResource_Hit -------------------------------------------------- | 290 // MainResource_Hit -------------------------------------------------- |
281 | 291 |
282 void MainResource_Hit() { | 292 void MainResource_Hit() { |
283 PushNextTask( | 293 PushNextTask( |
284 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Hit, | 294 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Hit, |
285 base::Unretained(this))); | 295 base::Unretained(this))); |
286 | 296 |
287 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); | 297 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); |
288 handler_.reset(host_->CreateRequestHandler(request_.get(), | 298 handler_.reset(host_->CreateRequestHandler(request_.get(), |
289 ResourceType::MAIN_FRAME)); | 299 ResourceType::MAIN_FRAME)); |
290 EXPECT_TRUE(handler_.get()); | 300 EXPECT_TRUE(handler_.get()); |
291 | 301 |
292 mock_storage()->SimulateFindMainResource( | 302 mock_storage()->SimulateFindMainResource( |
293 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), | 303 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), |
294 GURL(), AppCacheEntry(), | 304 GURL(), AppCacheEntry(), |
295 1, 2, GURL("http://blah/manifest/")); | 305 1, 2, GURL("http://blah/manifest/")); |
296 | 306 |
297 job_ = handler_->MaybeLoadResource(request_.get()); | 307 job_ = handler_->MaybeLoadResource(request_.get(), |
| 308 empty_context_.network_delegate()); |
298 EXPECT_TRUE(job_.get()); | 309 EXPECT_TRUE(job_.get()); |
299 EXPECT_TRUE(job_->is_waiting()); | 310 EXPECT_TRUE(job_->is_waiting()); |
300 | 311 |
301 // We have to wait for completion of storage->FindResponseForMainRequest. | 312 // We have to wait for completion of storage->FindResponseForMainRequest. |
302 ScheduleNextTask(); | 313 ScheduleNextTask(); |
303 } | 314 } |
304 | 315 |
305 void Verify_MainResource_Hit() { | 316 void Verify_MainResource_Hit() { |
306 EXPECT_FALSE(job_->is_waiting()); | 317 EXPECT_FALSE(job_->is_waiting()); |
307 EXPECT_TRUE(job_->is_delivering_appcache_response()); | 318 EXPECT_TRUE(job_->is_delivering_appcache_response()); |
308 | 319 |
309 int64 cache_id = kNoCacheId; | 320 int64 cache_id = kNoCacheId; |
310 GURL manifest_url; | 321 GURL manifest_url; |
311 handler_->GetExtraResponseInfo(&cache_id, &manifest_url); | 322 handler_->GetExtraResponseInfo(&cache_id, &manifest_url); |
312 EXPECT_EQ(1, cache_id); | 323 EXPECT_EQ(1, cache_id); |
313 EXPECT_EQ(GURL("http://blah/manifest/"), manifest_url); | 324 EXPECT_EQ(GURL("http://blah/manifest/"), manifest_url); |
314 EXPECT_EQ(2, handler_->found_group_id_); | 325 EXPECT_EQ(2, handler_->found_group_id_); |
315 | 326 |
316 AppCacheURLRequestJob* fallback_job; | 327 AppCacheURLRequestJob* fallback_job; |
317 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); | 328 fallback_job = handler_->MaybeLoadFallbackForResponse( |
| 329 request_.get(), request_->context()->network_delegate()); |
318 EXPECT_FALSE(fallback_job); | 330 EXPECT_FALSE(fallback_job); |
319 | 331 |
320 EXPECT_EQ(GURL("http://blah/manifest/"), | 332 EXPECT_EQ(GURL("http://blah/manifest/"), |
321 host_->preferred_manifest_url()); | 333 host_->preferred_manifest_url()); |
322 | 334 |
323 TestFinished(); | 335 TestFinished(); |
324 } | 336 } |
325 | 337 |
326 // MainResource_Fallback -------------------------------------------------- | 338 // MainResource_Fallback -------------------------------------------------- |
327 | 339 |
328 void MainResource_Fallback() { | 340 void MainResource_Fallback() { |
329 PushNextTask( | 341 PushNextTask( |
330 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Fallback, | 342 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Fallback, |
331 base::Unretained(this))); | 343 base::Unretained(this))); |
332 | 344 |
333 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); | 345 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); |
334 handler_.reset(host_->CreateRequestHandler(request_.get(), | 346 handler_.reset(host_->CreateRequestHandler(request_.get(), |
335 ResourceType::MAIN_FRAME)); | 347 ResourceType::MAIN_FRAME)); |
336 EXPECT_TRUE(handler_.get()); | 348 EXPECT_TRUE(handler_.get()); |
337 | 349 |
338 mock_storage()->SimulateFindMainResource( | 350 mock_storage()->SimulateFindMainResource( |
339 AppCacheEntry(), | 351 AppCacheEntry(), |
340 GURL("http://blah/fallbackurl"), | 352 GURL("http://blah/fallbackurl"), |
341 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), | 353 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), |
342 1, 2, GURL("http://blah/manifest/")); | 354 1, 2, GURL("http://blah/manifest/")); |
343 | 355 |
344 job_ = handler_->MaybeLoadResource(request_.get()); | 356 job_ = handler_->MaybeLoadResource(request_.get(), |
| 357 empty_context_.network_delegate()); |
345 EXPECT_TRUE(job_.get()); | 358 EXPECT_TRUE(job_.get()); |
346 EXPECT_TRUE(job_->is_waiting()); | 359 EXPECT_TRUE(job_->is_waiting()); |
347 | 360 |
348 // We have to wait for completion of storage->FindResponseForMainRequest. | 361 // We have to wait for completion of storage->FindResponseForMainRequest. |
349 ScheduleNextTask(); | 362 ScheduleNextTask(); |
350 } | 363 } |
351 | 364 |
352 void Verify_MainResource_Fallback() { | 365 void Verify_MainResource_Fallback() { |
353 EXPECT_FALSE(job_->is_waiting()); | 366 EXPECT_FALSE(job_->is_waiting()); |
354 EXPECT_TRUE(job_->is_delivering_network_response()); | 367 EXPECT_TRUE(job_->is_delivering_network_response()); |
355 | 368 |
356 // When the request is restarted, the existing job is dropped so a | 369 // When the request is restarted, the existing job is dropped so a |
357 // real network job gets created. We expect NULL here which will cause | 370 // real network job gets created. We expect NULL here which will cause |
358 // the net library to create a real job. | 371 // the net library to create a real job. |
359 job_ = handler_->MaybeLoadResource(request_.get()); | 372 job_ = handler_->MaybeLoadResource(request_.get(), |
| 373 empty_context_.network_delegate()); |
360 EXPECT_FALSE(job_); | 374 EXPECT_FALSE(job_); |
361 | 375 |
362 // Simulate an http error of the real network job. | 376 // Simulate an http error of the real network job. |
363 request_->SimulateResponseCode(500); | 377 request_->SimulateResponseCode(500); |
364 | 378 |
365 job_ = handler_->MaybeLoadFallbackForResponse(request_.get()); | 379 job_ = handler_->MaybeLoadFallbackForResponse( |
| 380 request_.get(), request_->context()->network_delegate()); |
366 EXPECT_TRUE(job_); | 381 EXPECT_TRUE(job_); |
367 EXPECT_TRUE(job_->is_delivering_appcache_response()); | 382 EXPECT_TRUE(job_->is_delivering_appcache_response()); |
368 | 383 |
369 int64 cache_id = kNoCacheId; | 384 int64 cache_id = kNoCacheId; |
370 GURL manifest_url; | 385 GURL manifest_url; |
371 handler_->GetExtraResponseInfo(&cache_id, &manifest_url); | 386 handler_->GetExtraResponseInfo(&cache_id, &manifest_url); |
372 EXPECT_EQ(1, cache_id); | 387 EXPECT_EQ(1, cache_id); |
373 EXPECT_EQ(GURL("http://blah/manifest/"), manifest_url); | 388 EXPECT_EQ(GURL("http://blah/manifest/"), manifest_url); |
374 EXPECT_TRUE(host_->main_resource_was_namespace_entry_); | 389 EXPECT_TRUE(host_->main_resource_was_namespace_entry_); |
375 EXPECT_EQ(GURL("http://blah/fallbackurl"), host_->namespace_entry_url_); | 390 EXPECT_EQ(GURL("http://blah/fallbackurl"), host_->namespace_entry_url_); |
(...skipping 16 matching lines...) Expand all Loading... |
392 handler_.reset(host_->CreateRequestHandler(request_.get(), | 407 handler_.reset(host_->CreateRequestHandler(request_.get(), |
393 ResourceType::MAIN_FRAME)); | 408 ResourceType::MAIN_FRAME)); |
394 EXPECT_TRUE(handler_.get()); | 409 EXPECT_TRUE(handler_.get()); |
395 | 410 |
396 mock_storage()->SimulateFindMainResource( | 411 mock_storage()->SimulateFindMainResource( |
397 AppCacheEntry(), | 412 AppCacheEntry(), |
398 GURL("http://blah/fallbackurl"), | 413 GURL("http://blah/fallbackurl"), |
399 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), | 414 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), |
400 1, 2, GURL("http://blah/manifest/")); | 415 1, 2, GURL("http://blah/manifest/")); |
401 | 416 |
402 job_ = handler_->MaybeLoadResource(request_.get()); | 417 job_ = handler_->MaybeLoadResource(request_.get(), |
| 418 empty_context_.network_delegate()); |
403 EXPECT_TRUE(job_.get()); | 419 EXPECT_TRUE(job_.get()); |
404 EXPECT_TRUE(job_->is_waiting()); | 420 EXPECT_TRUE(job_->is_waiting()); |
405 | 421 |
406 // We have to wait for completion of storage->FindResponseForMainRequest. | 422 // We have to wait for completion of storage->FindResponseForMainRequest. |
407 ScheduleNextTask(); | 423 ScheduleNextTask(); |
408 } | 424 } |
409 | 425 |
410 void Verify_MainResource_FallbackOverride() { | 426 void Verify_MainResource_FallbackOverride() { |
411 EXPECT_FALSE(job_->is_waiting()); | 427 EXPECT_FALSE(job_->is_waiting()); |
412 EXPECT_TRUE(job_->is_delivering_network_response()); | 428 EXPECT_TRUE(job_->is_delivering_network_response()); |
413 | 429 |
414 // When the request is restarted, the existing job is dropped so a | 430 // When the request is restarted, the existing job is dropped so a |
415 // real network job gets created. We expect NULL here which will cause | 431 // real network job gets created. We expect NULL here which will cause |
416 // the net library to create a real job. | 432 // the net library to create a real job. |
417 job_ = handler_->MaybeLoadResource(request_.get()); | 433 job_ = handler_->MaybeLoadResource(request_.get(), |
| 434 empty_context_.network_delegate()); |
418 EXPECT_FALSE(job_); | 435 EXPECT_FALSE(job_); |
419 | 436 |
420 // Simulate an http error of the real network job, but with custom | 437 // Simulate an http error of the real network job, but with custom |
421 // headers that override the fallback behavior. | 438 // headers that override the fallback behavior. |
422 const char kOverrideHeaders[] = | 439 const char kOverrideHeaders[] = |
423 "HTTP/1.1 404 BOO HOO\0" | 440 "HTTP/1.1 404 BOO HOO\0" |
424 "x-chromium-appcache-fallback-override: disallow-fallback\0" | 441 "x-chromium-appcache-fallback-override: disallow-fallback\0" |
425 "\0"; | 442 "\0"; |
426 net::HttpResponseInfo info; | 443 net::HttpResponseInfo info; |
427 info.headers = new net::HttpResponseHeaders( | 444 info.headers = new net::HttpResponseHeaders( |
428 std::string(kOverrideHeaders, arraysize(kOverrideHeaders))); | 445 std::string(kOverrideHeaders, arraysize(kOverrideHeaders))); |
429 request_->SimulateResponseInfo(info); | 446 request_->SimulateResponseInfo(info); |
430 | 447 |
431 job_ = handler_->MaybeLoadFallbackForResponse(request_.get()); | 448 job_ = handler_->MaybeLoadFallbackForResponse( |
| 449 request_.get(), request_->context()->network_delegate()); |
432 EXPECT_FALSE(job_); | 450 EXPECT_FALSE(job_); |
433 | 451 |
434 TestFinished(); | 452 TestFinished(); |
435 } | 453 } |
436 | 454 |
437 // SubResource_Miss_WithNoCacheSelected ---------------------------------- | 455 // SubResource_Miss_WithNoCacheSelected ---------------------------------- |
438 | 456 |
439 void SubResource_Miss_WithNoCacheSelected() { | 457 void SubResource_Miss_WithNoCacheSelected() { |
440 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); | 458 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); |
441 handler_.reset(host_->CreateRequestHandler(request_.get(), | 459 handler_.reset(host_->CreateRequestHandler(request_.get(), |
(...skipping 11 matching lines...) Expand all Loading... |
453 void SubResource_Miss_WithCacheSelected() { | 471 void SubResource_Miss_WithCacheSelected() { |
454 // A sub-resource load where the resource is not in an appcache, or | 472 // A sub-resource load where the resource is not in an appcache, or |
455 // in a network or fallback namespace, should result in a failed request. | 473 // in a network or fallback namespace, should result in a failed request. |
456 host_->AssociateCompleteCache(MakeNewCache()); | 474 host_->AssociateCompleteCache(MakeNewCache()); |
457 | 475 |
458 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); | 476 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); |
459 handler_.reset(host_->CreateRequestHandler(request_.get(), | 477 handler_.reset(host_->CreateRequestHandler(request_.get(), |
460 ResourceType::SUB_RESOURCE)); | 478 ResourceType::SUB_RESOURCE)); |
461 EXPECT_TRUE(handler_.get()); | 479 EXPECT_TRUE(handler_.get()); |
462 | 480 |
463 job_ = handler_->MaybeLoadResource(request_.get()); | 481 job_ = handler_->MaybeLoadResource(request_.get(), |
| 482 empty_context_.network_delegate()); |
464 EXPECT_TRUE(job_.get()); | 483 EXPECT_TRUE(job_.get()); |
465 EXPECT_TRUE(job_->is_delivering_error_response()); | 484 EXPECT_TRUE(job_->is_delivering_error_response()); |
466 | 485 |
467 AppCacheURLRequestJob* fallback_job; | 486 AppCacheURLRequestJob* fallback_job; |
468 fallback_job = handler_->MaybeLoadFallbackForRedirect( | 487 fallback_job = handler_->MaybeLoadFallbackForRedirect( |
469 request_.get(), GURL("http://blah/redirect")); | 488 request_.get(), |
| 489 empty_context_.network_delegate(), |
| 490 GURL("http://blah/redirect")); |
470 EXPECT_FALSE(fallback_job); | 491 EXPECT_FALSE(fallback_job); |
471 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); | 492 fallback_job = handler_->MaybeLoadFallbackForResponse( |
| 493 request_.get(), empty_context_.network_delegate()); |
472 EXPECT_FALSE(fallback_job); | 494 EXPECT_FALSE(fallback_job); |
473 | 495 |
474 TestFinished(); | 496 TestFinished(); |
475 } | 497 } |
476 | 498 |
477 // SubResource_Miss_WithWaitForCacheSelection ----------------------------- | 499 // SubResource_Miss_WithWaitForCacheSelection ----------------------------- |
478 | 500 |
479 void SubResource_Miss_WithWaitForCacheSelection() { | 501 void SubResource_Miss_WithWaitForCacheSelection() { |
480 // Precondition, the host is waiting on cache selection. | 502 // Precondition, the host is waiting on cache selection. |
481 scoped_refptr<AppCache> cache(MakeNewCache()); | 503 scoped_refptr<AppCache> cache(MakeNewCache()); |
482 host_->pending_selected_cache_id_ = cache->cache_id(); | 504 host_->pending_selected_cache_id_ = cache->cache_id(); |
483 host_->set_preferred_manifest_url(cache->owning_group()->manifest_url()); | 505 host_->set_preferred_manifest_url(cache->owning_group()->manifest_url()); |
484 | 506 |
485 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); | 507 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); |
486 handler_.reset(host_->CreateRequestHandler(request_.get(), | 508 handler_.reset(host_->CreateRequestHandler(request_.get(), |
487 ResourceType::SUB_RESOURCE)); | 509 ResourceType::SUB_RESOURCE)); |
488 EXPECT_TRUE(handler_.get()); | 510 EXPECT_TRUE(handler_.get()); |
489 job_ = handler_->MaybeLoadResource(request_.get()); | 511 job_ = handler_->MaybeLoadResource(request_.get(), |
| 512 empty_context_.network_delegate()); |
490 EXPECT_TRUE(job_.get()); | 513 EXPECT_TRUE(job_.get()); |
491 EXPECT_TRUE(job_->is_waiting()); | 514 EXPECT_TRUE(job_->is_waiting()); |
492 | 515 |
493 host_->FinishCacheSelection(cache, NULL); | 516 host_->FinishCacheSelection(cache, NULL); |
494 EXPECT_FALSE(job_->is_waiting()); | 517 EXPECT_FALSE(job_->is_waiting()); |
495 EXPECT_TRUE(job_->is_delivering_error_response()); | 518 EXPECT_TRUE(job_->is_delivering_error_response()); |
496 | 519 |
497 AppCacheURLRequestJob* fallback_job; | 520 AppCacheURLRequestJob* fallback_job; |
498 fallback_job = handler_->MaybeLoadFallbackForRedirect( | 521 fallback_job = handler_->MaybeLoadFallbackForRedirect( |
499 request_.get(), GURL("http://blah/redirect")); | 522 request_.get(), |
| 523 empty_context_.network_delegate(), |
| 524 GURL("http://blah/redirect")); |
500 EXPECT_FALSE(fallback_job); | 525 EXPECT_FALSE(fallback_job); |
501 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); | 526 fallback_job = handler_->MaybeLoadFallbackForResponse( |
| 527 request_.get(), empty_context_.network_delegate()); |
502 EXPECT_FALSE(fallback_job); | 528 EXPECT_FALSE(fallback_job); |
503 | 529 |
504 TestFinished(); | 530 TestFinished(); |
505 } | 531 } |
506 | 532 |
507 // SubResource_Hit ----------------------------- | 533 // SubResource_Hit ----------------------------- |
508 | 534 |
509 void SubResource_Hit() { | 535 void SubResource_Hit() { |
510 host_->AssociateCompleteCache(MakeNewCache()); | 536 host_->AssociateCompleteCache(MakeNewCache()); |
511 | 537 |
512 mock_storage()->SimulateFindSubResource( | 538 mock_storage()->SimulateFindSubResource( |
513 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); | 539 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); |
514 | 540 |
515 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); | 541 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); |
516 handler_.reset(host_->CreateRequestHandler(request_.get(), | 542 handler_.reset(host_->CreateRequestHandler(request_.get(), |
517 ResourceType::SUB_RESOURCE)); | 543 ResourceType::SUB_RESOURCE)); |
518 EXPECT_TRUE(handler_.get()); | 544 EXPECT_TRUE(handler_.get()); |
519 job_ = handler_->MaybeLoadResource(request_.get()); | 545 job_ = handler_->MaybeLoadResource(request_.get(), |
| 546 empty_context_.network_delegate()); |
520 EXPECT_TRUE(job_.get()); | 547 EXPECT_TRUE(job_.get()); |
521 EXPECT_TRUE(job_->is_delivering_appcache_response()); | 548 EXPECT_TRUE(job_->is_delivering_appcache_response()); |
522 | 549 |
523 AppCacheURLRequestJob* fallback_job; | 550 AppCacheURLRequestJob* fallback_job; |
524 fallback_job = handler_->MaybeLoadFallbackForRedirect( | 551 fallback_job = handler_->MaybeLoadFallbackForRedirect( |
525 request_.get(), GURL("http://blah/redirect")); | 552 request_.get(), |
| 553 empty_context_.network_delegate(), |
| 554 GURL("http://blah/redirect")); |
526 EXPECT_FALSE(fallback_job); | 555 EXPECT_FALSE(fallback_job); |
527 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); | 556 fallback_job = handler_->MaybeLoadFallbackForResponse( |
| 557 request_.get(), empty_context_.network_delegate()); |
528 EXPECT_FALSE(fallback_job); | 558 EXPECT_FALSE(fallback_job); |
529 | 559 |
530 TestFinished(); | 560 TestFinished(); |
531 } | 561 } |
532 | 562 |
533 // SubResource_RedirectFallback ----------------------------- | 563 // SubResource_RedirectFallback ----------------------------- |
534 | 564 |
535 void SubResource_RedirectFallback() { | 565 void SubResource_RedirectFallback() { |
536 // Redirects to resources in the a different origin are subject to | 566 // Redirects to resources in the a different origin are subject to |
537 // fallback namespaces. | 567 // fallback namespaces. |
538 host_->AssociateCompleteCache(MakeNewCache()); | 568 host_->AssociateCompleteCache(MakeNewCache()); |
539 | 569 |
540 mock_storage()->SimulateFindSubResource( | 570 mock_storage()->SimulateFindSubResource( |
541 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); | 571 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); |
542 | 572 |
543 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); | 573 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); |
544 handler_.reset(host_->CreateRequestHandler(request_.get(), | 574 handler_.reset(host_->CreateRequestHandler(request_.get(), |
545 ResourceType::SUB_RESOURCE)); | 575 ResourceType::SUB_RESOURCE)); |
546 EXPECT_TRUE(handler_.get()); | 576 EXPECT_TRUE(handler_.get()); |
547 job_ = handler_->MaybeLoadResource(request_.get()); | 577 job_ = handler_->MaybeLoadResource(request_.get(), |
| 578 empty_context_.network_delegate()); |
548 EXPECT_FALSE(job_.get()); | 579 EXPECT_FALSE(job_.get()); |
549 | 580 |
550 job_ = handler_->MaybeLoadFallbackForRedirect( | 581 job_ = handler_->MaybeLoadFallbackForRedirect( |
551 request_.get(), GURL("http://not_blah/redirect")); | 582 request_.get(), |
| 583 empty_context_.network_delegate(), |
| 584 GURL("http://not_blah/redirect")); |
552 EXPECT_TRUE(job_.get()); | 585 EXPECT_TRUE(job_.get()); |
553 EXPECT_TRUE(job_->is_delivering_appcache_response()); | 586 EXPECT_TRUE(job_->is_delivering_appcache_response()); |
554 | 587 |
555 AppCacheURLRequestJob* fallback_job; | 588 AppCacheURLRequestJob* fallback_job; |
556 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); | 589 fallback_job = handler_->MaybeLoadFallbackForResponse( |
| 590 request_.get(), empty_context_.network_delegate()); |
557 EXPECT_FALSE(fallback_job); | 591 EXPECT_FALSE(fallback_job); |
558 | 592 |
559 TestFinished(); | 593 TestFinished(); |
560 } | 594 } |
561 | 595 |
562 // SubResource_NoRedirectFallback ----------------------------- | 596 // SubResource_NoRedirectFallback ----------------------------- |
563 | 597 |
564 void SubResource_NoRedirectFallback() { | 598 void SubResource_NoRedirectFallback() { |
565 // Redirects to resources in the same-origin are not subject to | 599 // Redirects to resources in the same-origin are not subject to |
566 // fallback namespaces. | 600 // fallback namespaces. |
567 host_->AssociateCompleteCache(MakeNewCache()); | 601 host_->AssociateCompleteCache(MakeNewCache()); |
568 | 602 |
569 mock_storage()->SimulateFindSubResource( | 603 mock_storage()->SimulateFindSubResource( |
570 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); | 604 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); |
571 | 605 |
572 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); | 606 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); |
573 handler_.reset(host_->CreateRequestHandler(request_.get(), | 607 handler_.reset(host_->CreateRequestHandler(request_.get(), |
574 ResourceType::SUB_RESOURCE)); | 608 ResourceType::SUB_RESOURCE)); |
575 EXPECT_TRUE(handler_.get()); | 609 EXPECT_TRUE(handler_.get()); |
576 job_ = handler_->MaybeLoadResource(request_.get()); | 610 job_ = handler_->MaybeLoadResource(request_.get(), |
| 611 empty_context_.network_delegate()); |
577 EXPECT_FALSE(job_.get()); | 612 EXPECT_FALSE(job_.get()); |
578 | 613 |
579 AppCacheURLRequestJob* fallback_job; | 614 AppCacheURLRequestJob* fallback_job; |
580 fallback_job = handler_->MaybeLoadFallbackForRedirect( | 615 fallback_job = handler_->MaybeLoadFallbackForRedirect( |
581 request_.get(), GURL("http://blah/redirect")); | 616 request_.get(), |
| 617 empty_context_.network_delegate(), |
| 618 GURL("http://blah/redirect")); |
582 EXPECT_FALSE(fallback_job); | 619 EXPECT_FALSE(fallback_job); |
583 | 620 |
584 request_->SimulateResponseCode(200); | 621 request_->SimulateResponseCode(200); |
585 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); | 622 fallback_job = handler_->MaybeLoadFallbackForResponse( |
| 623 request_.get(), empty_context_.network_delegate()); |
586 EXPECT_FALSE(fallback_job); | 624 EXPECT_FALSE(fallback_job); |
587 | 625 |
588 TestFinished(); | 626 TestFinished(); |
589 } | 627 } |
590 | 628 |
591 // SubResource_Network ----------------------------- | 629 // SubResource_Network ----------------------------- |
592 | 630 |
593 void SubResource_Network() { | 631 void SubResource_Network() { |
594 // A sub-resource load where the resource is in a network namespace, | 632 // A sub-resource load where the resource is in a network namespace, |
595 // should result in the system using a 'real' job to do the network | 633 // should result in the system using a 'real' job to do the network |
596 // retrieval. | 634 // retrieval. |
597 host_->AssociateCompleteCache(MakeNewCache()); | 635 host_->AssociateCompleteCache(MakeNewCache()); |
598 | 636 |
599 mock_storage()->SimulateFindSubResource( | 637 mock_storage()->SimulateFindSubResource( |
600 AppCacheEntry(), AppCacheEntry(), true); | 638 AppCacheEntry(), AppCacheEntry(), true); |
601 | 639 |
602 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); | 640 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); |
603 handler_.reset(host_->CreateRequestHandler(request_.get(), | 641 handler_.reset(host_->CreateRequestHandler(request_.get(), |
604 ResourceType::SUB_RESOURCE)); | 642 ResourceType::SUB_RESOURCE)); |
605 EXPECT_TRUE(handler_.get()); | 643 EXPECT_TRUE(handler_.get()); |
606 job_ = handler_->MaybeLoadResource(request_.get()); | 644 job_ = handler_->MaybeLoadResource(request_.get(), |
| 645 empty_context_.network_delegate()); |
607 EXPECT_FALSE(job_.get()); | 646 EXPECT_FALSE(job_.get()); |
608 | 647 |
609 AppCacheURLRequestJob* fallback_job; | 648 AppCacheURLRequestJob* fallback_job; |
610 fallback_job = handler_->MaybeLoadFallbackForRedirect( | 649 fallback_job = handler_->MaybeLoadFallbackForRedirect( |
611 request_.get(), GURL("http://blah/redirect")); | 650 request_.get(), |
| 651 empty_context_.network_delegate(), |
| 652 GURL("http://blah/redirect")); |
612 EXPECT_FALSE(fallback_job); | 653 EXPECT_FALSE(fallback_job); |
613 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); | 654 fallback_job = handler_->MaybeLoadFallbackForResponse( |
| 655 request_.get(), empty_context_.network_delegate()); |
614 EXPECT_FALSE(fallback_job); | 656 EXPECT_FALSE(fallback_job); |
615 | 657 |
616 TestFinished(); | 658 TestFinished(); |
617 } | 659 } |
618 | 660 |
619 // DestroyedHost ----------------------------- | 661 // DestroyedHost ----------------------------- |
620 | 662 |
621 void DestroyedHost() { | 663 void DestroyedHost() { |
622 host_->AssociateCompleteCache(MakeNewCache()); | 664 host_->AssociateCompleteCache(MakeNewCache()); |
623 | 665 |
624 mock_storage()->SimulateFindSubResource( | 666 mock_storage()->SimulateFindSubResource( |
625 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); | 667 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); |
626 | 668 |
627 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); | 669 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); |
628 handler_.reset(host_->CreateRequestHandler(request_.get(), | 670 handler_.reset(host_->CreateRequestHandler(request_.get(), |
629 ResourceType::SUB_RESOURCE)); | 671 ResourceType::SUB_RESOURCE)); |
630 EXPECT_TRUE(handler_.get()); | 672 EXPECT_TRUE(handler_.get()); |
631 | 673 |
632 backend_impl_->UnregisterHost(1); | 674 backend_impl_->UnregisterHost(1); |
633 host_ = NULL; | 675 host_ = NULL; |
634 | 676 |
635 EXPECT_FALSE(handler_->MaybeLoadResource(request_.get())); | 677 EXPECT_FALSE(handler_->MaybeLoadResource( |
| 678 request_.get(), empty_context_.network_delegate())); |
636 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( | 679 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( |
637 request_.get(), GURL("http://blah/redirect"))); | 680 request_.get(), |
638 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get())); | 681 empty_context_.network_delegate(), |
| 682 GURL("http://blah/redirect"))); |
| 683 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( |
| 684 request_.get(), empty_context_.network_delegate())); |
639 | 685 |
640 TestFinished(); | 686 TestFinished(); |
641 } | 687 } |
642 | 688 |
643 // DestroyedHostWithWaitingJob ----------------------------- | 689 // DestroyedHostWithWaitingJob ----------------------------- |
644 | 690 |
645 void DestroyedHostWithWaitingJob() { | 691 void DestroyedHostWithWaitingJob() { |
646 // Precondition, the host is waiting on cache selection. | 692 // Precondition, the host is waiting on cache selection. |
647 host_->pending_selected_cache_id_ = 1; | 693 host_->pending_selected_cache_id_ = 1; |
648 | 694 |
649 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); | 695 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); |
650 handler_.reset(host_->CreateRequestHandler(request_.get(), | 696 handler_.reset(host_->CreateRequestHandler(request_.get(), |
651 ResourceType::SUB_RESOURCE)); | 697 ResourceType::SUB_RESOURCE)); |
652 EXPECT_TRUE(handler_.get()); | 698 EXPECT_TRUE(handler_.get()); |
653 | 699 |
654 job_ = handler_->MaybeLoadResource(request_.get()); | 700 job_ = handler_->MaybeLoadResource( |
| 701 request_.get(), empty_context_.network_delegate()); |
655 EXPECT_TRUE(job_.get()); | 702 EXPECT_TRUE(job_.get()); |
656 EXPECT_TRUE(job_->is_waiting()); | 703 EXPECT_TRUE(job_->is_waiting()); |
657 | 704 |
658 backend_impl_->UnregisterHost(1); | 705 backend_impl_->UnregisterHost(1); |
659 host_ = NULL; | 706 host_ = NULL; |
660 EXPECT_TRUE(job_->has_been_killed()); | 707 EXPECT_TRUE(job_->has_been_killed()); |
661 | 708 |
662 EXPECT_FALSE(handler_->MaybeLoadResource(request_.get())); | 709 EXPECT_FALSE(handler_->MaybeLoadResource( |
| 710 request_.get(), empty_context_.network_delegate())); |
663 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( | 711 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( |
664 request_.get(), GURL("http://blah/redirect"))); | 712 request_.get(), |
665 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get())); | 713 empty_context_.network_delegate(), |
| 714 GURL("http://blah/redirect"))); |
| 715 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( |
| 716 request_.get(), empty_context_.network_delegate())); |
666 | 717 |
667 TestFinished(); | 718 TestFinished(); |
668 } | 719 } |
669 | 720 |
670 // UnsupportedScheme ----------------------------- | 721 // UnsupportedScheme ----------------------------- |
671 | 722 |
672 void UnsupportedScheme() { | 723 void UnsupportedScheme() { |
673 // Precondition, the host is waiting on cache selection. | 724 // Precondition, the host is waiting on cache selection. |
674 host_->pending_selected_cache_id_ = 1; | 725 host_->pending_selected_cache_id_ = 1; |
675 | 726 |
676 request_.reset(new MockURLRequest(GURL("ftp://blah/"), &empty_context_)); | 727 request_.reset(new MockURLRequest(GURL("ftp://blah/"), &empty_context_)); |
677 handler_.reset(host_->CreateRequestHandler(request_.get(), | 728 handler_.reset(host_->CreateRequestHandler(request_.get(), |
678 ResourceType::SUB_RESOURCE)); | 729 ResourceType::SUB_RESOURCE)); |
679 EXPECT_TRUE(handler_.get()); // we could redirect to http (conceivably) | 730 EXPECT_TRUE(handler_.get()); // we could redirect to http (conceivably) |
680 | 731 |
681 EXPECT_FALSE(handler_->MaybeLoadResource(request_.get())); | 732 EXPECT_FALSE(handler_->MaybeLoadResource( |
| 733 request_.get(), empty_context_.network_delegate())); |
682 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( | 734 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( |
683 request_.get(), GURL("ftp://blah/redirect"))); | 735 request_.get(), |
684 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get())); | 736 empty_context_.network_delegate(), |
| 737 GURL("ftp://blah/redirect"))); |
| 738 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( |
| 739 request_.get(), empty_context_.network_delegate())); |
685 | 740 |
686 TestFinished(); | 741 TestFinished(); |
687 } | 742 } |
688 | 743 |
689 // CanceledRequest ----------------------------- | 744 // CanceledRequest ----------------------------- |
690 | 745 |
691 void CanceledRequest() { | 746 void CanceledRequest() { |
692 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); | 747 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); |
693 handler_.reset(host_->CreateRequestHandler(request_.get(), | 748 handler_.reset(host_->CreateRequestHandler(request_.get(), |
694 ResourceType::MAIN_FRAME)); | 749 ResourceType::MAIN_FRAME)); |
695 EXPECT_TRUE(handler_.get()); | 750 EXPECT_TRUE(handler_.get()); |
696 | 751 |
697 job_ = handler_->MaybeLoadResource(request_.get()); | 752 job_ = handler_->MaybeLoadResource(request_.get(), |
| 753 empty_context_.network_delegate()); |
698 EXPECT_TRUE(job_.get()); | 754 EXPECT_TRUE(job_.get()); |
699 EXPECT_TRUE(job_->is_waiting()); | 755 EXPECT_TRUE(job_->is_waiting()); |
700 EXPECT_FALSE(job_->has_been_started()); | 756 EXPECT_FALSE(job_->has_been_started()); |
701 | 757 |
702 mock_factory_job_ = job_.get(); | 758 mock_factory_job_ = job_.get(); |
703 request_->Start(); | 759 request_->Start(); |
704 EXPECT_TRUE(job_->has_been_started()); | 760 EXPECT_TRUE(job_->has_been_started()); |
705 | 761 |
706 request_->Cancel(); | 762 request_->Cancel(); |
707 EXPECT_TRUE(job_->has_been_killed()); | 763 EXPECT_TRUE(job_->has_been_killed()); |
708 | 764 |
709 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get())); | 765 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( |
| 766 request_.get(), empty_context_.network_delegate())); |
710 | 767 |
711 TestFinished(); | 768 TestFinished(); |
712 } | 769 } |
713 | 770 |
714 // WorkerRequest ----------------------------- | 771 // WorkerRequest ----------------------------- |
715 | 772 |
716 void WorkerRequest() { | 773 void WorkerRequest() { |
717 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( | 774 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( |
718 ResourceType::MAIN_FRAME)); | 775 ResourceType::MAIN_FRAME)); |
719 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( | 776 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
764 handler_.reset(host_->CreateRequestHandler(request_.get(), | 821 handler_.reset(host_->CreateRequestHandler(request_.get(), |
765 ResourceType::MAIN_FRAME)); | 822 ResourceType::MAIN_FRAME)); |
766 EXPECT_TRUE(handler_.get()); | 823 EXPECT_TRUE(handler_.get()); |
767 | 824 |
768 mock_policy_->can_load_return_value_ = false; | 825 mock_policy_->can_load_return_value_ = false; |
769 mock_storage()->SimulateFindMainResource( | 826 mock_storage()->SimulateFindMainResource( |
770 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), | 827 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), |
771 GURL(), AppCacheEntry(), | 828 GURL(), AppCacheEntry(), |
772 1, 2, GURL("http://blah/manifest/")); | 829 1, 2, GURL("http://blah/manifest/")); |
773 | 830 |
774 job_ = handler_->MaybeLoadResource(request_.get()); | 831 job_ = handler_->MaybeLoadResource(request_.get(), |
| 832 empty_context_.network_delegate()); |
775 EXPECT_TRUE(job_.get()); | 833 EXPECT_TRUE(job_.get()); |
776 EXPECT_TRUE(job_->is_waiting()); | 834 EXPECT_TRUE(job_->is_waiting()); |
777 | 835 |
778 // We have to wait for completion of storage->FindResponseForMainRequest. | 836 // We have to wait for completion of storage->FindResponseForMainRequest. |
779 ScheduleNextTask(); | 837 ScheduleNextTask(); |
780 } | 838 } |
781 | 839 |
782 void Verify_MainResource_Blocked() { | 840 void Verify_MainResource_Blocked() { |
783 EXPECT_FALSE(job_->is_waiting()); | 841 EXPECT_FALSE(job_->is_waiting()); |
784 EXPECT_FALSE(job_->is_delivering_appcache_response()); | 842 EXPECT_FALSE(job_->is_delivering_appcache_response()); |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
901 | 959 |
902 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) { | 960 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) { |
903 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest); | 961 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest); |
904 } | 962 } |
905 | 963 |
906 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) { | 964 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) { |
907 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked); | 965 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked); |
908 } | 966 } |
909 | 967 |
910 } // namespace appcache | 968 } // namespace appcache |
OLD | NEW |