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

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

Issue 407093011: Allow URLRequests from one context to have different NetworkDelegates. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix new tests Created 6 years, 4 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 | Annotate | Revision Log
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 <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 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 response_code_(response_code), 90 response_code_(response_code),
91 has_response_info_(false) {} 91 has_response_info_(false) {}
92 MockURLRequestJob(net::URLRequest* request, 92 MockURLRequestJob(net::URLRequest* request,
93 net::NetworkDelegate* network_delegate, 93 net::NetworkDelegate* network_delegate,
94 const net::HttpResponseInfo& info) 94 const net::HttpResponseInfo& info)
95 : net::URLRequestJob(request, network_delegate), 95 : net::URLRequestJob(request, network_delegate),
96 response_code_(info.headers->response_code()), 96 response_code_(info.headers->response_code()),
97 has_response_info_(true), 97 has_response_info_(true),
98 response_info_(info) {} 98 response_info_(info) {}
99 99
100 protected: 100 protected:
101 virtual ~MockURLRequestJob() {} 101 virtual ~MockURLRequestJob() {}
102 virtual void Start() OVERRIDE { 102 virtual void Start() OVERRIDE {
103 NotifyHeadersComplete(); 103 NotifyHeadersComplete();
104 } 104 }
105 virtual int GetResponseCode() const OVERRIDE { 105 virtual int GetResponseCode() const OVERRIDE {
106 return response_code_; 106 return response_code_;
107 } 107 }
108 virtual void GetResponseInfo( 108 virtual void GetResponseInfo(
109 net::HttpResponseInfo* info) OVERRIDE { 109 net::HttpResponseInfo* info) OVERRIDE {
110 if (!has_response_info_) 110 if (!has_response_info_)
111 return; 111 return;
112 *info = response_info_; 112 *info = response_info_;
113 } 113 }
114 114
115 private: 115 private:
116 int response_code_; 116 int response_code_;
117 bool has_response_info_; 117 bool has_response_info_;
118 net::HttpResponseInfo response_info_; 118 net::HttpResponseInfo response_info_;
119 }; 119 };
120 120
121 class MockURLRequestJobFactory : public net::URLRequestJobFactory { 121 class MockURLRequestJobFactory : public net::URLRequestJobFactory {
122 public: 122 public:
123 MockURLRequestJobFactory() : job_(NULL) { 123 MockURLRequestJobFactory() : job_(NULL) {
124 } 124 }
125 125
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 } 157 }
158 158
159 virtual bool IsSafeRedirectTarget(const GURL& location) const OVERRIDE { 159 virtual bool IsSafeRedirectTarget(const GURL& location) const OVERRIDE {
160 return false; 160 return false;
161 } 161 }
162 162
163 private: 163 private:
164 mutable net::URLRequestJob* job_; 164 mutable net::URLRequestJob* job_;
165 }; 165 };
166 166
167 class MockURLRequest : public net::URLRequest {
168 public:
169 MockURLRequest(const GURL& url, net::URLRequestContext* context)
170 : net::URLRequest(url, net::DEFAULT_PRIORITY, NULL, context) {}
171
172
173 MockURLRequestDelegate delegate_;
174 };
175
176 static void SetUpTestCase() { 167 static void SetUpTestCase() {
177 io_thread_.reset(new base::Thread("AppCacheRequestHandlerTest Thread")); 168 io_thread_.reset(new base::Thread("AppCacheRequestHandlerTest Thread"));
178 base::Thread::Options options(base::MessageLoop::TYPE_IO, 0); 169 base::Thread::Options options(base::MessageLoop::TYPE_IO, 0);
179 io_thread_->StartWithOptions(options); 170 io_thread_->StartWithOptions(options);
180 } 171 }
181 172
182 static void TearDownTestCase() { 173 static void TearDownTestCase() {
183 io_thread_.reset(NULL); 174 io_thread_.reset(NULL);
184 } 175 }
185 176
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 task_stack_.pop(); 247 task_stack_.pop();
257 } 248 }
258 249
259 // MainResource_Miss -------------------------------------------------- 250 // MainResource_Miss --------------------------------------------------
260 251
261 void MainResource_Miss() { 252 void MainResource_Miss() {
262 PushNextTask( 253 PushNextTask(
263 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Miss, 254 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Miss,
264 base::Unretained(this))); 255 base::Unretained(this)));
265 256
266 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); 257 request_ = empty_context_.CreateRequest(
258 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
267 handler_.reset(host_->CreateRequestHandler(request_.get(), 259 handler_.reset(host_->CreateRequestHandler(request_.get(),
268 RESOURCE_TYPE_MAIN_FRAME)); 260 RESOURCE_TYPE_MAIN_FRAME));
269 EXPECT_TRUE(handler_.get()); 261 EXPECT_TRUE(handler_.get());
270 262
271 job_ = handler_->MaybeLoadResource(request_.get(), 263 job_ = handler_->MaybeLoadResource(request_.get(),
272 request_->context()->network_delegate()); 264 request_->context()->network_delegate());
273 EXPECT_TRUE(job_.get()); 265 EXPECT_TRUE(job_.get());
274 EXPECT_TRUE(job_->is_waiting()); 266 EXPECT_TRUE(job_->is_waiting());
275 267
276 // We have to wait for completion of storage->FindResponseForMainRequest. 268 // We have to wait for completion of storage->FindResponseForMainRequest.
(...skipping 26 matching lines...) Expand all
303 TestFinished(); 295 TestFinished();
304 } 296 }
305 297
306 // MainResource_Hit -------------------------------------------------- 298 // MainResource_Hit --------------------------------------------------
307 299
308 void MainResource_Hit() { 300 void MainResource_Hit() {
309 PushNextTask( 301 PushNextTask(
310 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Hit, 302 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Hit,
311 base::Unretained(this))); 303 base::Unretained(this)));
312 304
313 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); 305 request_ = empty_context_.CreateRequest(
306 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
314 handler_.reset(host_->CreateRequestHandler(request_.get(), 307 handler_.reset(host_->CreateRequestHandler(request_.get(),
315 RESOURCE_TYPE_MAIN_FRAME)); 308 RESOURCE_TYPE_MAIN_FRAME));
316 EXPECT_TRUE(handler_.get()); 309 EXPECT_TRUE(handler_.get());
317 310
318 mock_storage()->SimulateFindMainResource( 311 mock_storage()->SimulateFindMainResource(
319 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 312 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
320 GURL(), AppCacheEntry(), 313 GURL(), AppCacheEntry(),
321 1, 2, GURL("http://blah/manifest/")); 314 1, 2, GURL("http://blah/manifest/"));
322 315
323 job_ = handler_->MaybeLoadResource(request_.get(), 316 job_ = handler_->MaybeLoadResource(request_.get(),
(...skipping 27 matching lines...) Expand all
351 TestFinished(); 344 TestFinished();
352 } 345 }
353 346
354 // MainResource_Fallback -------------------------------------------------- 347 // MainResource_Fallback --------------------------------------------------
355 348
356 void MainResource_Fallback() { 349 void MainResource_Fallback() {
357 PushNextTask( 350 PushNextTask(
358 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Fallback, 351 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Fallback,
359 base::Unretained(this))); 352 base::Unretained(this)));
360 353
361 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); 354 request_ = empty_context_.CreateRequest(
355 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
362 handler_.reset(host_->CreateRequestHandler(request_.get(), 356 handler_.reset(host_->CreateRequestHandler(request_.get(),
363 RESOURCE_TYPE_MAIN_FRAME)); 357 RESOURCE_TYPE_MAIN_FRAME));
364 EXPECT_TRUE(handler_.get()); 358 EXPECT_TRUE(handler_.get());
365 359
366 mock_storage()->SimulateFindMainResource( 360 mock_storage()->SimulateFindMainResource(
367 AppCacheEntry(), 361 AppCacheEntry(),
368 GURL("http://blah/fallbackurl"), 362 GURL("http://blah/fallbackurl"),
369 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 363 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
370 1, 2, GURL("http://blah/manifest/")); 364 1, 2, GURL("http://blah/manifest/"));
371 365
(...skipping 16 matching lines...) Expand all
388 // All our simulation needs to satisfy are the following two DCHECKs 382 // All our simulation needs to satisfy are the following two DCHECKs
389 DCHECK(request_->status().is_success()); 383 DCHECK(request_->status().is_success());
390 DCHECK_EQ(response_code, request_->GetResponseCode()); 384 DCHECK_EQ(response_code, request_->GetResponseCode());
391 } 385 }
392 386
393 void SimulateResponseInfo(const net::HttpResponseInfo& info) { 387 void SimulateResponseInfo(const net::HttpResponseInfo& info) {
394 job_factory_->SetJob( 388 job_factory_->SetJob(
395 new MockURLRequestJob( 389 new MockURLRequestJob(
396 request_.get(), 390 request_.get(),
397 request_->context()->network_delegate(), info)); 391 request_->context()->network_delegate(), info));
398 request_->set_delegate(&request_->delegate_);
399 request_->Start(); 392 request_->Start();
400 } 393 }
401 394
402 void Verify_MainResource_Fallback() { 395 void Verify_MainResource_Fallback() {
403 EXPECT_FALSE(job_->is_waiting()); 396 EXPECT_FALSE(job_->is_waiting());
404 EXPECT_TRUE(job_->is_delivering_network_response()); 397 EXPECT_TRUE(job_->is_delivering_network_response());
405 398
406 // When the request is restarted, the existing job is dropped so a 399 // When the request is restarted, the existing job is dropped so a
407 // real network job gets created. We expect NULL here which will cause 400 // real network job gets created. We expect NULL here which will cause
408 // the net library to create a real job. 401 // the net library to create a real job.
(...skipping 23 matching lines...) Expand all
432 TestFinished(); 425 TestFinished();
433 } 426 }
434 427
435 // MainResource_FallbackOverride -------------------------------------------- 428 // MainResource_FallbackOverride --------------------------------------------
436 429
437 void MainResource_FallbackOverride() { 430 void MainResource_FallbackOverride() {
438 PushNextTask(base::Bind( 431 PushNextTask(base::Bind(
439 &AppCacheRequestHandlerTest::Verify_MainResource_FallbackOverride, 432 &AppCacheRequestHandlerTest::Verify_MainResource_FallbackOverride,
440 base::Unretained(this))); 433 base::Unretained(this)));
441 434
442 request_.reset(new MockURLRequest(GURL("http://blah/fallback-override"), 435 request_ = empty_context_.CreateRequest(
443 &empty_context_)); 436 GURL("http://blah/fallback-override"), net::DEFAULT_PRIORITY,
437 &delegate_, NULL);
444 handler_.reset(host_->CreateRequestHandler(request_.get(), 438 handler_.reset(host_->CreateRequestHandler(request_.get(),
445 RESOURCE_TYPE_MAIN_FRAME)); 439 RESOURCE_TYPE_MAIN_FRAME));
446 EXPECT_TRUE(handler_.get()); 440 EXPECT_TRUE(handler_.get());
447 441
448 mock_storage()->SimulateFindMainResource( 442 mock_storage()->SimulateFindMainResource(
449 AppCacheEntry(), 443 AppCacheEntry(),
450 GURL("http://blah/fallbackurl"), 444 GURL("http://blah/fallbackurl"),
451 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 445 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
452 1, 2, GURL("http://blah/manifest/")); 446 1, 2, GURL("http://blah/manifest/"));
453 447
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 job_ = handler_->MaybeLoadFallbackForResponse( 479 job_ = handler_->MaybeLoadFallbackForResponse(
486 request_.get(), request_->context()->network_delegate()); 480 request_.get(), request_->context()->network_delegate());
487 EXPECT_FALSE(job_.get()); 481 EXPECT_FALSE(job_.get());
488 482
489 TestFinished(); 483 TestFinished();
490 } 484 }
491 485
492 // SubResource_Miss_WithNoCacheSelected ---------------------------------- 486 // SubResource_Miss_WithNoCacheSelected ----------------------------------
493 487
494 void SubResource_Miss_WithNoCacheSelected() { 488 void SubResource_Miss_WithNoCacheSelected() {
495 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); 489 request_ = empty_context_.CreateRequest(
490 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
496 handler_.reset(host_->CreateRequestHandler(request_.get(), 491 handler_.reset(host_->CreateRequestHandler(request_.get(),
497 RESOURCE_TYPE_SUB_RESOURCE)); 492 RESOURCE_TYPE_SUB_RESOURCE));
498 493
499 // We avoid creating handler when possible, sub-resource requests are not 494 // We avoid creating handler when possible, sub-resource requests are not
500 // subject to retrieval from an appcache when there's no associated cache. 495 // subject to retrieval from an appcache when there's no associated cache.
501 EXPECT_FALSE(handler_.get()); 496 EXPECT_FALSE(handler_.get());
502 497
503 TestFinished(); 498 TestFinished();
504 } 499 }
505 500
506 // SubResource_Miss_WithCacheSelected ---------------------------------- 501 // SubResource_Miss_WithCacheSelected ----------------------------------
507 502
508 void SubResource_Miss_WithCacheSelected() { 503 void SubResource_Miss_WithCacheSelected() {
509 // A sub-resource load where the resource is not in an appcache, or 504 // A sub-resource load where the resource is not in an appcache, or
510 // in a network or fallback namespace, should result in a failed request. 505 // in a network or fallback namespace, should result in a failed request.
511 host_->AssociateCompleteCache(MakeNewCache()); 506 host_->AssociateCompleteCache(MakeNewCache());
512 507
513 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); 508 request_ = empty_context_.CreateRequest(
509 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
514 handler_.reset(host_->CreateRequestHandler(request_.get(), 510 handler_.reset(host_->CreateRequestHandler(request_.get(),
515 RESOURCE_TYPE_SUB_RESOURCE)); 511 RESOURCE_TYPE_SUB_RESOURCE));
516 EXPECT_TRUE(handler_.get()); 512 EXPECT_TRUE(handler_.get());
517 513
518 job_ = handler_->MaybeLoadResource(request_.get(), 514 job_ = handler_->MaybeLoadResource(request_.get(),
519 request_->context()->network_delegate()); 515 request_->context()->network_delegate());
520 EXPECT_TRUE(job_.get()); 516 EXPECT_TRUE(job_.get());
521 EXPECT_TRUE(job_->is_delivering_error_response()); 517 EXPECT_TRUE(job_->is_delivering_error_response());
522 518
523 AppCacheURLRequestJob* fallback_job; 519 AppCacheURLRequestJob* fallback_job;
(...skipping 10 matching lines...) Expand all
534 } 530 }
535 531
536 // SubResource_Miss_WithWaitForCacheSelection ----------------------------- 532 // SubResource_Miss_WithWaitForCacheSelection -----------------------------
537 533
538 void SubResource_Miss_WithWaitForCacheSelection() { 534 void SubResource_Miss_WithWaitForCacheSelection() {
539 // Precondition, the host is waiting on cache selection. 535 // Precondition, the host is waiting on cache selection.
540 scoped_refptr<AppCache> cache(MakeNewCache()); 536 scoped_refptr<AppCache> cache(MakeNewCache());
541 host_->pending_selected_cache_id_ = cache->cache_id(); 537 host_->pending_selected_cache_id_ = cache->cache_id();
542 host_->set_preferred_manifest_url(cache->owning_group()->manifest_url()); 538 host_->set_preferred_manifest_url(cache->owning_group()->manifest_url());
543 539
544 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); 540 request_ = empty_context_.CreateRequest(
541 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
545 handler_.reset(host_->CreateRequestHandler(request_.get(), 542 handler_.reset(host_->CreateRequestHandler(request_.get(),
546 RESOURCE_TYPE_SUB_RESOURCE)); 543 RESOURCE_TYPE_SUB_RESOURCE));
547 EXPECT_TRUE(handler_.get()); 544 EXPECT_TRUE(handler_.get());
548 job_ = handler_->MaybeLoadResource(request_.get(), 545 job_ = handler_->MaybeLoadResource(request_.get(),
549 request_->context()->network_delegate()); 546 request_->context()->network_delegate());
550 EXPECT_TRUE(job_.get()); 547 EXPECT_TRUE(job_.get());
551 EXPECT_TRUE(job_->is_waiting()); 548 EXPECT_TRUE(job_->is_waiting());
552 549
553 host_->FinishCacheSelection(cache.get(), NULL); 550 host_->FinishCacheSelection(cache.get(), NULL);
554 EXPECT_FALSE(job_->is_waiting()); 551 EXPECT_FALSE(job_->is_waiting());
(...skipping 13 matching lines...) Expand all
568 } 565 }
569 566
570 // SubResource_Hit ----------------------------- 567 // SubResource_Hit -----------------------------
571 568
572 void SubResource_Hit() { 569 void SubResource_Hit() {
573 host_->AssociateCompleteCache(MakeNewCache()); 570 host_->AssociateCompleteCache(MakeNewCache());
574 571
575 mock_storage()->SimulateFindSubResource( 572 mock_storage()->SimulateFindSubResource(
576 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); 573 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false);
577 574
578 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); 575 request_ = empty_context_.CreateRequest(
576 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
579 handler_.reset(host_->CreateRequestHandler(request_.get(), 577 handler_.reset(host_->CreateRequestHandler(request_.get(),
580 RESOURCE_TYPE_SUB_RESOURCE)); 578 RESOURCE_TYPE_SUB_RESOURCE));
581 EXPECT_TRUE(handler_.get()); 579 EXPECT_TRUE(handler_.get());
582 job_ = handler_->MaybeLoadResource(request_.get(), 580 job_ = handler_->MaybeLoadResource(request_.get(),
583 request_->context()->network_delegate()); 581 request_->context()->network_delegate());
584 EXPECT_TRUE(job_.get()); 582 EXPECT_TRUE(job_.get());
585 EXPECT_TRUE(job_->is_delivering_appcache_response()); 583 EXPECT_TRUE(job_->is_delivering_appcache_response());
586 584
587 AppCacheURLRequestJob* fallback_job; 585 AppCacheURLRequestJob* fallback_job;
588 fallback_job = handler_->MaybeLoadFallbackForRedirect( 586 fallback_job = handler_->MaybeLoadFallbackForRedirect(
(...skipping 11 matching lines...) Expand all
600 // SubResource_RedirectFallback ----------------------------- 598 // SubResource_RedirectFallback -----------------------------
601 599
602 void SubResource_RedirectFallback() { 600 void SubResource_RedirectFallback() {
603 // Redirects to resources in the a different origin are subject to 601 // Redirects to resources in the a different origin are subject to
604 // fallback namespaces. 602 // fallback namespaces.
605 host_->AssociateCompleteCache(MakeNewCache()); 603 host_->AssociateCompleteCache(MakeNewCache());
606 604
607 mock_storage()->SimulateFindSubResource( 605 mock_storage()->SimulateFindSubResource(
608 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); 606 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false);
609 607
610 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); 608 request_ = empty_context_.CreateRequest(
609 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
611 handler_.reset(host_->CreateRequestHandler(request_.get(), 610 handler_.reset(host_->CreateRequestHandler(request_.get(),
612 RESOURCE_TYPE_SUB_RESOURCE)); 611 RESOURCE_TYPE_SUB_RESOURCE));
613 EXPECT_TRUE(handler_.get()); 612 EXPECT_TRUE(handler_.get());
614 job_ = handler_->MaybeLoadResource(request_.get(), 613 job_ = handler_->MaybeLoadResource(request_.get(),
615 request_->context()->network_delegate()); 614 request_->context()->network_delegate());
616 EXPECT_FALSE(job_.get()); 615 EXPECT_FALSE(job_.get());
617 616
618 job_ = handler_->MaybeLoadFallbackForRedirect( 617 job_ = handler_->MaybeLoadFallbackForRedirect(
619 request_.get(), 618 request_.get(),
620 request_->context()->network_delegate(), 619 request_->context()->network_delegate(),
(...skipping 12 matching lines...) Expand all
633 // SubResource_NoRedirectFallback ----------------------------- 632 // SubResource_NoRedirectFallback -----------------------------
634 633
635 void SubResource_NoRedirectFallback() { 634 void SubResource_NoRedirectFallback() {
636 // Redirects to resources in the same-origin are not subject to 635 // Redirects to resources in the same-origin are not subject to
637 // fallback namespaces. 636 // fallback namespaces.
638 host_->AssociateCompleteCache(MakeNewCache()); 637 host_->AssociateCompleteCache(MakeNewCache());
639 638
640 mock_storage()->SimulateFindSubResource( 639 mock_storage()->SimulateFindSubResource(
641 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); 640 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false);
642 641
643 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); 642 request_ = empty_context_.CreateRequest(
643 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
644 handler_.reset(host_->CreateRequestHandler(request_.get(), 644 handler_.reset(host_->CreateRequestHandler(request_.get(),
645 RESOURCE_TYPE_SUB_RESOURCE)); 645 RESOURCE_TYPE_SUB_RESOURCE));
646 EXPECT_TRUE(handler_.get()); 646 EXPECT_TRUE(handler_.get());
647 job_ = handler_->MaybeLoadResource(request_.get(), 647 job_ = handler_->MaybeLoadResource(request_.get(),
648 request_->context()->network_delegate()); 648 request_->context()->network_delegate());
649 EXPECT_FALSE(job_.get()); 649 EXPECT_FALSE(job_.get());
650 650
651 AppCacheURLRequestJob* fallback_job; 651 AppCacheURLRequestJob* fallback_job;
652 fallback_job = handler_->MaybeLoadFallbackForRedirect( 652 fallback_job = handler_->MaybeLoadFallbackForRedirect(
653 request_.get(), 653 request_.get(),
(...skipping 13 matching lines...) Expand all
667 667
668 void SubResource_Network() { 668 void SubResource_Network() {
669 // A sub-resource load where the resource is in a network namespace, 669 // A sub-resource load where the resource is in a network namespace,
670 // should result in the system using a 'real' job to do the network 670 // should result in the system using a 'real' job to do the network
671 // retrieval. 671 // retrieval.
672 host_->AssociateCompleteCache(MakeNewCache()); 672 host_->AssociateCompleteCache(MakeNewCache());
673 673
674 mock_storage()->SimulateFindSubResource( 674 mock_storage()->SimulateFindSubResource(
675 AppCacheEntry(), AppCacheEntry(), true); 675 AppCacheEntry(), AppCacheEntry(), true);
676 676
677 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); 677 request_ = empty_context_.CreateRequest(
678 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
678 handler_.reset(host_->CreateRequestHandler(request_.get(), 679 handler_.reset(host_->CreateRequestHandler(request_.get(),
679 RESOURCE_TYPE_SUB_RESOURCE)); 680 RESOURCE_TYPE_SUB_RESOURCE));
680 EXPECT_TRUE(handler_.get()); 681 EXPECT_TRUE(handler_.get());
681 job_ = handler_->MaybeLoadResource(request_.get(), 682 job_ = handler_->MaybeLoadResource(request_.get(),
682 request_->context()->network_delegate()); 683 request_->context()->network_delegate());
683 EXPECT_FALSE(job_.get()); 684 EXPECT_FALSE(job_.get());
684 685
685 AppCacheURLRequestJob* fallback_job; 686 AppCacheURLRequestJob* fallback_job;
686 fallback_job = handler_->MaybeLoadFallbackForRedirect( 687 fallback_job = handler_->MaybeLoadFallbackForRedirect(
687 request_.get(), 688 request_.get(),
688 request_->context()->network_delegate(), 689 request_->context()->network_delegate(),
689 GURL("http://blah/redirect")); 690 GURL("http://blah/redirect"));
690 EXPECT_FALSE(fallback_job); 691 EXPECT_FALSE(fallback_job);
691 fallback_job = handler_->MaybeLoadFallbackForResponse( 692 fallback_job = handler_->MaybeLoadFallbackForResponse(
692 request_.get(), request_->context()->network_delegate()); 693 request_.get(), request_->context()->network_delegate());
693 EXPECT_FALSE(fallback_job); 694 EXPECT_FALSE(fallback_job);
694 695
695 TestFinished(); 696 TestFinished();
696 } 697 }
697 698
698 // DestroyedHost ----------------------------- 699 // DestroyedHost -----------------------------
699 700
700 void DestroyedHost() { 701 void DestroyedHost() {
701 host_->AssociateCompleteCache(MakeNewCache()); 702 host_->AssociateCompleteCache(MakeNewCache());
702 703
703 mock_storage()->SimulateFindSubResource( 704 mock_storage()->SimulateFindSubResource(
704 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); 705 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false);
705 706
706 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); 707 request_ = empty_context_.CreateRequest(
708 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
707 handler_.reset(host_->CreateRequestHandler(request_.get(), 709 handler_.reset(host_->CreateRequestHandler(request_.get(),
708 RESOURCE_TYPE_SUB_RESOURCE)); 710 RESOURCE_TYPE_SUB_RESOURCE));
709 EXPECT_TRUE(handler_.get()); 711 EXPECT_TRUE(handler_.get());
710 712
711 backend_impl_->UnregisterHost(1); 713 backend_impl_->UnregisterHost(1);
712 host_ = NULL; 714 host_ = NULL;
713 715
714 EXPECT_FALSE(handler_->MaybeLoadResource( 716 EXPECT_FALSE(handler_->MaybeLoadResource(
715 request_.get(), request_->context()->network_delegate())); 717 request_.get(), request_->context()->network_delegate()));
716 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( 718 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect(
717 request_.get(), 719 request_.get(),
718 request_->context()->network_delegate(), 720 request_->context()->network_delegate(),
719 GURL("http://blah/redirect"))); 721 GURL("http://blah/redirect")));
720 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( 722 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(
721 request_.get(), request_->context()->network_delegate())); 723 request_.get(), request_->context()->network_delegate()));
722 724
723 TestFinished(); 725 TestFinished();
724 } 726 }
725 727
726 // DestroyedHostWithWaitingJob ----------------------------- 728 // DestroyedHostWithWaitingJob -----------------------------
727 729
728 void DestroyedHostWithWaitingJob() { 730 void DestroyedHostWithWaitingJob() {
729 // Precondition, the host is waiting on cache selection. 731 // Precondition, the host is waiting on cache selection.
730 host_->pending_selected_cache_id_ = 1; 732 host_->pending_selected_cache_id_ = 1;
731 733
732 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); 734 request_ = empty_context_.CreateRequest(
735 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
733 handler_.reset(host_->CreateRequestHandler(request_.get(), 736 handler_.reset(host_->CreateRequestHandler(request_.get(),
734 RESOURCE_TYPE_SUB_RESOURCE)); 737 RESOURCE_TYPE_SUB_RESOURCE));
735 EXPECT_TRUE(handler_.get()); 738 EXPECT_TRUE(handler_.get());
736 739
737 job_ = handler_->MaybeLoadResource(request_.get(), 740 job_ = handler_->MaybeLoadResource(request_.get(),
738 request_->context()->network_delegate()); 741 request_->context()->network_delegate());
739 EXPECT_TRUE(job_.get()); 742 EXPECT_TRUE(job_.get());
740 EXPECT_TRUE(job_->is_waiting()); 743 EXPECT_TRUE(job_->is_waiting());
741 744
742 backend_impl_->UnregisterHost(1); 745 backend_impl_->UnregisterHost(1);
(...skipping 11 matching lines...) Expand all
754 757
755 TestFinished(); 758 TestFinished();
756 } 759 }
757 760
758 // UnsupportedScheme ----------------------------- 761 // UnsupportedScheme -----------------------------
759 762
760 void UnsupportedScheme() { 763 void UnsupportedScheme() {
761 // Precondition, the host is waiting on cache selection. 764 // Precondition, the host is waiting on cache selection.
762 host_->pending_selected_cache_id_ = 1; 765 host_->pending_selected_cache_id_ = 1;
763 766
764 request_.reset(new MockURLRequest(GURL("ftp://blah/"), &empty_context_)); 767 request_ = empty_context_.CreateRequest(
768 GURL("ftp://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
765 handler_.reset(host_->CreateRequestHandler(request_.get(), 769 handler_.reset(host_->CreateRequestHandler(request_.get(),
766 RESOURCE_TYPE_SUB_RESOURCE)); 770 RESOURCE_TYPE_SUB_RESOURCE));
767 EXPECT_TRUE(handler_.get()); // we could redirect to http (conceivably) 771 EXPECT_TRUE(handler_.get()); // we could redirect to http (conceivably)
768 772
769 EXPECT_FALSE(handler_->MaybeLoadResource( 773 EXPECT_FALSE(handler_->MaybeLoadResource(
770 request_.get(), request_->context()->network_delegate())); 774 request_.get(), request_->context()->network_delegate()));
771 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( 775 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect(
772 request_.get(), 776 request_.get(),
773 request_->context()->network_delegate(), 777 request_->context()->network_delegate(),
774 GURL("ftp://blah/redirect"))); 778 GURL("ftp://blah/redirect")));
775 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse( 779 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(
776 request_.get(), request_->context()->network_delegate())); 780 request_.get(), request_->context()->network_delegate()));
777 781
778 TestFinished(); 782 TestFinished();
779 } 783 }
780 784
781 // CanceledRequest ----------------------------- 785 // CanceledRequest -----------------------------
782 786
783 void CanceledRequest() { 787 void CanceledRequest() {
784 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); 788 request_ = empty_context_.CreateRequest(
789 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
785 handler_.reset(host_->CreateRequestHandler(request_.get(), 790 handler_.reset(host_->CreateRequestHandler(request_.get(),
786 RESOURCE_TYPE_MAIN_FRAME)); 791 RESOURCE_TYPE_MAIN_FRAME));
787 EXPECT_TRUE(handler_.get()); 792 EXPECT_TRUE(handler_.get());
788 793
789 job_ = handler_->MaybeLoadResource(request_.get(), 794 job_ = handler_->MaybeLoadResource(request_.get(),
790 request_->context()->network_delegate()); 795 request_->context()->network_delegate());
791 EXPECT_TRUE(job_.get()); 796 EXPECT_TRUE(job_.get());
792 EXPECT_TRUE(job_->is_waiting()); 797 EXPECT_TRUE(job_->is_waiting());
793 EXPECT_FALSE(job_->has_been_started()); 798 EXPECT_FALSE(job_->has_been_started());
794 799
(...skipping 15 matching lines...) Expand all
810 void WorkerRequest() { 815 void WorkerRequest() {
811 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( 816 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType(
812 RESOURCE_TYPE_MAIN_FRAME)); 817 RESOURCE_TYPE_MAIN_FRAME));
813 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( 818 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType(
814 RESOURCE_TYPE_SUB_FRAME)); 819 RESOURCE_TYPE_SUB_FRAME));
815 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( 820 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType(
816 RESOURCE_TYPE_SHARED_WORKER)); 821 RESOURCE_TYPE_SHARED_WORKER));
817 EXPECT_FALSE(AppCacheRequestHandler::IsMainResourceType( 822 EXPECT_FALSE(AppCacheRequestHandler::IsMainResourceType(
818 RESOURCE_TYPE_WORKER)); 823 RESOURCE_TYPE_WORKER));
819 824
820 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); 825 request_ = empty_context_.CreateRequest(
826 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
821 827
822 const int kParentHostId = host_->host_id(); 828 const int kParentHostId = host_->host_id();
823 const int kWorkerHostId = 2; 829 const int kWorkerHostId = 2;
824 const int kAbandonedWorkerHostId = 3; 830 const int kAbandonedWorkerHostId = 3;
825 const int kNonExsitingHostId = 700; 831 const int kNonExsitingHostId = 700;
826 832
827 backend_impl_->RegisterHost(kWorkerHostId); 833 backend_impl_->RegisterHost(kWorkerHostId);
828 AppCacheHost* worker_host = backend_impl_->GetHost(kWorkerHostId); 834 AppCacheHost* worker_host = backend_impl_->GetHost(kWorkerHostId);
829 worker_host->SelectCacheForWorker(kParentHostId, kMockProcessId); 835 worker_host->SelectCacheForWorker(kParentHostId, kMockProcessId);
830 handler_.reset(worker_host->CreateRequestHandler( 836 handler_.reset(worker_host->CreateRequestHandler(
(...skipping 16 matching lines...) Expand all
847 TestFinished(); 853 TestFinished();
848 } 854 }
849 855
850 // MainResource_Blocked -------------------------------------------------- 856 // MainResource_Blocked --------------------------------------------------
851 857
852 void MainResource_Blocked() { 858 void MainResource_Blocked() {
853 PushNextTask( 859 PushNextTask(
854 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Blocked, 860 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Blocked,
855 base::Unretained(this))); 861 base::Unretained(this)));
856 862
857 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_)); 863 request_ = empty_context_.CreateRequest(
864 GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_, NULL);
858 handler_.reset(host_->CreateRequestHandler(request_.get(), 865 handler_.reset(host_->CreateRequestHandler(request_.get(),
859 RESOURCE_TYPE_MAIN_FRAME)); 866 RESOURCE_TYPE_MAIN_FRAME));
860 EXPECT_TRUE(handler_.get()); 867 EXPECT_TRUE(handler_.get());
861 868
862 mock_policy_->can_load_return_value_ = false; 869 mock_policy_->can_load_return_value_ = false;
863 mock_storage()->SimulateFindMainResource( 870 mock_storage()->SimulateFindMainResource(
864 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 871 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
865 GURL(), AppCacheEntry(), 872 GURL(), AppCacheEntry(),
866 1, 2, GURL("http://blah/manifest/")); 873 1, 2, GURL("http://blah/manifest/"));
867 874
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
909 916
910 scoped_ptr<base::WaitableEvent> test_finished_event_; 917 scoped_ptr<base::WaitableEvent> test_finished_event_;
911 std::stack<base::Closure> task_stack_; 918 std::stack<base::Closure> task_stack_;
912 scoped_ptr<MockAppCacheService> mock_service_; 919 scoped_ptr<MockAppCacheService> mock_service_;
913 scoped_ptr<AppCacheBackendImpl> backend_impl_; 920 scoped_ptr<AppCacheBackendImpl> backend_impl_;
914 scoped_ptr<MockFrontend> mock_frontend_; 921 scoped_ptr<MockFrontend> mock_frontend_;
915 scoped_ptr<MockAppCachePolicy> mock_policy_; 922 scoped_ptr<MockAppCachePolicy> mock_policy_;
916 AppCacheHost* host_; 923 AppCacheHost* host_;
917 net::URLRequestContext empty_context_; 924 net::URLRequestContext empty_context_;
918 scoped_ptr<MockURLRequestJobFactory> job_factory_; 925 scoped_ptr<MockURLRequestJobFactory> job_factory_;
919 scoped_ptr<MockURLRequest> request_; 926 MockURLRequestDelegate delegate_;
927 scoped_ptr<net::URLRequest> request_;
920 scoped_ptr<AppCacheRequestHandler> handler_; 928 scoped_ptr<AppCacheRequestHandler> handler_;
921 scoped_refptr<AppCacheURLRequestJob> job_; 929 scoped_refptr<AppCacheURLRequestJob> job_;
922 930
923 static scoped_ptr<base::Thread> io_thread_; 931 static scoped_ptr<base::Thread> io_thread_;
924 }; 932 };
925 933
926 // static 934 // static
927 scoped_ptr<base::Thread> AppCacheRequestHandlerTest::io_thread_; 935 scoped_ptr<base::Thread> AppCacheRequestHandlerTest::io_thread_;
928 936
929 TEST_F(AppCacheRequestHandlerTest, MainResource_Miss) { 937 TEST_F(AppCacheRequestHandlerTest, MainResource_Miss) {
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
994 1002
995 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) { 1003 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) {
996 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest); 1004 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest);
997 } 1005 }
998 1006
999 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) { 1007 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) {
1000 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked); 1008 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked);
1001 } 1009 }
1002 1010
1003 } // namespace content 1011 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698