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

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

Issue 2536723009: Make net::URLRequestContext a MemoryDumpProvider (Closed)
Patch Set: Created 4 years 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 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 io_thread_->task_runner()->PostTask( 208 io_thread_->task_runner()->PostTask(
209 FROM_HERE, 209 FROM_HERE,
210 base::Bind(&AppCacheRequestHandlerTest::MethodWrapper<Method>, 210 base::Bind(&AppCacheRequestHandlerTest::MethodWrapper<Method>,
211 base::Unretained(this), method)); 211 base::Unretained(this), method));
212 test_finished_event_->Wait(); 212 test_finished_event_->Wait();
213 } 213 }
214 214
215 void SetUpTest() { 215 void SetUpTest() {
216 DCHECK(io_thread_->task_runner()->BelongsToCurrentThread()); 216 DCHECK(io_thread_->task_runner()->BelongsToCurrentThread());
217 mock_service_.reset(new MockAppCacheService); 217 mock_service_.reset(new MockAppCacheService);
218 mock_service_->set_request_context(&empty_context_); 218 // Initializes URLRequestContext on the IO thread.
219 empty_context_.reset(new net::URLRequestContext);
xunjieli 2016/12/01 22:01:59 I changed |empty_context_| to be initialized in Se
220 mock_service_->set_request_context(empty_context_.get());
219 mock_policy_.reset(new MockAppCachePolicy); 221 mock_policy_.reset(new MockAppCachePolicy);
220 mock_service_->set_appcache_policy(mock_policy_.get()); 222 mock_service_->set_appcache_policy(mock_policy_.get());
221 mock_frontend_.reset(new MockFrontend); 223 mock_frontend_.reset(new MockFrontend);
222 backend_impl_.reset(new AppCacheBackendImpl); 224 backend_impl_.reset(new AppCacheBackendImpl);
223 backend_impl_->Initialize(mock_service_.get(), mock_frontend_.get(), 225 backend_impl_->Initialize(mock_service_.get(), mock_frontend_.get(),
224 kMockProcessId); 226 kMockProcessId);
225 const int kHostId = 1; 227 const int kHostId = 1;
226 backend_impl_->RegisterHost(kHostId); 228 backend_impl_->RegisterHost(kHostId);
227 host_ = backend_impl_->GetHost(kHostId); 229 host_ = backend_impl_->GetHost(kHostId);
228 job_factory_.reset(new MockURLRequestJobFactory()); 230 job_factory_.reset(new MockURLRequestJobFactory());
229 empty_context_.set_job_factory(job_factory_.get()); 231 empty_context_->set_job_factory(job_factory_.get());
230 } 232 }
231 233
232 void TearDownTest() { 234 void TearDownTest() {
233 DCHECK(io_thread_->task_runner()->BelongsToCurrentThread()); 235 DCHECK(io_thread_->task_runner()->BelongsToCurrentThread());
234 job_ = NULL; 236 job_ = NULL;
235 handler_.reset(); 237 handler_.reset();
236 request_.reset(); 238 request_.reset();
237 backend_impl_.reset(); 239 backend_impl_.reset();
238 mock_frontend_.reset(); 240 mock_frontend_.reset();
239 mock_service_.reset(); 241 mock_service_.reset();
240 mock_policy_.reset(); 242 mock_policy_.reset();
241 job_factory_.reset(); 243 job_factory_.reset();
244 empty_context_.reset();
242 host_ = NULL; 245 host_ = NULL;
243 } 246 }
244 247
245 void TestFinished() { 248 void TestFinished() {
246 // We unwind the stack prior to finishing up to let stack 249 // We unwind the stack prior to finishing up to let stack
247 // based objects get deleted. 250 // based objects get deleted.
248 DCHECK(io_thread_->task_runner()->BelongsToCurrentThread()); 251 DCHECK(io_thread_->task_runner()->BelongsToCurrentThread());
249 base::ThreadTaskRunnerHandle::Get()->PostTask( 252 base::ThreadTaskRunnerHandle::Get()->PostTask(
250 FROM_HERE, base::Bind(&AppCacheRequestHandlerTest::TestFinishedUnwound, 253 FROM_HERE, base::Bind(&AppCacheRequestHandlerTest::TestFinishedUnwound,
251 base::Unretained(this))); 254 base::Unretained(this)));
(...skipping 18 matching lines...) Expand all
270 task_stack_.pop(); 273 task_stack_.pop();
271 } 274 }
272 275
273 // MainResource_Miss -------------------------------------------------- 276 // MainResource_Miss --------------------------------------------------
274 277
275 void MainResource_Miss() { 278 void MainResource_Miss() {
276 PushNextTask( 279 PushNextTask(
277 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Miss, 280 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Miss,
278 base::Unretained(this))); 281 base::Unretained(this)));
279 282
280 request_ = empty_context_.CreateRequest( 283 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
281 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); 284 net::DEFAULT_PRIORITY, &delegate_);
282 handler_.reset(host_->CreateRequestHandler(request_.get(), 285 handler_.reset(host_->CreateRequestHandler(request_.get(),
283 RESOURCE_TYPE_MAIN_FRAME, 286 RESOURCE_TYPE_MAIN_FRAME,
284 false)); 287 false));
285 EXPECT_TRUE(handler_.get()); 288 EXPECT_TRUE(handler_.get());
286 289
287 job_.reset(handler_->MaybeLoadResource( 290 job_.reset(handler_->MaybeLoadResource(
288 request_.get(), request_->context()->network_delegate())); 291 request_.get(), request_->context()->network_delegate()));
289 EXPECT_TRUE(job_.get()); 292 EXPECT_TRUE(job_.get());
290 EXPECT_TRUE(job_->is_waiting()); 293 EXPECT_TRUE(job_->is_waiting());
291 294
(...skipping 26 matching lines...) Expand all
318 TestFinished(); 321 TestFinished();
319 } 322 }
320 323
321 // MainResource_Hit -------------------------------------------------- 324 // MainResource_Hit --------------------------------------------------
322 325
323 void MainResource_Hit() { 326 void MainResource_Hit() {
324 PushNextTask( 327 PushNextTask(
325 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Hit, 328 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Hit,
326 base::Unretained(this))); 329 base::Unretained(this)));
327 330
328 request_ = empty_context_.CreateRequest( 331 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
329 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); 332 net::DEFAULT_PRIORITY, &delegate_);
330 handler_.reset(host_->CreateRequestHandler(request_.get(), 333 handler_.reset(host_->CreateRequestHandler(request_.get(),
331 RESOURCE_TYPE_MAIN_FRAME, 334 RESOURCE_TYPE_MAIN_FRAME,
332 false)); 335 false));
333 EXPECT_TRUE(handler_.get()); 336 EXPECT_TRUE(handler_.get());
334 337
335 mock_storage()->SimulateFindMainResource( 338 mock_storage()->SimulateFindMainResource(
336 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 339 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
337 GURL(), AppCacheEntry(), 340 GURL(), AppCacheEntry(),
338 1, 2, GURL("http://blah/manifest/")); 341 1, 2, GURL("http://blah/manifest/"));
339 342
(...skipping 28 matching lines...) Expand all
368 TestFinished(); 371 TestFinished();
369 } 372 }
370 373
371 // MainResource_Fallback -------------------------------------------------- 374 // MainResource_Fallback --------------------------------------------------
372 375
373 void MainResource_Fallback() { 376 void MainResource_Fallback() {
374 PushNextTask( 377 PushNextTask(
375 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Fallback, 378 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Fallback,
376 base::Unretained(this))); 379 base::Unretained(this)));
377 380
378 request_ = empty_context_.CreateRequest( 381 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
379 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); 382 net::DEFAULT_PRIORITY, &delegate_);
380 handler_.reset(host_->CreateRequestHandler(request_.get(), 383 handler_.reset(host_->CreateRequestHandler(request_.get(),
381 RESOURCE_TYPE_MAIN_FRAME, 384 RESOURCE_TYPE_MAIN_FRAME,
382 false)); 385 false));
383 EXPECT_TRUE(handler_.get()); 386 EXPECT_TRUE(handler_.get());
384 387
385 mock_storage()->SimulateFindMainResource( 388 mock_storage()->SimulateFindMainResource(
386 AppCacheEntry(), 389 AppCacheEntry(),
387 GURL("http://blah/fallbackurl"), 390 GURL("http://blah/fallbackurl"),
388 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 391 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
389 1, 2, GURL("http://blah/manifest/")); 392 1, 2, GURL("http://blah/manifest/"));
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 TestFinished(); 453 TestFinished();
451 } 454 }
452 455
453 // MainResource_FallbackOverride -------------------------------------------- 456 // MainResource_FallbackOverride --------------------------------------------
454 457
455 void MainResource_FallbackOverride() { 458 void MainResource_FallbackOverride() {
456 PushNextTask(base::Bind( 459 PushNextTask(base::Bind(
457 &AppCacheRequestHandlerTest::Verify_MainResource_FallbackOverride, 460 &AppCacheRequestHandlerTest::Verify_MainResource_FallbackOverride,
458 base::Unretained(this))); 461 base::Unretained(this)));
459 462
460 request_ = empty_context_.CreateRequest( 463 request_ =
461 GURL("http://blah/fallback-override"), net::DEFAULT_PRIORITY, 464 empty_context_->CreateRequest(GURL("http://blah/fallback-override"),
462 &delegate_); 465 net::DEFAULT_PRIORITY, &delegate_);
463 handler_.reset(host_->CreateRequestHandler(request_.get(), 466 handler_.reset(host_->CreateRequestHandler(request_.get(),
464 RESOURCE_TYPE_MAIN_FRAME, 467 RESOURCE_TYPE_MAIN_FRAME,
465 false)); 468 false));
466 EXPECT_TRUE(handler_.get()); 469 EXPECT_TRUE(handler_.get());
467 470
468 mock_storage()->SimulateFindMainResource( 471 mock_storage()->SimulateFindMainResource(
469 AppCacheEntry(), 472 AppCacheEntry(),
470 GURL("http://blah/fallbackurl"), 473 GURL("http://blah/fallbackurl"),
471 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 474 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
472 1, 2, GURL("http://blah/manifest/")); 475 1, 2, GURL("http://blah/manifest/"));
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 handler_->GetExtraResponseInfo(&cache_id, &manifest_url); 519 handler_->GetExtraResponseInfo(&cache_id, &manifest_url);
517 EXPECT_EQ(kAppCacheNoCacheId, cache_id); 520 EXPECT_EQ(kAppCacheNoCacheId, cache_id);
518 EXPECT_TRUE(manifest_url.is_empty()); 521 EXPECT_TRUE(manifest_url.is_empty());
519 522
520 TestFinished(); 523 TestFinished();
521 } 524 }
522 525
523 // SubResource_Miss_WithNoCacheSelected ---------------------------------- 526 // SubResource_Miss_WithNoCacheSelected ----------------------------------
524 527
525 void SubResource_Miss_WithNoCacheSelected() { 528 void SubResource_Miss_WithNoCacheSelected() {
526 request_ = empty_context_.CreateRequest( 529 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
527 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); 530 net::DEFAULT_PRIORITY, &delegate_);
528 handler_.reset(host_->CreateRequestHandler(request_.get(), 531 handler_.reset(host_->CreateRequestHandler(request_.get(),
529 RESOURCE_TYPE_SUB_RESOURCE, 532 RESOURCE_TYPE_SUB_RESOURCE,
530 false)); 533 false));
531 534
532 // We avoid creating handler when possible, sub-resource requests are not 535 // We avoid creating handler when possible, sub-resource requests are not
533 // subject to retrieval from an appcache when there's no associated cache. 536 // subject to retrieval from an appcache when there's no associated cache.
534 EXPECT_FALSE(handler_.get()); 537 EXPECT_FALSE(handler_.get());
535 538
536 TestFinished(); 539 TestFinished();
537 } 540 }
538 541
539 // SubResource_Miss_WithCacheSelected ---------------------------------- 542 // SubResource_Miss_WithCacheSelected ----------------------------------
540 543
541 void SubResource_Miss_WithCacheSelected() { 544 void SubResource_Miss_WithCacheSelected() {
542 // A sub-resource load where the resource is not in an appcache, or 545 // A sub-resource load where the resource is not in an appcache, or
543 // in a network or fallback namespace, should result in a failed request. 546 // in a network or fallback namespace, should result in a failed request.
544 host_->AssociateCompleteCache(MakeNewCache()); 547 host_->AssociateCompleteCache(MakeNewCache());
545 548
546 request_ = empty_context_.CreateRequest( 549 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
547 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); 550 net::DEFAULT_PRIORITY, &delegate_);
548 handler_.reset(host_->CreateRequestHandler(request_.get(), 551 handler_.reset(host_->CreateRequestHandler(request_.get(),
549 RESOURCE_TYPE_SUB_RESOURCE, 552 RESOURCE_TYPE_SUB_RESOURCE,
550 false)); 553 false));
551 EXPECT_TRUE(handler_.get()); 554 EXPECT_TRUE(handler_.get());
552 555
553 job_.reset(handler_->MaybeLoadResource( 556 job_.reset(handler_->MaybeLoadResource(
554 request_.get(), request_->context()->network_delegate())); 557 request_.get(), request_->context()->network_delegate()));
555 EXPECT_TRUE(job_.get()); 558 EXPECT_TRUE(job_.get());
556 EXPECT_TRUE(job_->is_delivering_error_response()); 559 EXPECT_TRUE(job_->is_delivering_error_response());
557 560
(...skipping 10 matching lines...) Expand all
568 } 571 }
569 572
570 // SubResource_Miss_WithWaitForCacheSelection ----------------------------- 573 // SubResource_Miss_WithWaitForCacheSelection -----------------------------
571 574
572 void SubResource_Miss_WithWaitForCacheSelection() { 575 void SubResource_Miss_WithWaitForCacheSelection() {
573 // Precondition, the host is waiting on cache selection. 576 // Precondition, the host is waiting on cache selection.
574 scoped_refptr<AppCache> cache(MakeNewCache()); 577 scoped_refptr<AppCache> cache(MakeNewCache());
575 host_->pending_selected_cache_id_ = cache->cache_id(); 578 host_->pending_selected_cache_id_ = cache->cache_id();
576 host_->set_preferred_manifest_url(cache->owning_group()->manifest_url()); 579 host_->set_preferred_manifest_url(cache->owning_group()->manifest_url());
577 580
578 request_ = empty_context_.CreateRequest( 581 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
579 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); 582 net::DEFAULT_PRIORITY, &delegate_);
580 handler_.reset(host_->CreateRequestHandler(request_.get(), 583 handler_.reset(host_->CreateRequestHandler(request_.get(),
581 RESOURCE_TYPE_SUB_RESOURCE, 584 RESOURCE_TYPE_SUB_RESOURCE,
582 false)); 585 false));
583 EXPECT_TRUE(handler_.get()); 586 EXPECT_TRUE(handler_.get());
584 job_.reset(handler_->MaybeLoadResource( 587 job_.reset(handler_->MaybeLoadResource(
585 request_.get(), request_->context()->network_delegate())); 588 request_.get(), request_->context()->network_delegate()));
586 EXPECT_TRUE(job_.get()); 589 EXPECT_TRUE(job_.get());
587 EXPECT_TRUE(job_->is_waiting()); 590 EXPECT_TRUE(job_->is_waiting());
588 591
589 host_->FinishCacheSelection(cache.get(), NULL); 592 host_->FinishCacheSelection(cache.get(), NULL);
(...skipping 13 matching lines...) Expand all
603 } 606 }
604 607
605 // SubResource_Hit ----------------------------- 608 // SubResource_Hit -----------------------------
606 609
607 void SubResource_Hit() { 610 void SubResource_Hit() {
608 host_->AssociateCompleteCache(MakeNewCache()); 611 host_->AssociateCompleteCache(MakeNewCache());
609 612
610 mock_storage()->SimulateFindSubResource( 613 mock_storage()->SimulateFindSubResource(
611 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); 614 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false);
612 615
613 request_ = empty_context_.CreateRequest( 616 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
614 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); 617 net::DEFAULT_PRIORITY, &delegate_);
615 handler_.reset(host_->CreateRequestHandler(request_.get(), 618 handler_.reset(host_->CreateRequestHandler(request_.get(),
616 RESOURCE_TYPE_SUB_RESOURCE, 619 RESOURCE_TYPE_SUB_RESOURCE,
617 false)); 620 false));
618 EXPECT_TRUE(handler_.get()); 621 EXPECT_TRUE(handler_.get());
619 job_.reset(handler_->MaybeLoadResource( 622 job_.reset(handler_->MaybeLoadResource(
620 request_.get(), request_->context()->network_delegate())); 623 request_.get(), request_->context()->network_delegate()));
621 EXPECT_TRUE(job_.get()); 624 EXPECT_TRUE(job_.get());
622 EXPECT_TRUE(job_->is_delivering_appcache_response()); 625 EXPECT_TRUE(job_->is_delivering_appcache_response());
623 626
624 std::unique_ptr<AppCacheURLRequestJob> fallback_job( 627 std::unique_ptr<AppCacheURLRequestJob> fallback_job(
(...skipping 11 matching lines...) Expand all
636 // SubResource_RedirectFallback ----------------------------- 639 // SubResource_RedirectFallback -----------------------------
637 640
638 void SubResource_RedirectFallback() { 641 void SubResource_RedirectFallback() {
639 // Redirects to resources in the a different origin are subject to 642 // Redirects to resources in the a different origin are subject to
640 // fallback namespaces. 643 // fallback namespaces.
641 host_->AssociateCompleteCache(MakeNewCache()); 644 host_->AssociateCompleteCache(MakeNewCache());
642 645
643 mock_storage()->SimulateFindSubResource( 646 mock_storage()->SimulateFindSubResource(
644 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); 647 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false);
645 648
646 request_ = empty_context_.CreateRequest( 649 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
647 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); 650 net::DEFAULT_PRIORITY, &delegate_);
648 handler_.reset(host_->CreateRequestHandler(request_.get(), 651 handler_.reset(host_->CreateRequestHandler(request_.get(),
649 RESOURCE_TYPE_SUB_RESOURCE, 652 RESOURCE_TYPE_SUB_RESOURCE,
650 false)); 653 false));
651 EXPECT_TRUE(handler_.get()); 654 EXPECT_TRUE(handler_.get());
652 job_.reset(handler_->MaybeLoadResource( 655 job_.reset(handler_->MaybeLoadResource(
653 request_.get(), request_->context()->network_delegate())); 656 request_.get(), request_->context()->network_delegate()));
654 EXPECT_FALSE(job_.get()); 657 EXPECT_FALSE(job_.get());
655 658
656 job_.reset(handler_->MaybeLoadFallbackForRedirect( 659 job_.reset(handler_->MaybeLoadFallbackForRedirect(
657 request_.get(), request_->context()->network_delegate(), 660 request_.get(), request_->context()->network_delegate(),
(...skipping 12 matching lines...) Expand all
670 // SubResource_NoRedirectFallback ----------------------------- 673 // SubResource_NoRedirectFallback -----------------------------
671 674
672 void SubResource_NoRedirectFallback() { 675 void SubResource_NoRedirectFallback() {
673 // Redirects to resources in the same-origin are not subject to 676 // Redirects to resources in the same-origin are not subject to
674 // fallback namespaces. 677 // fallback namespaces.
675 host_->AssociateCompleteCache(MakeNewCache()); 678 host_->AssociateCompleteCache(MakeNewCache());
676 679
677 mock_storage()->SimulateFindSubResource( 680 mock_storage()->SimulateFindSubResource(
678 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); 681 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false);
679 682
680 request_ = empty_context_.CreateRequest( 683 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
681 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); 684 net::DEFAULT_PRIORITY, &delegate_);
682 handler_.reset(host_->CreateRequestHandler(request_.get(), 685 handler_.reset(host_->CreateRequestHandler(request_.get(),
683 RESOURCE_TYPE_SUB_RESOURCE, 686 RESOURCE_TYPE_SUB_RESOURCE,
684 false)); 687 false));
685 EXPECT_TRUE(handler_.get()); 688 EXPECT_TRUE(handler_.get());
686 job_.reset(handler_->MaybeLoadResource( 689 job_.reset(handler_->MaybeLoadResource(
687 request_.get(), request_->context()->network_delegate())); 690 request_.get(), request_->context()->network_delegate()));
688 EXPECT_FALSE(job_.get()); 691 EXPECT_FALSE(job_.get());
689 692
690 std::unique_ptr<AppCacheURLRequestJob> fallback_job( 693 std::unique_ptr<AppCacheURLRequestJob> fallback_job(
691 handler_->MaybeLoadFallbackForRedirect( 694 handler_->MaybeLoadFallbackForRedirect(
(...skipping 13 matching lines...) Expand all
705 708
706 void SubResource_Network() { 709 void SubResource_Network() {
707 // A sub-resource load where the resource is in a network namespace, 710 // A sub-resource load where the resource is in a network namespace,
708 // should result in the system using a 'real' job to do the network 711 // should result in the system using a 'real' job to do the network
709 // retrieval. 712 // retrieval.
710 host_->AssociateCompleteCache(MakeNewCache()); 713 host_->AssociateCompleteCache(MakeNewCache());
711 714
712 mock_storage()->SimulateFindSubResource( 715 mock_storage()->SimulateFindSubResource(
713 AppCacheEntry(), AppCacheEntry(), true); 716 AppCacheEntry(), AppCacheEntry(), true);
714 717
715 request_ = empty_context_.CreateRequest( 718 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
716 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); 719 net::DEFAULT_PRIORITY, &delegate_);
717 handler_.reset(host_->CreateRequestHandler(request_.get(), 720 handler_.reset(host_->CreateRequestHandler(request_.get(),
718 RESOURCE_TYPE_SUB_RESOURCE, 721 RESOURCE_TYPE_SUB_RESOURCE,
719 false)); 722 false));
720 EXPECT_TRUE(handler_.get()); 723 EXPECT_TRUE(handler_.get());
721 job_.reset(handler_->MaybeLoadResource( 724 job_.reset(handler_->MaybeLoadResource(
722 request_.get(), request_->context()->network_delegate())); 725 request_.get(), request_->context()->network_delegate()));
723 EXPECT_FALSE(job_.get()); 726 EXPECT_FALSE(job_.get());
724 727
725 std::unique_ptr<AppCacheURLRequestJob> fallback_job( 728 std::unique_ptr<AppCacheURLRequestJob> fallback_job(
726 handler_->MaybeLoadFallbackForRedirect( 729 handler_->MaybeLoadFallbackForRedirect(
727 request_.get(), request_->context()->network_delegate(), 730 request_.get(), request_->context()->network_delegate(),
728 GURL("http://blah/redirect"))); 731 GURL("http://blah/redirect")));
729 EXPECT_FALSE(fallback_job); 732 EXPECT_FALSE(fallback_job);
730 fallback_job.reset(handler_->MaybeLoadFallbackForResponse( 733 fallback_job.reset(handler_->MaybeLoadFallbackForResponse(
731 request_.get(), request_->context()->network_delegate())); 734 request_.get(), request_->context()->network_delegate()));
732 EXPECT_FALSE(fallback_job); 735 EXPECT_FALSE(fallback_job);
733 736
734 TestFinished(); 737 TestFinished();
735 } 738 }
736 739
737 // DestroyedHost ----------------------------- 740 // DestroyedHost -----------------------------
738 741
739 void DestroyedHost() { 742 void DestroyedHost() {
740 host_->AssociateCompleteCache(MakeNewCache()); 743 host_->AssociateCompleteCache(MakeNewCache());
741 744
742 mock_storage()->SimulateFindSubResource( 745 mock_storage()->SimulateFindSubResource(
743 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); 746 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false);
744 747
745 request_ = empty_context_.CreateRequest( 748 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
746 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); 749 net::DEFAULT_PRIORITY, &delegate_);
747 handler_.reset(host_->CreateRequestHandler(request_.get(), 750 handler_.reset(host_->CreateRequestHandler(request_.get(),
748 RESOURCE_TYPE_SUB_RESOURCE, 751 RESOURCE_TYPE_SUB_RESOURCE,
749 false)); 752 false));
750 EXPECT_TRUE(handler_.get()); 753 EXPECT_TRUE(handler_.get());
751 754
752 backend_impl_->UnregisterHost(1); 755 backend_impl_->UnregisterHost(1);
753 host_ = NULL; 756 host_ = NULL;
754 757
755 EXPECT_FALSE(handler_->MaybeLoadResource( 758 EXPECT_FALSE(handler_->MaybeLoadResource(
756 request_.get(), request_->context()->network_delegate())); 759 request_.get(), request_->context()->network_delegate()));
757 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( 760 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect(
758 request_.get(), 761 request_.get(),
759 request_->context()->network_delegate(), 762 request_->context()->network_delegate(),
760 GURL("http://blah/redirect"))); 763 GURL("http://blah/redirect")));
761 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( 764 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(
762 request_.get(), request_->context()->network_delegate())); 765 request_.get(), request_->context()->network_delegate()));
763 766
764 TestFinished(); 767 TestFinished();
765 } 768 }
766 769
767 // DestroyedHostWithWaitingJob ----------------------------- 770 // DestroyedHostWithWaitingJob -----------------------------
768 771
769 void DestroyedHostWithWaitingJob() { 772 void DestroyedHostWithWaitingJob() {
770 // Precondition, the host is waiting on cache selection. 773 // Precondition, the host is waiting on cache selection.
771 host_->pending_selected_cache_id_ = 1; 774 host_->pending_selected_cache_id_ = 1;
772 775
773 request_ = empty_context_.CreateRequest( 776 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
774 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); 777 net::DEFAULT_PRIORITY, &delegate_);
775 handler_.reset(host_->CreateRequestHandler(request_.get(), 778 handler_.reset(host_->CreateRequestHandler(request_.get(),
776 RESOURCE_TYPE_SUB_RESOURCE, 779 RESOURCE_TYPE_SUB_RESOURCE,
777 false)); 780 false));
778 EXPECT_TRUE(handler_.get()); 781 EXPECT_TRUE(handler_.get());
779 782
780 job_.reset(handler_->MaybeLoadResource( 783 job_.reset(handler_->MaybeLoadResource(
781 request_.get(), request_->context()->network_delegate())); 784 request_.get(), request_->context()->network_delegate()));
782 EXPECT_TRUE(job_.get()); 785 EXPECT_TRUE(job_.get());
783 EXPECT_TRUE(job_->is_waiting()); 786 EXPECT_TRUE(job_->is_waiting());
784 787
(...skipping 14 matching lines...) Expand all
799 } 802 }
800 803
801 // DestroyedService ----------------------------- 804 // DestroyedService -----------------------------
802 805
803 void DestroyedService() { 806 void DestroyedService() {
804 host_->AssociateCompleteCache(MakeNewCache()); 807 host_->AssociateCompleteCache(MakeNewCache());
805 808
806 mock_storage()->SimulateFindSubResource( 809 mock_storage()->SimulateFindSubResource(
807 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); 810 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false);
808 811
809 request_ = empty_context_.CreateRequest( 812 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
810 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); 813 net::DEFAULT_PRIORITY, &delegate_);
811 handler_.reset(host_->CreateRequestHandler(request_.get(), 814 handler_.reset(host_->CreateRequestHandler(request_.get(),
812 RESOURCE_TYPE_SUB_RESOURCE, 815 RESOURCE_TYPE_SUB_RESOURCE,
813 false)); 816 false));
814 EXPECT_TRUE(handler_.get()); 817 EXPECT_TRUE(handler_.get());
815 job_.reset(handler_->MaybeLoadResource( 818 job_.reset(handler_->MaybeLoadResource(
816 request_.get(), request_->context()->network_delegate())); 819 request_.get(), request_->context()->network_delegate()));
817 EXPECT_TRUE(job_.get()); 820 EXPECT_TRUE(job_.get());
818 821
819 backend_impl_.reset(); 822 backend_impl_.reset();
820 mock_frontend_.reset(); 823 mock_frontend_.reset();
821 mock_service_.reset(); 824 mock_service_.reset();
822 mock_policy_.reset(); 825 mock_policy_.reset();
823 host_ = NULL; 826 host_ = NULL;
824 827
825 EXPECT_TRUE(job_->has_been_killed()); 828 EXPECT_TRUE(job_->has_been_killed());
826 EXPECT_FALSE(handler_->MaybeLoadResource( 829 EXPECT_FALSE(handler_->MaybeLoadResource(
827 request_.get(), request_->context()->network_delegate())); 830 request_.get(), request_->context()->network_delegate()));
828 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( 831 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect(
829 request_.get(), 832 request_.get(),
830 request_->context()->network_delegate(), 833 request_->context()->network_delegate(),
831 GURL("http://blah/redirect"))); 834 GURL("http://blah/redirect")));
832 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( 835 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(
833 request_.get(), request_->context()->network_delegate())); 836 request_.get(), request_->context()->network_delegate()));
834 837
835 TestFinished(); 838 TestFinished();
836 } 839 }
837 840
838 void DestroyedServiceWithCrossSiteNav() { 841 void DestroyedServiceWithCrossSiteNav() {
839 request_ = empty_context_.CreateRequest( 842 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
840 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); 843 net::DEFAULT_PRIORITY, &delegate_);
841 handler_.reset(host_->CreateRequestHandler(request_.get(), 844 handler_.reset(host_->CreateRequestHandler(request_.get(),
842 RESOURCE_TYPE_MAIN_FRAME, 845 RESOURCE_TYPE_MAIN_FRAME,
843 false)); 846 false));
844 EXPECT_TRUE(handler_.get()); 847 EXPECT_TRUE(handler_.get());
845 handler_->PrepareForCrossSiteTransfer(backend_impl_->process_id()); 848 handler_->PrepareForCrossSiteTransfer(backend_impl_->process_id());
846 EXPECT_TRUE(handler_->host_for_cross_site_transfer_.get()); 849 EXPECT_TRUE(handler_->host_for_cross_site_transfer_.get());
847 850
848 backend_impl_.reset(); 851 backend_impl_.reset();
849 mock_frontend_.reset(); 852 mock_frontend_.reset();
850 mock_service_.reset(); 853 mock_service_.reset();
(...skipping 12 matching lines...) Expand all
863 866
864 TestFinished(); 867 TestFinished();
865 } 868 }
866 869
867 // UnsupportedScheme ----------------------------- 870 // UnsupportedScheme -----------------------------
868 871
869 void UnsupportedScheme() { 872 void UnsupportedScheme() {
870 // Precondition, the host is waiting on cache selection. 873 // Precondition, the host is waiting on cache selection.
871 host_->pending_selected_cache_id_ = 1; 874 host_->pending_selected_cache_id_ = 1;
872 875
873 request_ = empty_context_.CreateRequest( 876 request_ = empty_context_->CreateRequest(GURL("ftp://blah/"),
874 GURL("ftp://blah/"), net::DEFAULT_PRIORITY, &delegate_); 877 net::DEFAULT_PRIORITY, &delegate_);
875 handler_.reset(host_->CreateRequestHandler(request_.get(), 878 handler_.reset(host_->CreateRequestHandler(request_.get(),
876 RESOURCE_TYPE_SUB_RESOURCE, 879 RESOURCE_TYPE_SUB_RESOURCE,
877 false)); 880 false));
878 EXPECT_TRUE(handler_.get()); // we could redirect to http (conceivably) 881 EXPECT_TRUE(handler_.get()); // we could redirect to http (conceivably)
879 882
880 EXPECT_FALSE(handler_->MaybeLoadResource( 883 EXPECT_FALSE(handler_->MaybeLoadResource(
881 request_.get(), request_->context()->network_delegate())); 884 request_.get(), request_->context()->network_delegate()));
882 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( 885 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect(
883 request_.get(), 886 request_.get(),
884 request_->context()->network_delegate(), 887 request_->context()->network_delegate(),
885 GURL("ftp://blah/redirect"))); 888 GURL("ftp://blah/redirect")));
886 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( 889 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(
887 request_.get(), request_->context()->network_delegate())); 890 request_.get(), request_->context()->network_delegate()));
888 891
889 TestFinished(); 892 TestFinished();
890 } 893 }
891 894
892 // CanceledRequest ----------------------------- 895 // CanceledRequest -----------------------------
893 896
894 void CanceledRequest() { 897 void CanceledRequest() {
895 request_ = empty_context_.CreateRequest( 898 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
896 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); 899 net::DEFAULT_PRIORITY, &delegate_);
897 handler_.reset(host_->CreateRequestHandler(request_.get(), 900 handler_.reset(host_->CreateRequestHandler(request_.get(),
898 RESOURCE_TYPE_MAIN_FRAME, 901 RESOURCE_TYPE_MAIN_FRAME,
899 false)); 902 false));
900 EXPECT_TRUE(handler_.get()); 903 EXPECT_TRUE(handler_.get());
901 904
902 job_.reset(handler_->MaybeLoadResource( 905 job_.reset(handler_->MaybeLoadResource(
903 request_.get(), request_->context()->network_delegate())); 906 request_.get(), request_->context()->network_delegate()));
904 EXPECT_TRUE(job_.get()); 907 EXPECT_TRUE(job_.get());
905 EXPECT_TRUE(job_->is_waiting()); 908 EXPECT_TRUE(job_->is_waiting());
906 EXPECT_FALSE(job_->has_been_started()); 909 EXPECT_FALSE(job_->has_been_started());
(...skipping 19 matching lines...) Expand all
926 void WorkerRequest() { 929 void WorkerRequest() {
927 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( 930 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType(
928 RESOURCE_TYPE_MAIN_FRAME)); 931 RESOURCE_TYPE_MAIN_FRAME));
929 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( 932 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType(
930 RESOURCE_TYPE_SUB_FRAME)); 933 RESOURCE_TYPE_SUB_FRAME));
931 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( 934 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType(
932 RESOURCE_TYPE_SHARED_WORKER)); 935 RESOURCE_TYPE_SHARED_WORKER));
933 EXPECT_FALSE(AppCacheRequestHandler::IsMainResourceType( 936 EXPECT_FALSE(AppCacheRequestHandler::IsMainResourceType(
934 RESOURCE_TYPE_WORKER)); 937 RESOURCE_TYPE_WORKER));
935 938
936 request_ = empty_context_.CreateRequest( 939 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
937 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); 940 net::DEFAULT_PRIORITY, &delegate_);
938 941
939 const int kParentHostId = host_->host_id(); 942 const int kParentHostId = host_->host_id();
940 const int kWorkerHostId = 2; 943 const int kWorkerHostId = 2;
941 const int kAbandonedWorkerHostId = 3; 944 const int kAbandonedWorkerHostId = 3;
942 const int kNonExsitingHostId = 700; 945 const int kNonExsitingHostId = 700;
943 946
944 backend_impl_->RegisterHost(kWorkerHostId); 947 backend_impl_->RegisterHost(kWorkerHostId);
945 AppCacheHost* worker_host = backend_impl_->GetHost(kWorkerHostId); 948 AppCacheHost* worker_host = backend_impl_->GetHost(kWorkerHostId);
946 worker_host->SelectCacheForWorker(kParentHostId, kMockProcessId); 949 worker_host->SelectCacheForWorker(kParentHostId, kMockProcessId);
947 handler_.reset(worker_host->CreateRequestHandler( 950 handler_.reset(worker_host->CreateRequestHandler(
(...skipping 16 matching lines...) Expand all
964 TestFinished(); 967 TestFinished();
965 } 968 }
966 969
967 // MainResource_Blocked -------------------------------------------------- 970 // MainResource_Blocked --------------------------------------------------
968 971
969 void MainResource_Blocked() { 972 void MainResource_Blocked() {
970 PushNextTask( 973 PushNextTask(
971 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Blocked, 974 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Blocked,
972 base::Unretained(this))); 975 base::Unretained(this)));
973 976
974 request_ = empty_context_.CreateRequest( 977 request_ = empty_context_->CreateRequest(GURL("http://blah/"),
975 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); 978 net::DEFAULT_PRIORITY, &delegate_);
976 handler_.reset(host_->CreateRequestHandler(request_.get(), 979 handler_.reset(host_->CreateRequestHandler(request_.get(),
977 RESOURCE_TYPE_MAIN_FRAME, 980 RESOURCE_TYPE_MAIN_FRAME,
978 false)); 981 false));
979 EXPECT_TRUE(handler_.get()); 982 EXPECT_TRUE(handler_.get());
980 983
981 mock_policy_->can_load_return_value_ = false; 984 mock_policy_->can_load_return_value_ = false;
982 mock_storage()->SimulateFindMainResource( 985 mock_storage()->SimulateFindMainResource(
983 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 986 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
984 GURL(), AppCacheEntry(), 987 GURL(), AppCacheEntry(),
985 1, 2, GURL("http://blah/manifest/")); 988 1, 2, GURL("http://blah/manifest/"));
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1026 1029
1027 // Data members -------------------------------------------------- 1030 // Data members --------------------------------------------------
1028 1031
1029 std::unique_ptr<base::WaitableEvent> test_finished_event_; 1032 std::unique_ptr<base::WaitableEvent> test_finished_event_;
1030 std::stack<base::Closure> task_stack_; 1033 std::stack<base::Closure> task_stack_;
1031 std::unique_ptr<MockAppCacheService> mock_service_; 1034 std::unique_ptr<MockAppCacheService> mock_service_;
1032 std::unique_ptr<AppCacheBackendImpl> backend_impl_; 1035 std::unique_ptr<AppCacheBackendImpl> backend_impl_;
1033 std::unique_ptr<MockFrontend> mock_frontend_; 1036 std::unique_ptr<MockFrontend> mock_frontend_;
1034 std::unique_ptr<MockAppCachePolicy> mock_policy_; 1037 std::unique_ptr<MockAppCachePolicy> mock_policy_;
1035 AppCacheHost* host_; 1038 AppCacheHost* host_;
1036 net::URLRequestContext empty_context_; 1039 std::unique_ptr<net::URLRequestContext> empty_context_;
1037 std::unique_ptr<MockURLRequestJobFactory> job_factory_; 1040 std::unique_ptr<MockURLRequestJobFactory> job_factory_;
1038 MockURLRequestDelegate delegate_; 1041 MockURLRequestDelegate delegate_;
1039 std::unique_ptr<net::URLRequest> request_; 1042 std::unique_ptr<net::URLRequest> request_;
1040 std::unique_ptr<AppCacheRequestHandler> handler_; 1043 std::unique_ptr<AppCacheRequestHandler> handler_;
1041 std::unique_ptr<AppCacheURLRequestJob> job_; 1044 std::unique_ptr<AppCacheURLRequestJob> job_;
1042 1045
1043 static std::unique_ptr<base::Thread> io_thread_; 1046 static std::unique_ptr<base::Thread> io_thread_;
1044 }; 1047 };
1045 1048
1046 // static 1049 // static
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
1123 1126
1124 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) { 1127 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) {
1125 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest); 1128 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest);
1126 } 1129 }
1127 1130
1128 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) { 1131 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) {
1129 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked); 1132 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked);
1130 } 1133 }
1131 1134
1132 } // namespace content 1135 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698