Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(210)

Side by Side Diff: content/browser/appcache/appcache_request_handler_unittest.cc

Issue 2865613002: Add an abstraction for a job in the AppCacheRequestHandler class. (Closed)
Patch Set: Fix compile failures Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "content/browser/appcache/appcache_request_handler.h" 5 #include "content/browser/appcache/appcache_request_handler.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <stack> 9 #include <stack>
10 #include <string> 10 #include <string>
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Miss, 270 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Miss,
271 base::Unretained(this))); 271 base::Unretained(this)));
272 272
273 request_ = empty_context_->CreateRequest(GURL("http://blah/"), 273 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
274 net::DEFAULT_PRIORITY, &delegate_); 274 net::DEFAULT_PRIORITY, &delegate_);
275 handler_ = 275 handler_ =
276 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()), 276 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()),
277 RESOURCE_TYPE_MAIN_FRAME, false); 277 RESOURCE_TYPE_MAIN_FRAME, false);
278 EXPECT_TRUE(handler_.get()); 278 EXPECT_TRUE(handler_.get());
279 279
280 job_.reset( 280 job_.reset(static_cast<AppCacheURLRequestJob*>(
281 handler_->MaybeLoadResource(request_->context()->network_delegate())); 281 handler_->MaybeLoadResource(request_->context()->network_delegate())
282 ->AsURLRequestJob()));
282 EXPECT_TRUE(job_.get()); 283 EXPECT_TRUE(job_.get());
283 EXPECT_TRUE(job_->is_waiting()); 284 EXPECT_TRUE(job_->IsWaiting());
284 285
285 // We have to wait for completion of storage->FindResponseForMainRequest. 286 // We have to wait for completion of storage->FindResponseForMainRequest.
286 ScheduleNextTask(); 287 ScheduleNextTask();
287 } 288 }
288 289
289 void Verify_MainResource_Miss() { 290 void Verify_MainResource_Miss() {
290 EXPECT_FALSE(job_->is_waiting()); 291 EXPECT_FALSE(job_->IsWaiting());
291 EXPECT_TRUE(job_->is_delivering_network_response()); 292 EXPECT_TRUE(job_->IsDeliveringNetworkResponse());
292 293
293 int64_t cache_id = kAppCacheNoCacheId; 294 int64_t cache_id = kAppCacheNoCacheId;
294 GURL manifest_url; 295 GURL manifest_url;
295 handler_->GetExtraResponseInfo(&cache_id, &manifest_url); 296 handler_->GetExtraResponseInfo(&cache_id, &manifest_url);
296 EXPECT_EQ(kAppCacheNoCacheId, cache_id); 297 EXPECT_EQ(kAppCacheNoCacheId, cache_id);
297 EXPECT_EQ(GURL(), manifest_url); 298 EXPECT_EQ(GURL(), manifest_url);
298 EXPECT_EQ(0, handler_->found_group_id_); 299 EXPECT_EQ(0, handler_->found_group_id_);
299 300
300 std::unique_ptr<AppCacheURLRequestJob> fallback_job( 301 std::unique_ptr<AppCacheURLRequestJob> fallback_job(
301 handler_->MaybeLoadFallbackForRedirect( 302 static_cast<AppCacheURLRequestJob*>(
302 request_->context()->network_delegate(), 303 handler_->MaybeLoadFallbackForRedirect(
303 GURL("http://blah/redirect"))); 304 request_->context()->network_delegate(),
305 GURL("http://blah/redirect"))));
304 EXPECT_FALSE(fallback_job); 306 EXPECT_FALSE(fallback_job);
305 fallback_job.reset(handler_->MaybeLoadFallbackForResponse( 307 fallback_job.reset(static_cast<AppCacheURLRequestJob*>(
306 request_->context()->network_delegate())); 308 handler_->MaybeLoadFallbackForResponse(
309 request_->context()->network_delegate())));
307 EXPECT_FALSE(fallback_job); 310 EXPECT_FALSE(fallback_job);
308 311
309 EXPECT_TRUE(host_->preferred_manifest_url().is_empty()); 312 EXPECT_TRUE(host_->preferred_manifest_url().is_empty());
310 313
311 TestFinished(); 314 TestFinished();
312 } 315 }
313 316
314 // MainResource_Hit -------------------------------------------------- 317 // MainResource_Hit --------------------------------------------------
315 318
316 void MainResource_Hit() { 319 void MainResource_Hit() {
317 PushNextTask( 320 PushNextTask(
318 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Hit, 321 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Hit,
319 base::Unretained(this))); 322 base::Unretained(this)));
320 323
321 request_ = empty_context_->CreateRequest(GURL("http://blah/"), 324 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
322 net::DEFAULT_PRIORITY, &delegate_); 325 net::DEFAULT_PRIORITY, &delegate_);
323 handler_ = 326 handler_ =
324 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()), 327 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()),
325 RESOURCE_TYPE_MAIN_FRAME, false); 328 RESOURCE_TYPE_MAIN_FRAME, false);
326 EXPECT_TRUE(handler_.get()); 329 EXPECT_TRUE(handler_.get());
327 330
328 mock_storage()->SimulateFindMainResource( 331 mock_storage()->SimulateFindMainResource(
329 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 332 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
330 GURL(), AppCacheEntry(), 333 GURL(), AppCacheEntry(),
331 1, 2, GURL("http://blah/manifest/")); 334 1, 2, GURL("http://blah/manifest/"));
332 335
333 job_.reset( 336 job_.reset(static_cast<AppCacheURLRequestJob*>(
334 handler_->MaybeLoadResource(request_->context()->network_delegate())); 337 handler_->MaybeLoadResource(request_->context()->network_delegate())));
335 EXPECT_TRUE(job_.get()); 338 EXPECT_TRUE(job_.get());
336 EXPECT_TRUE(job_->is_waiting()); 339 EXPECT_TRUE(job_->IsWaiting());
337 340
338 // We have to wait for completion of storage->FindResponseForMainRequest. 341 // We have to wait for completion of storage->FindResponseForMainRequest.
339 ScheduleNextTask(); 342 ScheduleNextTask();
340 } 343 }
341 344
342 void Verify_MainResource_Hit() { 345 void Verify_MainResource_Hit() {
343 EXPECT_FALSE(job_->is_waiting()); 346 EXPECT_FALSE(job_->IsWaiting());
344 EXPECT_TRUE(job_->is_delivering_appcache_response()); 347 EXPECT_TRUE(job_->IsDeliveringAppCacheResponse());
345 348
346 int64_t cache_id = kAppCacheNoCacheId; 349 int64_t cache_id = kAppCacheNoCacheId;
347 GURL manifest_url; 350 GURL manifest_url;
348 handler_->GetExtraResponseInfo(&cache_id, &manifest_url); 351 handler_->GetExtraResponseInfo(&cache_id, &manifest_url);
349 EXPECT_EQ(1, cache_id); 352 EXPECT_EQ(1, cache_id);
350 EXPECT_EQ(GURL("http://blah/manifest/"), manifest_url); 353 EXPECT_EQ(GURL("http://blah/manifest/"), manifest_url);
351 EXPECT_EQ(2, handler_->found_group_id_); 354 EXPECT_EQ(2, handler_->found_group_id_);
352 355
353 std::unique_ptr<AppCacheURLRequestJob> fallback_job( 356 std::unique_ptr<AppCacheURLRequestJob> fallback_job(
354 handler_->MaybeLoadFallbackForResponse( 357 static_cast<AppCacheURLRequestJob*>(
355 request_->context()->network_delegate())); 358 handler_->MaybeLoadFallbackForResponse(
359 request_->context()->network_delegate())));
356 EXPECT_FALSE(fallback_job); 360 EXPECT_FALSE(fallback_job);
357 361
358 EXPECT_EQ(GURL("http://blah/manifest/"), 362 EXPECT_EQ(GURL("http://blah/manifest/"),
359 host_->preferred_manifest_url()); 363 host_->preferred_manifest_url());
360 364
361 TestFinished(); 365 TestFinished();
362 } 366 }
363 367
364 // MainResource_Fallback -------------------------------------------------- 368 // MainResource_Fallback --------------------------------------------------
365 369
366 void MainResource_Fallback() { 370 void MainResource_Fallback() {
367 PushNextTask( 371 PushNextTask(
368 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Fallback, 372 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Fallback,
369 base::Unretained(this))); 373 base::Unretained(this)));
370 374
371 request_ = empty_context_->CreateRequest(GURL("http://blah/"), 375 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
372 net::DEFAULT_PRIORITY, &delegate_); 376 net::DEFAULT_PRIORITY, &delegate_);
373 handler_ = 377 handler_ =
374 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()), 378 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()),
375 RESOURCE_TYPE_MAIN_FRAME, false); 379 RESOURCE_TYPE_MAIN_FRAME, false);
376 EXPECT_TRUE(handler_.get()); 380 EXPECT_TRUE(handler_.get());
377 381
378 mock_storage()->SimulateFindMainResource( 382 mock_storage()->SimulateFindMainResource(
379 AppCacheEntry(), 383 AppCacheEntry(),
380 GURL("http://blah/fallbackurl"), 384 GURL("http://blah/fallbackurl"),
381 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 385 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
382 1, 2, GURL("http://blah/manifest/")); 386 1, 2, GURL("http://blah/manifest/"));
383 387
384 job_.reset( 388 job_.reset(static_cast<AppCacheURLRequestJob*>(
385 handler_->MaybeLoadResource(request_->context()->network_delegate())); 389 handler_->MaybeLoadResource(request_->context()->network_delegate())));
386 EXPECT_TRUE(job_.get()); 390 EXPECT_TRUE(job_.get());
387 EXPECT_TRUE(job_->is_waiting()); 391 EXPECT_TRUE(job_->IsWaiting());
388 392
389 // We have to wait for completion of storage->FindResponseForMainRequest. 393 // We have to wait for completion of storage->FindResponseForMainRequest.
390 ScheduleNextTask(); 394 ScheduleNextTask();
391 } 395 }
392 396
393 void SimulateResponseCode(int response_code) { 397 void SimulateResponseCode(int response_code) {
394 net::HttpResponseInfo info; 398 net::HttpResponseInfo info;
395 std::string headers = 399 std::string headers =
396 base::StringPrintf("HTTP/1.1 %i Muffin\r\n\r\n", response_code); 400 base::StringPrintf("HTTP/1.1 %i Muffin\r\n\r\n", response_code);
397 info.headers = new net::HttpResponseHeaders( 401 info.headers = new net::HttpResponseHeaders(
398 net::HttpUtil::AssembleRawHeaders(headers.c_str(), headers.length())); 402 net::HttpUtil::AssembleRawHeaders(headers.c_str(), headers.length()));
399 403
400 job_factory_->SetJob(base::MakeUnique<MockURLRequestJob>( 404 job_factory_->SetJob(base::MakeUnique<MockURLRequestJob>(
401 request_.get(), request_->context()->network_delegate(), info)); 405 request_.get(), request_->context()->network_delegate(), info));
402 request_->Start(); 406 request_->Start();
403 // All our simulation needs to satisfy are the following two DCHECKs. 407 // All our simulation needs to satisfy are the following two DCHECKs.
404 DCHECK_EQ(net::OK, delegate_.request_status()); 408 DCHECK_EQ(net::OK, delegate_.request_status());
405 DCHECK_EQ(response_code, request_->GetResponseCode()); 409 DCHECK_EQ(response_code, request_->GetResponseCode());
406 } 410 }
407 411
408 void SimulateResponseInfo(const net::HttpResponseInfo& info) { 412 void SimulateResponseInfo(const net::HttpResponseInfo& info) {
409 job_factory_->SetJob(base::MakeUnique<MockURLRequestJob>( 413 job_factory_->SetJob(base::MakeUnique<MockURLRequestJob>(
410 request_.get(), request_->context()->network_delegate(), info)); 414 request_.get(), request_->context()->network_delegate(), info));
411 request_->Start(); 415 request_->Start();
412 } 416 }
413 417
414 void Verify_MainResource_Fallback() { 418 void Verify_MainResource_Fallback() {
415 EXPECT_FALSE(job_->is_waiting()); 419 EXPECT_FALSE(job_->IsWaiting());
416 EXPECT_TRUE(job_->is_delivering_network_response()); 420 EXPECT_TRUE(job_->IsDeliveringNetworkResponse());
417 421
418 // The handler expects to the job to tell it that the request is going to 422 // The handler expects to the job to tell it that the request is going to
419 // be restarted before it sees the next request. 423 // be restarted before it sees the next request.
420 handler_->OnPrepareToRestart(); 424 handler_->OnPrepareToRestart();
421 425
422 // When the request is restarted, the existing job is dropped so a 426 // When the request is restarted, the existing job is dropped so a
423 // real network job gets created. We expect NULL here which will cause 427 // real network job gets created. We expect NULL here which will cause
424 // the net library to create a real job. 428 // the net library to create a real job.
425 job_.reset( 429 job_.reset(static_cast<AppCacheURLRequestJob*>(
426 handler_->MaybeLoadResource(request_->context()->network_delegate())); 430 handler_->MaybeLoadResource(request_->context()->network_delegate())));
427 EXPECT_FALSE(job_.get()); 431 EXPECT_FALSE(job_.get());
428 432
429 // Simulate an http error of the real network job. 433 // Simulate an http error of the real network job.
430 SimulateResponseCode(500); 434 SimulateResponseCode(500);
431 435
432 job_.reset(handler_->MaybeLoadFallbackForResponse( 436 job_.reset(static_cast<AppCacheURLRequestJob*>(
433 request_->context()->network_delegate())); 437 handler_->MaybeLoadFallbackForResponse(
438 request_->context()->network_delegate())));
434 EXPECT_TRUE(job_.get()); 439 EXPECT_TRUE(job_.get());
435 EXPECT_TRUE(job_->is_delivering_appcache_response()); 440 EXPECT_TRUE(job_->IsDeliveringAppCacheResponse());
436 441
437 int64_t cache_id = kAppCacheNoCacheId; 442 int64_t cache_id = kAppCacheNoCacheId;
438 GURL manifest_url; 443 GURL manifest_url;
439 handler_->GetExtraResponseInfo(&cache_id, &manifest_url); 444 handler_->GetExtraResponseInfo(&cache_id, &manifest_url);
440 EXPECT_EQ(1, cache_id); 445 EXPECT_EQ(1, cache_id);
441 EXPECT_EQ(GURL("http://blah/manifest/"), manifest_url); 446 EXPECT_EQ(GURL("http://blah/manifest/"), manifest_url);
442 EXPECT_TRUE(host_->main_resource_was_namespace_entry_); 447 EXPECT_TRUE(host_->main_resource_was_namespace_entry_);
443 EXPECT_EQ(GURL("http://blah/fallbackurl"), host_->namespace_entry_url_); 448 EXPECT_EQ(GURL("http://blah/fallbackurl"), host_->namespace_entry_url_);
444 449
445 EXPECT_EQ(GURL("http://blah/manifest/"), 450 EXPECT_EQ(GURL("http://blah/manifest/"),
(...skipping 16 matching lines...) Expand all
462 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()), 467 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()),
463 RESOURCE_TYPE_MAIN_FRAME, false); 468 RESOURCE_TYPE_MAIN_FRAME, false);
464 EXPECT_TRUE(handler_.get()); 469 EXPECT_TRUE(handler_.get());
465 470
466 mock_storage()->SimulateFindMainResource( 471 mock_storage()->SimulateFindMainResource(
467 AppCacheEntry(), 472 AppCacheEntry(),
468 GURL("http://blah/fallbackurl"), 473 GURL("http://blah/fallbackurl"),
469 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 474 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
470 1, 2, GURL("http://blah/manifest/")); 475 1, 2, GURL("http://blah/manifest/"));
471 476
472 job_.reset( 477 job_.reset(static_cast<AppCacheURLRequestJob*>(
473 handler_->MaybeLoadResource(request_->context()->network_delegate())); 478 handler_->MaybeLoadResource(request_->context()->network_delegate())));
474 EXPECT_TRUE(job_.get()); 479 EXPECT_TRUE(job_.get());
475 EXPECT_TRUE(job_->is_waiting()); 480 EXPECT_TRUE(job_->IsWaiting());
476 481
477 // We have to wait for completion of storage->FindResponseForMainRequest. 482 // We have to wait for completion of storage->FindResponseForMainRequest.
478 ScheduleNextTask(); 483 ScheduleNextTask();
479 } 484 }
480 485
481 void Verify_MainResource_FallbackOverride() { 486 void Verify_MainResource_FallbackOverride() {
482 EXPECT_FALSE(job_->is_waiting()); 487 EXPECT_FALSE(job_->IsWaiting());
483 EXPECT_TRUE(job_->is_delivering_network_response()); 488 EXPECT_TRUE(job_->IsDeliveringNetworkResponse());
484 489
485 // The handler expects to the job to tell it that the request is going to 490 // The handler expects to the job to tell it that the request is going to
486 // be restarted before it sees the next request. 491 // be restarted before it sees the next request.
487 handler_->OnPrepareToRestart(); 492 handler_->OnPrepareToRestart();
488 493
489 // When the request is restarted, the existing job is dropped so a 494 // When the request is restarted, the existing job is dropped so a
490 // real network job gets created. We expect NULL here which will cause 495 // real network job gets created. We expect NULL here which will cause
491 // the net library to create a real job. 496 // the net library to create a real job.
492 job_.reset( 497 job_.reset(static_cast<AppCacheURLRequestJob*>(
493 handler_->MaybeLoadResource(request_->context()->network_delegate())); 498 handler_->MaybeLoadResource(request_->context()->network_delegate())));
494 EXPECT_FALSE(job_.get()); 499 EXPECT_FALSE(job_.get());
495 500
496 // Simulate an http error of the real network job, but with custom 501 // Simulate an http error of the real network job, but with custom
497 // headers that override the fallback behavior. 502 // headers that override the fallback behavior.
498 const char kOverrideHeaders[] = 503 const char kOverrideHeaders[] =
499 "HTTP/1.1 404 BOO HOO\0" 504 "HTTP/1.1 404 BOO HOO\0"
500 "x-chromium-appcache-fallback-override: disallow-fallback\0" 505 "x-chromium-appcache-fallback-override: disallow-fallback\0"
501 "\0"; 506 "\0";
502 net::HttpResponseInfo info; 507 net::HttpResponseInfo info;
503 info.headers = new net::HttpResponseHeaders( 508 info.headers = new net::HttpResponseHeaders(
504 std::string(kOverrideHeaders, arraysize(kOverrideHeaders))); 509 std::string(kOverrideHeaders, arraysize(kOverrideHeaders)));
505 SimulateResponseInfo(info); 510 SimulateResponseInfo(info);
506 511
507 job_.reset(handler_->MaybeLoadFallbackForResponse( 512 job_.reset(static_cast<AppCacheURLRequestJob*>(
508 request_->context()->network_delegate())); 513 handler_->MaybeLoadFallbackForResponse(
514 request_->context()->network_delegate())));
509 EXPECT_FALSE(job_.get()); 515 EXPECT_FALSE(job_.get());
510 516
511 // GetExtraResponseInfo should return no information. 517 // GetExtraResponseInfo should return no information.
512 int64_t cache_id = kAppCacheNoCacheId; 518 int64_t cache_id = kAppCacheNoCacheId;
513 GURL manifest_url; 519 GURL manifest_url;
514 handler_->GetExtraResponseInfo(&cache_id, &manifest_url); 520 handler_->GetExtraResponseInfo(&cache_id, &manifest_url);
515 EXPECT_EQ(kAppCacheNoCacheId, cache_id); 521 EXPECT_EQ(kAppCacheNoCacheId, cache_id);
516 EXPECT_TRUE(manifest_url.is_empty()); 522 EXPECT_TRUE(manifest_url.is_empty());
517 523
518 TestFinished(); 524 TestFinished();
(...skipping 22 matching lines...) Expand all
541 // in a network or fallback namespace, should result in a failed request. 547 // in a network or fallback namespace, should result in a failed request.
542 host_->AssociateCompleteCache(MakeNewCache()); 548 host_->AssociateCompleteCache(MakeNewCache());
543 549
544 request_ = empty_context_->CreateRequest(GURL("http://blah/"), 550 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
545 net::DEFAULT_PRIORITY, &delegate_); 551 net::DEFAULT_PRIORITY, &delegate_);
546 handler_ = 552 handler_ =
547 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()), 553 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()),
548 RESOURCE_TYPE_SUB_RESOURCE, false); 554 RESOURCE_TYPE_SUB_RESOURCE, false);
549 EXPECT_TRUE(handler_.get()); 555 EXPECT_TRUE(handler_.get());
550 556
551 job_.reset( 557 job_.reset(static_cast<AppCacheURLRequestJob*>(
552 handler_->MaybeLoadResource(request_->context()->network_delegate())); 558 handler_->MaybeLoadResource(request_->context()->network_delegate())));
553 EXPECT_TRUE(job_.get()); 559 EXPECT_TRUE(job_.get());
554 EXPECT_TRUE(job_->is_delivering_error_response()); 560 EXPECT_TRUE(job_->IsDeliveringErrorResponse());
555 561
556 std::unique_ptr<AppCacheURLRequestJob> fallback_job( 562 std::unique_ptr<AppCacheURLRequestJob> fallback_job(
557 handler_->MaybeLoadFallbackForRedirect( 563 static_cast<AppCacheURLRequestJob*>(
558 request_->context()->network_delegate(), 564 handler_->MaybeLoadFallbackForRedirect(
559 GURL("http://blah/redirect"))); 565 request_->context()->network_delegate(),
566 GURL("http://blah/redirect"))));
560 EXPECT_FALSE(fallback_job); 567 EXPECT_FALSE(fallback_job);
561 fallback_job.reset(handler_->MaybeLoadFallbackForResponse( 568 fallback_job.reset(static_cast<AppCacheURLRequestJob*>(
562 request_->context()->network_delegate())); 569 handler_->MaybeLoadFallbackForResponse(
570 request_->context()->network_delegate())));
563 EXPECT_FALSE(fallback_job); 571 EXPECT_FALSE(fallback_job);
564 572
565 TestFinished(); 573 TestFinished();
566 } 574 }
567 575
568 // SubResource_Miss_WithWaitForCacheSelection ----------------------------- 576 // SubResource_Miss_WithWaitForCacheSelection -----------------------------
569 577
570 void SubResource_Miss_WithWaitForCacheSelection() { 578 void SubResource_Miss_WithWaitForCacheSelection() {
571 // Precondition, the host is waiting on cache selection. 579 // Precondition, the host is waiting on cache selection.
572 scoped_refptr<AppCache> cache(MakeNewCache()); 580 scoped_refptr<AppCache> cache(MakeNewCache());
573 host_->pending_selected_cache_id_ = cache->cache_id(); 581 host_->pending_selected_cache_id_ = cache->cache_id();
574 host_->set_preferred_manifest_url(cache->owning_group()->manifest_url()); 582 host_->set_preferred_manifest_url(cache->owning_group()->manifest_url());
575 583
576 request_ = empty_context_->CreateRequest(GURL("http://blah/"), 584 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
577 net::DEFAULT_PRIORITY, &delegate_); 585 net::DEFAULT_PRIORITY, &delegate_);
578 handler_ = 586 handler_ =
579 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()), 587 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()),
580 RESOURCE_TYPE_SUB_RESOURCE, false); 588 RESOURCE_TYPE_SUB_RESOURCE, false);
581 EXPECT_TRUE(handler_.get()); 589 EXPECT_TRUE(handler_.get());
582 job_.reset( 590 job_.reset(static_cast<AppCacheURLRequestJob*>(
583 handler_->MaybeLoadResource(request_->context()->network_delegate())); 591 handler_->MaybeLoadResource(request_->context()->network_delegate())));
584 EXPECT_TRUE(job_.get()); 592 EXPECT_TRUE(job_.get());
585 EXPECT_TRUE(job_->is_waiting()); 593 EXPECT_TRUE(job_->IsWaiting());
586 594
587 host_->FinishCacheSelection(cache.get(), NULL); 595 host_->FinishCacheSelection(cache.get(), NULL);
588 EXPECT_FALSE(job_->is_waiting()); 596 EXPECT_FALSE(job_->IsWaiting());
589 EXPECT_TRUE(job_->is_delivering_error_response()); 597 EXPECT_TRUE(job_->IsDeliveringErrorResponse());
590 598
591 std::unique_ptr<AppCacheURLRequestJob> fallback_job( 599 std::unique_ptr<AppCacheURLRequestJob> fallback_job(
592 handler_->MaybeLoadFallbackForRedirect( 600 static_cast<AppCacheURLRequestJob*>(
593 request_->context()->network_delegate(), 601 handler_->MaybeLoadFallbackForRedirect(
594 GURL("http://blah/redirect"))); 602 request_->context()->network_delegate(),
603 GURL("http://blah/redirect"))));
595 EXPECT_FALSE(fallback_job); 604 EXPECT_FALSE(fallback_job);
596 fallback_job.reset(handler_->MaybeLoadFallbackForResponse( 605 fallback_job.reset(static_cast<AppCacheURLRequestJob*>(
597 request_->context()->network_delegate())); 606 handler_->MaybeLoadFallbackForResponse(
607 request_->context()->network_delegate())));
598 EXPECT_FALSE(fallback_job); 608 EXPECT_FALSE(fallback_job);
599 609
600 TestFinished(); 610 TestFinished();
601 } 611 }
602 612
603 // SubResource_Hit ----------------------------- 613 // SubResource_Hit -----------------------------
604 614
605 void SubResource_Hit() { 615 void SubResource_Hit() {
606 host_->AssociateCompleteCache(MakeNewCache()); 616 host_->AssociateCompleteCache(MakeNewCache());
607 617
608 mock_storage()->SimulateFindSubResource( 618 mock_storage()->SimulateFindSubResource(
609 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); 619 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false);
610 620
611 request_ = empty_context_->CreateRequest(GURL("http://blah/"), 621 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
612 net::DEFAULT_PRIORITY, &delegate_); 622 net::DEFAULT_PRIORITY, &delegate_);
613 handler_ = 623 handler_ =
614 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()), 624 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()),
615 RESOURCE_TYPE_SUB_RESOURCE, false); 625 RESOURCE_TYPE_SUB_RESOURCE, false);
616 EXPECT_TRUE(handler_.get()); 626 EXPECT_TRUE(handler_.get());
617 job_.reset( 627 job_.reset(static_cast<AppCacheURLRequestJob*>(
618 handler_->MaybeLoadResource(request_->context()->network_delegate())); 628 handler_->MaybeLoadResource(request_->context()->network_delegate())));
619 EXPECT_TRUE(job_.get()); 629 EXPECT_TRUE(job_.get());
620 EXPECT_TRUE(job_->is_delivering_appcache_response()); 630 EXPECT_TRUE(job_->IsDeliveringAppCacheResponse());
621 631
622 std::unique_ptr<AppCacheURLRequestJob> fallback_job( 632 std::unique_ptr<AppCacheURLRequestJob> fallback_job(
623 handler_->MaybeLoadFallbackForRedirect( 633 static_cast<AppCacheURLRequestJob*>(
624 request_->context()->network_delegate(), 634 handler_->MaybeLoadFallbackForRedirect(
625 GURL("http://blah/redirect"))); 635 request_->context()->network_delegate(),
636 GURL("http://blah/redirect"))));
626 EXPECT_FALSE(fallback_job); 637 EXPECT_FALSE(fallback_job);
627 fallback_job.reset(handler_->MaybeLoadFallbackForResponse( 638 fallback_job.reset(static_cast<AppCacheURLRequestJob*>(
628 request_->context()->network_delegate())); 639 handler_->MaybeLoadFallbackForResponse(
640 request_->context()->network_delegate())));
629 EXPECT_FALSE(fallback_job); 641 EXPECT_FALSE(fallback_job);
630 642
631 TestFinished(); 643 TestFinished();
632 } 644 }
633 645
634 // SubResource_RedirectFallback ----------------------------- 646 // SubResource_RedirectFallback -----------------------------
635 647
636 void SubResource_RedirectFallback() { 648 void SubResource_RedirectFallback() {
637 // Redirects to resources in the a different origin are subject to 649 // Redirects to resources in the a different origin are subject to
638 // fallback namespaces. 650 // fallback namespaces.
639 host_->AssociateCompleteCache(MakeNewCache()); 651 host_->AssociateCompleteCache(MakeNewCache());
640 652
641 mock_storage()->SimulateFindSubResource( 653 mock_storage()->SimulateFindSubResource(
642 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); 654 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false);
643 655
644 request_ = empty_context_->CreateRequest(GURL("http://blah/"), 656 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
645 net::DEFAULT_PRIORITY, &delegate_); 657 net::DEFAULT_PRIORITY, &delegate_);
646 handler_ = 658 handler_ =
647 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()), 659 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()),
648 RESOURCE_TYPE_SUB_RESOURCE, false); 660 RESOURCE_TYPE_SUB_RESOURCE, false);
649 EXPECT_TRUE(handler_.get()); 661 EXPECT_TRUE(handler_.get());
650 job_.reset( 662 job_.reset(static_cast<AppCacheURLRequestJob*>(
651 handler_->MaybeLoadResource(request_->context()->network_delegate())); 663 handler_->MaybeLoadResource(request_->context()->network_delegate())));
652 EXPECT_FALSE(job_.get()); 664 EXPECT_FALSE(job_.get());
653 665
654 job_.reset(handler_->MaybeLoadFallbackForRedirect( 666 job_.reset(static_cast<AppCacheURLRequestJob*>(
655 request_->context()->network_delegate(), 667 handler_->MaybeLoadFallbackForRedirect(
656 GURL("http://not_blah/redirect"))); 668 request_->context()->network_delegate(),
669 GURL("http://not_blah/redirect"))));
657 EXPECT_TRUE(job_.get()); 670 EXPECT_TRUE(job_.get());
658 EXPECT_TRUE(job_->is_delivering_appcache_response()); 671 EXPECT_TRUE(job_->IsDeliveringAppCacheResponse());
659 672
660 std::unique_ptr<AppCacheURLRequestJob> fallback_job( 673 std::unique_ptr<AppCacheURLRequestJob> fallback_job(
661 handler_->MaybeLoadFallbackForResponse( 674 static_cast<AppCacheURLRequestJob*>(
662 request_->context()->network_delegate())); 675 handler_->MaybeLoadFallbackForResponse(
676 request_->context()->network_delegate())));
663 EXPECT_FALSE(fallback_job); 677 EXPECT_FALSE(fallback_job);
664 678
665 TestFinished(); 679 TestFinished();
666 } 680 }
667 681
668 // SubResource_NoRedirectFallback ----------------------------- 682 // SubResource_NoRedirectFallback -----------------------------
669 683
670 void SubResource_NoRedirectFallback() { 684 void SubResource_NoRedirectFallback() {
671 // Redirects to resources in the same-origin are not subject to 685 // Redirects to resources in the same-origin are not subject to
672 // fallback namespaces. 686 // fallback namespaces.
673 host_->AssociateCompleteCache(MakeNewCache()); 687 host_->AssociateCompleteCache(MakeNewCache());
674 688
675 mock_storage()->SimulateFindSubResource( 689 mock_storage()->SimulateFindSubResource(
676 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); 690 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false);
677 691
678 request_ = empty_context_->CreateRequest(GURL("http://blah/"), 692 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
679 net::DEFAULT_PRIORITY, &delegate_); 693 net::DEFAULT_PRIORITY, &delegate_);
680 handler_ = 694 handler_ =
681 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()), 695 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()),
682 RESOURCE_TYPE_SUB_RESOURCE, false); 696 RESOURCE_TYPE_SUB_RESOURCE, false);
683 EXPECT_TRUE(handler_.get()); 697 EXPECT_TRUE(handler_.get());
684 job_.reset( 698 job_.reset(static_cast<AppCacheURLRequestJob*>(
685 handler_->MaybeLoadResource(request_->context()->network_delegate())); 699 handler_->MaybeLoadResource(request_->context()->network_delegate())));
686 EXPECT_FALSE(job_.get()); 700 EXPECT_FALSE(job_.get());
687 701
688 std::unique_ptr<AppCacheURLRequestJob> fallback_job( 702 std::unique_ptr<AppCacheURLRequestJob> fallback_job(
689 handler_->MaybeLoadFallbackForRedirect( 703 static_cast<AppCacheURLRequestJob*>(
690 request_->context()->network_delegate(), 704 handler_->MaybeLoadFallbackForRedirect(
691 GURL("http://blah/redirect"))); 705 request_->context()->network_delegate(),
706 GURL("http://blah/redirect"))));
692 EXPECT_FALSE(fallback_job); 707 EXPECT_FALSE(fallback_job);
693 708
694 SimulateResponseCode(200); 709 SimulateResponseCode(200);
695 fallback_job.reset(handler_->MaybeLoadFallbackForResponse( 710 fallback_job.reset(static_cast<AppCacheURLRequestJob*>(
696 request_->context()->network_delegate())); 711 handler_->MaybeLoadFallbackForResponse(
712 request_->context()->network_delegate())));
697 EXPECT_FALSE(fallback_job); 713 EXPECT_FALSE(fallback_job);
698 714
699 TestFinished(); 715 TestFinished();
700 } 716 }
701 717
702 // SubResource_Network ----------------------------- 718 // SubResource_Network -----------------------------
703 719
704 void SubResource_Network() { 720 void SubResource_Network() {
705 // A sub-resource load where the resource is in a network namespace, 721 // A sub-resource load where the resource is in a network namespace,
706 // should result in the system using a 'real' job to do the network 722 // should result in the system using a 'real' job to do the network
707 // retrieval. 723 // retrieval.
708 host_->AssociateCompleteCache(MakeNewCache()); 724 host_->AssociateCompleteCache(MakeNewCache());
709 725
710 mock_storage()->SimulateFindSubResource( 726 mock_storage()->SimulateFindSubResource(
711 AppCacheEntry(), AppCacheEntry(), true); 727 AppCacheEntry(), AppCacheEntry(), true);
712 728
713 request_ = empty_context_->CreateRequest(GURL("http://blah/"), 729 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
714 net::DEFAULT_PRIORITY, &delegate_); 730 net::DEFAULT_PRIORITY, &delegate_);
715 handler_ = 731 handler_ =
716 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()), 732 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()),
717 RESOURCE_TYPE_SUB_RESOURCE, false); 733 RESOURCE_TYPE_SUB_RESOURCE, false);
718 EXPECT_TRUE(handler_.get()); 734 EXPECT_TRUE(handler_.get());
719 job_.reset( 735 job_.reset(static_cast<AppCacheURLRequestJob*>(
720 handler_->MaybeLoadResource(request_->context()->network_delegate())); 736 handler_->MaybeLoadResource(request_->context()->network_delegate())));
721 EXPECT_FALSE(job_.get()); 737 EXPECT_FALSE(job_.get());
722 738
723 std::unique_ptr<AppCacheURLRequestJob> fallback_job( 739 std::unique_ptr<AppCacheURLRequestJob> fallback_job(
724 handler_->MaybeLoadFallbackForRedirect( 740 static_cast<AppCacheURLRequestJob*>(
725 request_->context()->network_delegate(), 741 handler_->MaybeLoadFallbackForRedirect(
726 GURL("http://blah/redirect"))); 742 request_->context()->network_delegate(),
743 GURL("http://blah/redirect"))));
727 EXPECT_FALSE(fallback_job); 744 EXPECT_FALSE(fallback_job);
728 fallback_job.reset(handler_->MaybeLoadFallbackForResponse( 745 fallback_job.reset(static_cast<AppCacheURLRequestJob*>(
729 request_->context()->network_delegate())); 746 handler_->MaybeLoadFallbackForResponse(
747 request_->context()->network_delegate())));
730 EXPECT_FALSE(fallback_job); 748 EXPECT_FALSE(fallback_job);
731 749
732 TestFinished(); 750 TestFinished();
733 } 751 }
734 752
735 // DestroyedHost ----------------------------- 753 // DestroyedHost -----------------------------
736 754
737 void DestroyedHost() { 755 void DestroyedHost() {
738 host_->AssociateCompleteCache(MakeNewCache()); 756 host_->AssociateCompleteCache(MakeNewCache());
739 757
740 mock_storage()->SimulateFindSubResource( 758 mock_storage()->SimulateFindSubResource(
741 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); 759 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false);
742 760
743 request_ = empty_context_->CreateRequest(GURL("http://blah/"), 761 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
744 net::DEFAULT_PRIORITY, &delegate_); 762 net::DEFAULT_PRIORITY, &delegate_);
745 handler_ = 763 handler_ =
746 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()), 764 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()),
747 RESOURCE_TYPE_SUB_RESOURCE, false); 765 RESOURCE_TYPE_SUB_RESOURCE, false);
748 EXPECT_TRUE(handler_.get()); 766 EXPECT_TRUE(handler_.get());
749 767
750 backend_impl_->UnregisterHost(1); 768 backend_impl_->UnregisterHost(1);
751 host_ = NULL; 769 host_ = NULL;
752 770
753 EXPECT_FALSE( 771 EXPECT_FALSE(static_cast<AppCacheURLRequestJob*>(
754 handler_->MaybeLoadResource(request_->context()->network_delegate())); 772 handler_->MaybeLoadResource(request_->context()->network_delegate())));
755 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( 773 EXPECT_FALSE(static_cast<AppCacheURLRequestJob*>(
756 request_->context()->network_delegate(), 774 handler_->MaybeLoadFallbackForRedirect(
757 GURL("http://blah/redirect"))); 775 request_->context()->network_delegate(),
758 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( 776 GURL("http://blah/redirect"))));
759 request_->context()->network_delegate())); 777 EXPECT_FALSE(static_cast<AppCacheURLRequestJob*>(
778 handler_->MaybeLoadFallbackForResponse(
779 request_->context()->network_delegate())));
760 780
761 TestFinished(); 781 TestFinished();
762 } 782 }
763 783
764 // DestroyedHostWithWaitingJob ----------------------------- 784 // DestroyedHostWithWaitingJob -----------------------------
765 785
766 void DestroyedHostWithWaitingJob() { 786 void DestroyedHostWithWaitingJob() {
767 // Precondition, the host is waiting on cache selection. 787 // Precondition, the host is waiting on cache selection.
768 host_->pending_selected_cache_id_ = 1; 788 host_->pending_selected_cache_id_ = 1;
769 789
770 request_ = empty_context_->CreateRequest(GURL("http://blah/"), 790 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
771 net::DEFAULT_PRIORITY, &delegate_); 791 net::DEFAULT_PRIORITY, &delegate_);
772 handler_ = 792 handler_ =
773 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()), 793 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()),
774 RESOURCE_TYPE_SUB_RESOURCE, false); 794 RESOURCE_TYPE_SUB_RESOURCE, false);
775 EXPECT_TRUE(handler_.get()); 795 EXPECT_TRUE(handler_.get());
776 796
777 job_.reset( 797 job_.reset(static_cast<AppCacheURLRequestJob*>(
778 handler_->MaybeLoadResource(request_->context()->network_delegate())); 798 handler_->MaybeLoadResource(request_->context()->network_delegate())));
779 EXPECT_TRUE(job_.get()); 799 EXPECT_TRUE(job_.get());
780 EXPECT_TRUE(job_->is_waiting()); 800 EXPECT_TRUE(job_->IsWaiting());
781 801
782 backend_impl_->UnregisterHost(1); 802 backend_impl_->UnregisterHost(1);
783 host_ = NULL; 803 host_ = NULL;
784 EXPECT_TRUE(job_->has_been_killed()); 804 EXPECT_TRUE(job_->has_been_killed());
785 805
786 EXPECT_FALSE( 806 EXPECT_FALSE(static_cast<AppCacheURLRequestJob*>(
787 handler_->MaybeLoadResource(request_->context()->network_delegate())); 807 handler_->MaybeLoadResource(request_->context()->network_delegate())));
788 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( 808 EXPECT_FALSE(static_cast<AppCacheURLRequestJob*>(
789 request_->context()->network_delegate(), 809 handler_->MaybeLoadFallbackForRedirect(
790 GURL("http://blah/redirect"))); 810 request_->context()->network_delegate(),
791 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( 811 GURL("http://blah/redirect"))));
792 request_->context()->network_delegate())); 812 EXPECT_FALSE(static_cast<AppCacheURLRequestJob*>(
813 handler_->MaybeLoadFallbackForResponse(
814 request_->context()->network_delegate())));
793 815
794 TestFinished(); 816 TestFinished();
795 } 817 }
796 818
797 // DestroyedService ----------------------------- 819 // DestroyedService -----------------------------
798 820
799 void DestroyedService() { 821 void DestroyedService() {
800 host_->AssociateCompleteCache(MakeNewCache()); 822 host_->AssociateCompleteCache(MakeNewCache());
801 823
802 mock_storage()->SimulateFindSubResource( 824 mock_storage()->SimulateFindSubResource(
803 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); 825 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false);
804 826
805 request_ = empty_context_->CreateRequest(GURL("http://blah/"), 827 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
806 net::DEFAULT_PRIORITY, &delegate_); 828 net::DEFAULT_PRIORITY, &delegate_);
807 handler_ = 829 handler_ =
808 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()), 830 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()),
809 RESOURCE_TYPE_SUB_RESOURCE, false); 831 RESOURCE_TYPE_SUB_RESOURCE, false);
810 EXPECT_TRUE(handler_.get()); 832 EXPECT_TRUE(handler_.get());
811 job_.reset( 833 job_.reset(static_cast<AppCacheURLRequestJob*>(
812 handler_->MaybeLoadResource(request_->context()->network_delegate())); 834 handler_->MaybeLoadResource(request_->context()->network_delegate())));
813 EXPECT_TRUE(job_.get()); 835 EXPECT_TRUE(job_.get());
814 836
815 backend_impl_.reset(); 837 backend_impl_.reset();
816 mock_frontend_.reset(); 838 mock_frontend_.reset();
817 mock_service_.reset(); 839 mock_service_.reset();
818 mock_policy_.reset(); 840 mock_policy_.reset();
819 host_ = NULL; 841 host_ = NULL;
820 842
821 EXPECT_TRUE(job_->has_been_killed()); 843 EXPECT_TRUE(job_->has_been_killed());
822 EXPECT_FALSE( 844 EXPECT_FALSE(static_cast<AppCacheURLRequestJob*>(
823 handler_->MaybeLoadResource(request_->context()->network_delegate())); 845 handler_->MaybeLoadResource(request_->context()->network_delegate())));
824 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( 846 EXPECT_FALSE(static_cast<AppCacheURLRequestJob*>(
825 request_->context()->network_delegate(), 847 handler_->MaybeLoadFallbackForRedirect(
826 GURL("http://blah/redirect"))); 848 request_->context()->network_delegate(),
827 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( 849 GURL("http://blah/redirect"))));
828 request_->context()->network_delegate())); 850 EXPECT_FALSE(static_cast<AppCacheURLRequestJob*>(
851 handler_->MaybeLoadFallbackForResponse(
852 request_->context()->network_delegate())));
829 853
830 TestFinished(); 854 TestFinished();
831 } 855 }
832 856
833 void DestroyedServiceWithCrossSiteNav() { 857 void DestroyedServiceWithCrossSiteNav() {
834 request_ = empty_context_->CreateRequest(GURL("http://blah/"), 858 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
835 net::DEFAULT_PRIORITY, &delegate_); 859 net::DEFAULT_PRIORITY, &delegate_);
836 handler_ = 860 handler_ =
837 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()), 861 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()),
838 RESOURCE_TYPE_MAIN_FRAME, false); 862 RESOURCE_TYPE_MAIN_FRAME, false);
839 EXPECT_TRUE(handler_.get()); 863 EXPECT_TRUE(handler_.get());
840 handler_->PrepareForCrossSiteTransfer(backend_impl_->process_id()); 864 handler_->PrepareForCrossSiteTransfer(backend_impl_->process_id());
841 EXPECT_TRUE(handler_->host_for_cross_site_transfer_.get()); 865 EXPECT_TRUE(handler_->host_for_cross_site_transfer_.get());
842 866
843 backend_impl_.reset(); 867 backend_impl_.reset();
844 mock_frontend_.reset(); 868 mock_frontend_.reset();
845 mock_service_.reset(); 869 mock_service_.reset();
846 mock_policy_.reset(); 870 mock_policy_.reset();
847 host_ = NULL; 871 host_ = NULL;
848 872
849 EXPECT_FALSE(handler_->host_for_cross_site_transfer_.get()); 873 EXPECT_FALSE(handler_->host_for_cross_site_transfer_.get());
850 EXPECT_FALSE( 874 EXPECT_FALSE(static_cast<AppCacheURLRequestJob*>(
851 handler_->MaybeLoadResource(request_->context()->network_delegate())); 875 handler_->MaybeLoadResource(request_->context()->network_delegate())));
852 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( 876 EXPECT_FALSE(static_cast<AppCacheURLRequestJob*>(
853 request_->context()->network_delegate(), 877 handler_->MaybeLoadFallbackForRedirect(
854 GURL("http://blah/redirect"))); 878 request_->context()->network_delegate(),
855 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( 879 GURL("http://blah/redirect"))));
856 request_->context()->network_delegate())); 880 EXPECT_FALSE(static_cast<AppCacheURLRequestJob*>(
881 handler_->MaybeLoadFallbackForResponse(
882 request_->context()->network_delegate())));
857 883
858 TestFinished(); 884 TestFinished();
859 } 885 }
860 886
861 // UnsupportedScheme ----------------------------- 887 // UnsupportedScheme -----------------------------
862 888
863 void UnsupportedScheme() { 889 void UnsupportedScheme() {
864 // Precondition, the host is waiting on cache selection. 890 // Precondition, the host is waiting on cache selection.
865 host_->pending_selected_cache_id_ = 1; 891 host_->pending_selected_cache_id_ = 1;
866 892
867 request_ = empty_context_->CreateRequest(GURL("ftp://blah/"), 893 request_ = empty_context_->CreateRequest(GURL("ftp://blah/"),
868 net::DEFAULT_PRIORITY, &delegate_); 894 net::DEFAULT_PRIORITY, &delegate_);
869 handler_ = 895 handler_ =
870 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()), 896 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()),
871 RESOURCE_TYPE_SUB_RESOURCE, false); 897 RESOURCE_TYPE_SUB_RESOURCE, false);
872 EXPECT_TRUE(handler_.get()); // we could redirect to http (conceivably) 898 EXPECT_TRUE(handler_.get()); // we could redirect to http (conceivably)
873 899
874 EXPECT_FALSE( 900 EXPECT_FALSE(static_cast<AppCacheURLRequestJob*>(
875 handler_->MaybeLoadResource(request_->context()->network_delegate())); 901 handler_->MaybeLoadResource(request_->context()->network_delegate())));
876 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( 902 EXPECT_FALSE(static_cast<AppCacheURLRequestJob*>(
877 request_->context()->network_delegate(), 903 handler_->MaybeLoadFallbackForRedirect(
878 GURL("ftp://blah/redirect"))); 904 request_->context()->network_delegate(),
879 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( 905 GURL("ftp://blah/redirect"))));
880 request_->context()->network_delegate())); 906 EXPECT_FALSE(static_cast<AppCacheURLRequestJob*>(
907 handler_->MaybeLoadFallbackForResponse(
908 request_->context()->network_delegate())));
881 909
882 TestFinished(); 910 TestFinished();
883 } 911 }
884 912
885 // CanceledRequest ----------------------------- 913 // CanceledRequest -----------------------------
886 914
887 void CanceledRequest() { 915 void CanceledRequest() {
888 request_ = empty_context_->CreateRequest(GURL("http://blah/"), 916 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
889 net::DEFAULT_PRIORITY, &delegate_); 917 net::DEFAULT_PRIORITY, &delegate_);
890 handler_ = 918 handler_ =
891 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()), 919 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()),
892 RESOURCE_TYPE_MAIN_FRAME, false); 920 RESOURCE_TYPE_MAIN_FRAME, false);
893 EXPECT_TRUE(handler_.get()); 921 EXPECT_TRUE(handler_.get());
894 922
895 job_.reset( 923 job_.reset(static_cast<AppCacheURLRequestJob*>(
896 handler_->MaybeLoadResource(request_->context()->network_delegate())); 924 handler_->MaybeLoadResource(request_->context()->network_delegate())));
897 EXPECT_TRUE(job_.get()); 925 EXPECT_TRUE(job_.get());
898 EXPECT_TRUE(job_->is_waiting()); 926 EXPECT_TRUE(job_->IsWaiting());
899 EXPECT_FALSE(job_->has_been_started()); 927 EXPECT_FALSE(job_->IsStarted());
900 928
901 base::WeakPtr<AppCacheURLRequestJob> weak_job = job_->GetWeakPtr(); 929 base::WeakPtr<AppCacheJob> weak_job = job_->GetWeakPtr();
902 930
903 job_factory_->SetJob(std::move(job_)); 931 job_factory_->SetJob(std::move(job_));
904 request_->Start(); 932 request_->Start();
905 ASSERT_TRUE(weak_job); 933 ASSERT_TRUE(weak_job);
906 EXPECT_TRUE(weak_job->has_been_started()); 934 EXPECT_TRUE(weak_job->IsStarted());
907 935
908 request_->Cancel(); 936 request_->Cancel();
909 ASSERT_FALSE(weak_job); 937 ASSERT_FALSE(weak_job);
910 938
911 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( 939 EXPECT_FALSE(static_cast<AppCacheURLRequestJob*>(
912 request_->context()->network_delegate())); 940 handler_->MaybeLoadFallbackForResponse(
941 request_->context()->network_delegate())));
913 942
914 TestFinished(); 943 TestFinished();
915 } 944 }
916 945
917 // WorkerRequest ----------------------------- 946 // WorkerRequest -----------------------------
918 947
919 void WorkerRequest() { 948 void WorkerRequest() {
920 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( 949 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType(
921 RESOURCE_TYPE_MAIN_FRAME)); 950 RESOURCE_TYPE_MAIN_FRAME));
922 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( 951 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType(
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
972 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()), 1001 host_->CreateRequestHandler(AppCacheURLRequest::Create(request_.get()),
973 RESOURCE_TYPE_MAIN_FRAME, false); 1002 RESOURCE_TYPE_MAIN_FRAME, false);
974 EXPECT_TRUE(handler_.get()); 1003 EXPECT_TRUE(handler_.get());
975 1004
976 mock_policy_->can_load_return_value_ = false; 1005 mock_policy_->can_load_return_value_ = false;
977 mock_storage()->SimulateFindMainResource( 1006 mock_storage()->SimulateFindMainResource(
978 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 1007 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
979 GURL(), AppCacheEntry(), 1008 GURL(), AppCacheEntry(),
980 1, 2, GURL("http://blah/manifest/")); 1009 1, 2, GURL("http://blah/manifest/"));
981 1010
982 job_.reset( 1011 job_.reset(static_cast<AppCacheURLRequestJob*>(
983 handler_->MaybeLoadResource(request_->context()->network_delegate())); 1012 handler_->MaybeLoadResource(request_->context()->network_delegate())));
984 EXPECT_TRUE(job_.get()); 1013 EXPECT_TRUE(job_.get());
985 EXPECT_TRUE(job_->is_waiting()); 1014 EXPECT_TRUE(job_->IsWaiting());
986 1015
987 // We have to wait for completion of storage->FindResponseForMainRequest. 1016 // We have to wait for completion of storage->FindResponseForMainRequest.
988 ScheduleNextTask(); 1017 ScheduleNextTask();
989 } 1018 }
990 1019
991 void Verify_MainResource_Blocked() { 1020 void Verify_MainResource_Blocked() {
992 EXPECT_FALSE(job_->is_waiting()); 1021 EXPECT_FALSE(job_->IsWaiting());
993 EXPECT_FALSE(job_->is_delivering_appcache_response()); 1022 EXPECT_FALSE(job_->IsDeliveringAppCacheResponse());
994 1023
995 EXPECT_EQ(0, handler_->found_cache_id_); 1024 EXPECT_EQ(0, handler_->found_cache_id_);
996 EXPECT_EQ(0, handler_->found_group_id_); 1025 EXPECT_EQ(0, handler_->found_group_id_);
997 EXPECT_TRUE(handler_->found_manifest_url_.is_empty()); 1026 EXPECT_TRUE(handler_->found_manifest_url_.is_empty());
998 EXPECT_TRUE(host_->preferred_manifest_url().is_empty()); 1027 EXPECT_TRUE(host_->preferred_manifest_url().is_empty());
999 EXPECT_TRUE(host_->main_resource_blocked_); 1028 EXPECT_TRUE(host_->main_resource_blocked_);
1000 EXPECT_EQ(host_->blocked_manifest_url_, "http://blah/manifest/"); 1029 EXPECT_EQ(host_->blocked_manifest_url_, "http://blah/manifest/");
1001 1030
1002 TestFinished(); 1031 TestFinished();
1003 } 1032 }
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
1118 1147
1119 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) { 1148 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) {
1120 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest); 1149 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest);
1121 } 1150 }
1122 1151
1123 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) { 1152 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) {
1124 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked); 1153 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked);
1125 } 1154 }
1126 1155
1127 } // namespace content 1156 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/appcache/appcache_request_handler.cc ('k') | content/browser/appcache/appcache_url_loader_job.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698