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

Side by Side Diff: webkit/appcache/appcache_request_handler_unittest.cc

Issue 10559036: Added URLRequestContext to constructor for URLRequest. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Updated unittests Created 8 years, 6 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stack> 5 #include <stack>
6 #include <string> 6 #include <string>
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
11 #include "base/callback.h" 11 #include "base/callback.h"
12 #include "base/message_loop.h" 12 #include "base/message_loop.h"
13 #include "base/threading/thread.h" 13 #include "base/threading/thread.h"
14 #include "base/synchronization/waitable_event.h" 14 #include "base/synchronization/waitable_event.h"
15 #include "net/base/net_errors.h" 15 #include "net/base/net_errors.h"
16 #include "net/http/http_response_headers.h" 16 #include "net/http/http_response_headers.h"
17 #include "net/url_request/url_request.h" 17 #include "net/url_request/url_request.h"
18 #include "net/url_request/url_request_context.h"
18 #include "net/url_request/url_request_error_job.h" 19 #include "net/url_request/url_request_error_job.h"
19 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
20 #include "webkit/appcache/appcache.h" 21 #include "webkit/appcache/appcache.h"
21 #include "webkit/appcache/appcache_backend_impl.h" 22 #include "webkit/appcache/appcache_backend_impl.h"
22 #include "webkit/appcache/appcache_request_handler.h" 23 #include "webkit/appcache/appcache_request_handler.h"
23 #include "webkit/appcache/appcache_url_request_job.h" 24 #include "webkit/appcache/appcache_url_request_job.h"
24 #include "webkit/appcache/mock_appcache_policy.h" 25 #include "webkit/appcache/mock_appcache_policy.h"
25 #include "webkit/appcache/mock_appcache_service.h" 26 #include "webkit/appcache/mock_appcache_service.h"
26 27
27 namespace appcache { 28 namespace appcache {
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 } 101 }
101 102
102 private: 103 private:
103 int response_code_; 104 int response_code_;
104 bool has_response_info_; 105 bool has_response_info_;
105 net::HttpResponseInfo response_info_; 106 net::HttpResponseInfo response_info_;
106 }; 107 };
107 108
108 class MockURLRequest : public net::URLRequest { 109 class MockURLRequest : public net::URLRequest {
109 public: 110 public:
110 explicit MockURLRequest(const GURL& url) : net::URLRequest(url, NULL) {} 111 explicit MockURLRequest(const GURL& url, net::URLRequestContext* context) :
112 net::URLRequest(url, NULL, context) {
113 }
111 114
112 void SimulateResponseCode(int http_response_code) { 115 void SimulateResponseCode(int http_response_code) {
113 mock_factory_job_ = new MockURLRequestJob(this, http_response_code); 116 mock_factory_job_ = new MockURLRequestJob(this, http_response_code);
114 Start(); 117 Start();
115 DCHECK(!mock_factory_job_); 118 DCHECK(!mock_factory_job_);
116 // All our simulation needs to satisfy are the following two DCHECKs 119 // All our simulation needs to satisfy are the following two DCHECKs
117 DCHECK(status().is_success()); 120 DCHECK(status().is_success());
118 DCHECK_EQ(http_response_code, GetResponseCode()); 121 DCHECK_EQ(http_response_code, GetResponseCode());
119 } 122 }
120 123
(...skipping 26 matching lines...) Expand all
147 base::Thread::Options options(MessageLoop::TYPE_IO, 0); 150 base::Thread::Options options(MessageLoop::TYPE_IO, 0);
148 io_thread_->StartWithOptions(options); 151 io_thread_->StartWithOptions(options);
149 } 152 }
150 153
151 static void TearDownTestCase() { 154 static void TearDownTestCase() {
152 io_thread_.reset(NULL); 155 io_thread_.reset(NULL);
153 } 156 }
154 157
155 // Test harness -------------------------------------------------- 158 // Test harness --------------------------------------------------
156 159
157 AppCacheRequestHandlerTest() 160 AppCacheRequestHandlerTest() : host_(NULL), orig_http_factory_(NULL) {
erikwright (departed) 2012/06/19 21:06:22 why the whitespace change?
shalev 2012/06/20 20:13:12 Done.
158 : host_(NULL), orig_http_factory_(NULL) {
159 } 161 }
160 162
161 template <class Method> 163 template <class Method>
162 void RunTestOnIOThread(Method method) { 164 void RunTestOnIOThread(Method method) {
163 test_finished_event_ .reset(new base::WaitableEvent(false, false)); 165 test_finished_event_ .reset(new base::WaitableEvent(false, false));
164 io_thread_->message_loop()->PostTask( 166 io_thread_->message_loop()->PostTask(
165 FROM_HERE, 167 FROM_HERE,
166 base::Bind(&AppCacheRequestHandlerTest::MethodWrapper<Method>, 168 base::Bind(&AppCacheRequestHandlerTest::MethodWrapper<Method>,
167 base::Unretained(this), method)); 169 base::Unretained(this), method));
168 test_finished_event_->Wait(); 170 test_finished_event_->Wait();
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 task_stack_.pop(); 231 task_stack_.pop();
230 } 232 }
231 233
232 // MainResource_Miss -------------------------------------------------- 234 // MainResource_Miss --------------------------------------------------
233 235
234 void MainResource_Miss() { 236 void MainResource_Miss() {
235 PushNextTask( 237 PushNextTask(
236 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Miss, 238 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Miss,
237 base::Unretained(this))); 239 base::Unretained(this)));
238 240
239 request_.reset(new MockURLRequest(GURL("http://blah/"))); 241 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
240 handler_.reset(host_->CreateRequestHandler(request_.get(), 242 handler_.reset(host_->CreateRequestHandler(request_.get(),
241 ResourceType::MAIN_FRAME)); 243 ResourceType::MAIN_FRAME));
242 EXPECT_TRUE(handler_.get()); 244 EXPECT_TRUE(handler_.get());
243 245
244 job_ = handler_->MaybeLoadResource(request_.get()); 246 job_ = handler_->MaybeLoadResource(request_.get());
245 EXPECT_TRUE(job_.get()); 247 EXPECT_TRUE(job_.get());
246 EXPECT_TRUE(job_->is_waiting()); 248 EXPECT_TRUE(job_->is_waiting());
247 249
248 // We have to wait for completion of storage->FindResponseForMainRequest. 250 // We have to wait for completion of storage->FindResponseForMainRequest.
249 ScheduleNextTask(); 251 ScheduleNextTask();
(...skipping 22 matching lines...) Expand all
272 TestFinished(); 274 TestFinished();
273 } 275 }
274 276
275 // MainResource_Hit -------------------------------------------------- 277 // MainResource_Hit --------------------------------------------------
276 278
277 void MainResource_Hit() { 279 void MainResource_Hit() {
278 PushNextTask( 280 PushNextTask(
279 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Hit, 281 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Hit,
280 base::Unretained(this))); 282 base::Unretained(this)));
281 283
282 request_.reset(new MockURLRequest(GURL("http://blah/"))); 284 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
283 handler_.reset(host_->CreateRequestHandler(request_.get(), 285 handler_.reset(host_->CreateRequestHandler(request_.get(),
284 ResourceType::MAIN_FRAME)); 286 ResourceType::MAIN_FRAME));
285 EXPECT_TRUE(handler_.get()); 287 EXPECT_TRUE(handler_.get());
286 288
287 mock_storage()->SimulateFindMainResource( 289 mock_storage()->SimulateFindMainResource(
288 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 290 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
289 GURL(), AppCacheEntry(), 291 GURL(), AppCacheEntry(),
290 1, 2, GURL("http://blah/manifest/")); 292 1, 2, GURL("http://blah/manifest/"));
291 293
292 job_ = handler_->MaybeLoadResource(request_.get()); 294 job_ = handler_->MaybeLoadResource(request_.get());
(...skipping 25 matching lines...) Expand all
318 TestFinished(); 320 TestFinished();
319 } 321 }
320 322
321 // MainResource_Fallback -------------------------------------------------- 323 // MainResource_Fallback --------------------------------------------------
322 324
323 void MainResource_Fallback() { 325 void MainResource_Fallback() {
324 PushNextTask( 326 PushNextTask(
325 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Fallback, 327 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Fallback,
326 base::Unretained(this))); 328 base::Unretained(this)));
327 329
328 request_.reset(new MockURLRequest(GURL("http://blah/"))); 330 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
329 handler_.reset(host_->CreateRequestHandler(request_.get(), 331 handler_.reset(host_->CreateRequestHandler(request_.get(),
330 ResourceType::MAIN_FRAME)); 332 ResourceType::MAIN_FRAME));
331 EXPECT_TRUE(handler_.get()); 333 EXPECT_TRUE(handler_.get());
332 334
333 mock_storage()->SimulateFindMainResource( 335 mock_storage()->SimulateFindMainResource(
334 AppCacheEntry(), 336 AppCacheEntry(),
335 GURL("http://blah/fallbackurl"), 337 GURL("http://blah/fallbackurl"),
336 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 338 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
337 1, 2, GURL("http://blah/manifest/")); 339 1, 2, GURL("http://blah/manifest/"));
338 340
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 TestFinished(); 377 TestFinished();
376 } 378 }
377 379
378 // MainResource_FallbackOverride -------------------------------------------- 380 // MainResource_FallbackOverride --------------------------------------------
379 381
380 void MainResource_FallbackOverride() { 382 void MainResource_FallbackOverride() {
381 PushNextTask(base::Bind( 383 PushNextTask(base::Bind(
382 &AppCacheRequestHandlerTest::Verify_MainResource_FallbackOverride, 384 &AppCacheRequestHandlerTest::Verify_MainResource_FallbackOverride,
383 base::Unretained(this))); 385 base::Unretained(this)));
384 386
385 request_.reset(new MockURLRequest(GURL("http://blah/fallback-override"))); 387 request_.reset(new MockURLRequest(GURL("http://blah/fallback-override"),
388 &empty_context_));
386 handler_.reset(host_->CreateRequestHandler(request_.get(), 389 handler_.reset(host_->CreateRequestHandler(request_.get(),
387 ResourceType::MAIN_FRAME)); 390 ResourceType::MAIN_FRAME));
388 EXPECT_TRUE(handler_.get()); 391 EXPECT_TRUE(handler_.get());
389 392
390 mock_storage()->SimulateFindMainResource( 393 mock_storage()->SimulateFindMainResource(
391 AppCacheEntry(), 394 AppCacheEntry(),
392 GURL("http://blah/fallbackurl"), 395 GURL("http://blah/fallbackurl"),
393 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 396 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
394 1, 2, GURL("http://blah/manifest/")); 397 1, 2, GURL("http://blah/manifest/"));
395 398
(...skipping 28 matching lines...) Expand all
424 427
425 job_ = handler_->MaybeLoadFallbackForResponse(request_.get()); 428 job_ = handler_->MaybeLoadFallbackForResponse(request_.get());
426 EXPECT_FALSE(job_); 429 EXPECT_FALSE(job_);
427 430
428 TestFinished(); 431 TestFinished();
429 } 432 }
430 433
431 // SubResource_Miss_WithNoCacheSelected ---------------------------------- 434 // SubResource_Miss_WithNoCacheSelected ----------------------------------
432 435
433 void SubResource_Miss_WithNoCacheSelected() { 436 void SubResource_Miss_WithNoCacheSelected() {
434 request_.reset(new MockURLRequest(GURL("http://blah/"))); 437 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
435 handler_.reset(host_->CreateRequestHandler(request_.get(), 438 handler_.reset(host_->CreateRequestHandler(request_.get(),
436 ResourceType::SUB_RESOURCE)); 439 ResourceType::SUB_RESOURCE));
437 440
438 // We avoid creating handler when possible, sub-resource requests are not 441 // We avoid creating handler when possible, sub-resource requests are not
439 // subject to retrieval from an appcache when there's no associated cache. 442 // subject to retrieval from an appcache when there's no associated cache.
440 EXPECT_FALSE(handler_.get()); 443 EXPECT_FALSE(handler_.get());
441 444
442 TestFinished(); 445 TestFinished();
443 } 446 }
444 447
445 // SubResource_Miss_WithCacheSelected ---------------------------------- 448 // SubResource_Miss_WithCacheSelected ----------------------------------
446 449
447 void SubResource_Miss_WithCacheSelected() { 450 void SubResource_Miss_WithCacheSelected() {
448 // A sub-resource load where the resource is not in an appcache, or 451 // A sub-resource load where the resource is not in an appcache, or
449 // in a network or fallback namespace, should result in a failed request. 452 // in a network or fallback namespace, should result in a failed request.
450 host_->AssociateCompleteCache(MakeNewCache()); 453 host_->AssociateCompleteCache(MakeNewCache());
451 454
452 request_.reset(new MockURLRequest(GURL("http://blah/"))); 455 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
453 handler_.reset(host_->CreateRequestHandler(request_.get(), 456 handler_.reset(host_->CreateRequestHandler(request_.get(),
454 ResourceType::SUB_RESOURCE)); 457 ResourceType::SUB_RESOURCE));
455 EXPECT_TRUE(handler_.get()); 458 EXPECT_TRUE(handler_.get());
456 459
457 job_ = handler_->MaybeLoadResource(request_.get()); 460 job_ = handler_->MaybeLoadResource(request_.get());
458 EXPECT_TRUE(job_.get()); 461 EXPECT_TRUE(job_.get());
459 EXPECT_TRUE(job_->is_delivering_error_response()); 462 EXPECT_TRUE(job_->is_delivering_error_response());
460 463
461 AppCacheURLRequestJob* fallback_job; 464 AppCacheURLRequestJob* fallback_job;
462 fallback_job = handler_->MaybeLoadFallbackForRedirect( 465 fallback_job = handler_->MaybeLoadFallbackForRedirect(
463 request_.get(), GURL("http://blah/redirect")); 466 request_.get(), GURL("http://blah/redirect"));
464 EXPECT_FALSE(fallback_job); 467 EXPECT_FALSE(fallback_job);
465 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); 468 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
466 EXPECT_FALSE(fallback_job); 469 EXPECT_FALSE(fallback_job);
467 470
468 TestFinished(); 471 TestFinished();
469 } 472 }
470 473
471 // SubResource_Miss_WithWaitForCacheSelection ----------------------------- 474 // SubResource_Miss_WithWaitForCacheSelection -----------------------------
472 475
473 void SubResource_Miss_WithWaitForCacheSelection() { 476 void SubResource_Miss_WithWaitForCacheSelection() {
474 // Precondition, the host is waiting on cache selection. 477 // Precondition, the host is waiting on cache selection.
475 scoped_refptr<AppCache> cache(MakeNewCache()); 478 scoped_refptr<AppCache> cache(MakeNewCache());
476 host_->pending_selected_cache_id_ = cache->cache_id(); 479 host_->pending_selected_cache_id_ = cache->cache_id();
477 host_->set_preferred_manifest_url(cache->owning_group()->manifest_url()); 480 host_->set_preferred_manifest_url(cache->owning_group()->manifest_url());
478 481
479 request_.reset(new MockURLRequest(GURL("http://blah/"))); 482 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
480 handler_.reset(host_->CreateRequestHandler(request_.get(), 483 handler_.reset(host_->CreateRequestHandler(request_.get(),
481 ResourceType::SUB_RESOURCE)); 484 ResourceType::SUB_RESOURCE));
482 EXPECT_TRUE(handler_.get()); 485 EXPECT_TRUE(handler_.get());
483 job_ = handler_->MaybeLoadResource(request_.get()); 486 job_ = handler_->MaybeLoadResource(request_.get());
484 EXPECT_TRUE(job_.get()); 487 EXPECT_TRUE(job_.get());
485 EXPECT_TRUE(job_->is_waiting()); 488 EXPECT_TRUE(job_->is_waiting());
486 489
487 host_->FinishCacheSelection(cache, NULL); 490 host_->FinishCacheSelection(cache, NULL);
488 EXPECT_FALSE(job_->is_waiting()); 491 EXPECT_FALSE(job_->is_waiting());
489 EXPECT_TRUE(job_->is_delivering_error_response()); 492 EXPECT_TRUE(job_->is_delivering_error_response());
490 493
491 AppCacheURLRequestJob* fallback_job; 494 AppCacheURLRequestJob* fallback_job;
492 fallback_job = handler_->MaybeLoadFallbackForRedirect( 495 fallback_job = handler_->MaybeLoadFallbackForRedirect(
493 request_.get(), GURL("http://blah/redirect")); 496 request_.get(), GURL("http://blah/redirect"));
494 EXPECT_FALSE(fallback_job); 497 EXPECT_FALSE(fallback_job);
495 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); 498 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
496 EXPECT_FALSE(fallback_job); 499 EXPECT_FALSE(fallback_job);
497 500
498 TestFinished(); 501 TestFinished();
499 } 502 }
500 503
501 // SubResource_Hit ----------------------------- 504 // SubResource_Hit -----------------------------
502 505
503 void SubResource_Hit() { 506 void SubResource_Hit() {
504 host_->AssociateCompleteCache(MakeNewCache()); 507 host_->AssociateCompleteCache(MakeNewCache());
505 508
506 mock_storage()->SimulateFindSubResource( 509 mock_storage()->SimulateFindSubResource(
507 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); 510 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false);
508 511
509 request_.reset(new MockURLRequest(GURL("http://blah/"))); 512 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
510 handler_.reset(host_->CreateRequestHandler(request_.get(), 513 handler_.reset(host_->CreateRequestHandler(request_.get(),
511 ResourceType::SUB_RESOURCE)); 514 ResourceType::SUB_RESOURCE));
512 EXPECT_TRUE(handler_.get()); 515 EXPECT_TRUE(handler_.get());
513 job_ = handler_->MaybeLoadResource(request_.get()); 516 job_ = handler_->MaybeLoadResource(request_.get());
514 EXPECT_TRUE(job_.get()); 517 EXPECT_TRUE(job_.get());
515 EXPECT_TRUE(job_->is_delivering_appcache_response()); 518 EXPECT_TRUE(job_->is_delivering_appcache_response());
516 519
517 AppCacheURLRequestJob* fallback_job; 520 AppCacheURLRequestJob* fallback_job;
518 fallback_job = handler_->MaybeLoadFallbackForRedirect( 521 fallback_job = handler_->MaybeLoadFallbackForRedirect(
519 request_.get(), GURL("http://blah/redirect")); 522 request_.get(), GURL("http://blah/redirect"));
520 EXPECT_FALSE(fallback_job); 523 EXPECT_FALSE(fallback_job);
521 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); 524 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
522 EXPECT_FALSE(fallback_job); 525 EXPECT_FALSE(fallback_job);
523 526
524 TestFinished(); 527 TestFinished();
525 } 528 }
526 529
527 // SubResource_RedirectFallback ----------------------------- 530 // SubResource_RedirectFallback -----------------------------
528 531
529 void SubResource_RedirectFallback() { 532 void SubResource_RedirectFallback() {
530 // Redirects to resources in the a different origin are subject to 533 // Redirects to resources in the a different origin are subject to
531 // fallback namespaces. 534 // fallback namespaces.
532 host_->AssociateCompleteCache(MakeNewCache()); 535 host_->AssociateCompleteCache(MakeNewCache());
533 536
534 mock_storage()->SimulateFindSubResource( 537 mock_storage()->SimulateFindSubResource(
535 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); 538 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false);
536 539
537 request_.reset(new MockURLRequest(GURL("http://blah/"))); 540 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
538 handler_.reset(host_->CreateRequestHandler(request_.get(), 541 handler_.reset(host_->CreateRequestHandler(request_.get(),
539 ResourceType::SUB_RESOURCE)); 542 ResourceType::SUB_RESOURCE));
540 EXPECT_TRUE(handler_.get()); 543 EXPECT_TRUE(handler_.get());
541 job_ = handler_->MaybeLoadResource(request_.get()); 544 job_ = handler_->MaybeLoadResource(request_.get());
542 EXPECT_FALSE(job_.get()); 545 EXPECT_FALSE(job_.get());
543 546
544 job_ = handler_->MaybeLoadFallbackForRedirect( 547 job_ = handler_->MaybeLoadFallbackForRedirect(
545 request_.get(), GURL("http://not_blah/redirect")); 548 request_.get(), GURL("http://not_blah/redirect"));
546 EXPECT_TRUE(job_.get()); 549 EXPECT_TRUE(job_.get());
547 EXPECT_TRUE(job_->is_delivering_appcache_response()); 550 EXPECT_TRUE(job_->is_delivering_appcache_response());
548 551
549 AppCacheURLRequestJob* fallback_job; 552 AppCacheURLRequestJob* fallback_job;
550 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); 553 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
551 EXPECT_FALSE(fallback_job); 554 EXPECT_FALSE(fallback_job);
552 555
553 TestFinished(); 556 TestFinished();
554 } 557 }
555 558
556 // SubResource_NoRedirectFallback ----------------------------- 559 // SubResource_NoRedirectFallback -----------------------------
557 560
558 void SubResource_NoRedirectFallback() { 561 void SubResource_NoRedirectFallback() {
559 // Redirects to resources in the same-origin are not subject to 562 // Redirects to resources in the same-origin are not subject to
560 // fallback namespaces. 563 // fallback namespaces.
561 host_->AssociateCompleteCache(MakeNewCache()); 564 host_->AssociateCompleteCache(MakeNewCache());
562 565
563 mock_storage()->SimulateFindSubResource( 566 mock_storage()->SimulateFindSubResource(
564 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); 567 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false);
565 568
566 request_.reset(new MockURLRequest(GURL("http://blah/"))); 569 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
567 handler_.reset(host_->CreateRequestHandler(request_.get(), 570 handler_.reset(host_->CreateRequestHandler(request_.get(),
568 ResourceType::SUB_RESOURCE)); 571 ResourceType::SUB_RESOURCE));
569 EXPECT_TRUE(handler_.get()); 572 EXPECT_TRUE(handler_.get());
570 job_ = handler_->MaybeLoadResource(request_.get()); 573 job_ = handler_->MaybeLoadResource(request_.get());
571 EXPECT_FALSE(job_.get()); 574 EXPECT_FALSE(job_.get());
572 575
573 AppCacheURLRequestJob* fallback_job; 576 AppCacheURLRequestJob* fallback_job;
574 fallback_job = handler_->MaybeLoadFallbackForRedirect( 577 fallback_job = handler_->MaybeLoadFallbackForRedirect(
575 request_.get(), GURL("http://blah/redirect")); 578 request_.get(), GURL("http://blah/redirect"));
576 EXPECT_FALSE(fallback_job); 579 EXPECT_FALSE(fallback_job);
577 580
578 request_->SimulateResponseCode(200); 581 request_->SimulateResponseCode(200);
579 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); 582 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
580 EXPECT_FALSE(fallback_job); 583 EXPECT_FALSE(fallback_job);
581 584
582 TestFinished(); 585 TestFinished();
583 } 586 }
584 587
585 // SubResource_Network ----------------------------- 588 // SubResource_Network -----------------------------
586 589
587 void SubResource_Network() { 590 void SubResource_Network() {
588 // A sub-resource load where the resource is in a network namespace, 591 // A sub-resource load where the resource is in a network namespace,
589 // should result in the system using a 'real' job to do the network 592 // should result in the system using a 'real' job to do the network
590 // retrieval. 593 // retrieval.
591 host_->AssociateCompleteCache(MakeNewCache()); 594 host_->AssociateCompleteCache(MakeNewCache());
592 595
593 mock_storage()->SimulateFindSubResource( 596 mock_storage()->SimulateFindSubResource(
594 AppCacheEntry(), AppCacheEntry(), true); 597 AppCacheEntry(), AppCacheEntry(), true);
595 598
596 request_.reset(new MockURLRequest(GURL("http://blah/"))); 599 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
597 handler_.reset(host_->CreateRequestHandler(request_.get(), 600 handler_.reset(host_->CreateRequestHandler(request_.get(),
598 ResourceType::SUB_RESOURCE)); 601 ResourceType::SUB_RESOURCE));
599 EXPECT_TRUE(handler_.get()); 602 EXPECT_TRUE(handler_.get());
600 job_ = handler_->MaybeLoadResource(request_.get()); 603 job_ = handler_->MaybeLoadResource(request_.get());
601 EXPECT_FALSE(job_.get()); 604 EXPECT_FALSE(job_.get());
602 605
603 AppCacheURLRequestJob* fallback_job; 606 AppCacheURLRequestJob* fallback_job;
604 fallback_job = handler_->MaybeLoadFallbackForRedirect( 607 fallback_job = handler_->MaybeLoadFallbackForRedirect(
605 request_.get(), GURL("http://blah/redirect")); 608 request_.get(), GURL("http://blah/redirect"));
606 EXPECT_FALSE(fallback_job); 609 EXPECT_FALSE(fallback_job);
607 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); 610 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
608 EXPECT_FALSE(fallback_job); 611 EXPECT_FALSE(fallback_job);
609 612
610 TestFinished(); 613 TestFinished();
611 } 614 }
612 615
613 // DestroyedHost ----------------------------- 616 // DestroyedHost -----------------------------
614 617
615 void DestroyedHost() { 618 void DestroyedHost() {
616 host_->AssociateCompleteCache(MakeNewCache()); 619 host_->AssociateCompleteCache(MakeNewCache());
617 620
618 mock_storage()->SimulateFindSubResource( 621 mock_storage()->SimulateFindSubResource(
619 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); 622 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false);
620 623
621 request_.reset(new MockURLRequest(GURL("http://blah/"))); 624 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
622 handler_.reset(host_->CreateRequestHandler(request_.get(), 625 handler_.reset(host_->CreateRequestHandler(request_.get(),
623 ResourceType::SUB_RESOURCE)); 626 ResourceType::SUB_RESOURCE));
624 EXPECT_TRUE(handler_.get()); 627 EXPECT_TRUE(handler_.get());
625 628
626 backend_impl_->UnregisterHost(1); 629 backend_impl_->UnregisterHost(1);
627 host_ = NULL; 630 host_ = NULL;
628 631
629 EXPECT_FALSE(handler_->MaybeLoadResource(request_.get())); 632 EXPECT_FALSE(handler_->MaybeLoadResource(request_.get()));
630 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( 633 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect(
631 request_.get(), GURL("http://blah/redirect"))); 634 request_.get(), GURL("http://blah/redirect")));
632 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get())); 635 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get()));
633 636
634 TestFinished(); 637 TestFinished();
635 } 638 }
636 639
637 // DestroyedHostWithWaitingJob ----------------------------- 640 // DestroyedHostWithWaitingJob -----------------------------
638 641
639 void DestroyedHostWithWaitingJob() { 642 void DestroyedHostWithWaitingJob() {
640 // Precondition, the host is waiting on cache selection. 643 // Precondition, the host is waiting on cache selection.
641 host_->pending_selected_cache_id_ = 1; 644 host_->pending_selected_cache_id_ = 1;
642 645
643 request_.reset(new MockURLRequest(GURL("http://blah/"))); 646 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
644 handler_.reset(host_->CreateRequestHandler(request_.get(), 647 handler_.reset(host_->CreateRequestHandler(request_.get(),
645 ResourceType::SUB_RESOURCE)); 648 ResourceType::SUB_RESOURCE));
646 EXPECT_TRUE(handler_.get()); 649 EXPECT_TRUE(handler_.get());
647 650
648 job_ = handler_->MaybeLoadResource(request_.get()); 651 job_ = handler_->MaybeLoadResource(request_.get());
649 EXPECT_TRUE(job_.get()); 652 EXPECT_TRUE(job_.get());
650 EXPECT_TRUE(job_->is_waiting()); 653 EXPECT_TRUE(job_->is_waiting());
651 654
652 backend_impl_->UnregisterHost(1); 655 backend_impl_->UnregisterHost(1);
653 host_ = NULL; 656 host_ = NULL;
654 EXPECT_TRUE(job_->has_been_killed()); 657 EXPECT_TRUE(job_->has_been_killed());
655 658
656 EXPECT_FALSE(handler_->MaybeLoadResource(request_.get())); 659 EXPECT_FALSE(handler_->MaybeLoadResource(request_.get()));
657 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( 660 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect(
658 request_.get(), GURL("http://blah/redirect"))); 661 request_.get(), GURL("http://blah/redirect")));
659 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get())); 662 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get()));
660 663
661 TestFinished(); 664 TestFinished();
662 } 665 }
663 666
664 // UnsupportedScheme ----------------------------- 667 // UnsupportedScheme -----------------------------
665 668
666 void UnsupportedScheme() { 669 void UnsupportedScheme() {
667 // Precondition, the host is waiting on cache selection. 670 // Precondition, the host is waiting on cache selection.
668 host_->pending_selected_cache_id_ = 1; 671 host_->pending_selected_cache_id_ = 1;
669 672
670 request_.reset(new MockURLRequest(GURL("ftp://blah/"))); 673 request_.reset(new MockURLRequest(GURL("ftp://blah/"), &empty_context_));
671 handler_.reset(host_->CreateRequestHandler(request_.get(), 674 handler_.reset(host_->CreateRequestHandler(request_.get(),
672 ResourceType::SUB_RESOURCE)); 675 ResourceType::SUB_RESOURCE));
673 EXPECT_TRUE(handler_.get()); // we could redirect to http (conceivably) 676 EXPECT_TRUE(handler_.get()); // we could redirect to http (conceivably)
674 677
675 EXPECT_FALSE(handler_->MaybeLoadResource(request_.get())); 678 EXPECT_FALSE(handler_->MaybeLoadResource(request_.get()));
676 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( 679 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect(
677 request_.get(), GURL("ftp://blah/redirect"))); 680 request_.get(), GURL("ftp://blah/redirect")));
678 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get())); 681 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get()));
679 682
680 TestFinished(); 683 TestFinished();
681 } 684 }
682 685
683 // CanceledRequest ----------------------------- 686 // CanceledRequest -----------------------------
684 687
685 void CanceledRequest() { 688 void CanceledRequest() {
686 request_.reset(new MockURLRequest(GURL("http://blah/"))); 689 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
687 handler_.reset(host_->CreateRequestHandler(request_.get(), 690 handler_.reset(host_->CreateRequestHandler(request_.get(),
688 ResourceType::MAIN_FRAME)); 691 ResourceType::MAIN_FRAME));
689 EXPECT_TRUE(handler_.get()); 692 EXPECT_TRUE(handler_.get());
690 693
691 job_ = handler_->MaybeLoadResource(request_.get()); 694 job_ = handler_->MaybeLoadResource(request_.get());
692 EXPECT_TRUE(job_.get()); 695 EXPECT_TRUE(job_.get());
693 EXPECT_TRUE(job_->is_waiting()); 696 EXPECT_TRUE(job_->is_waiting());
694 EXPECT_FALSE(job_->has_been_started()); 697 EXPECT_FALSE(job_->has_been_started());
695 698
696 mock_factory_job_ = job_.get(); 699 mock_factory_job_ = job_.get();
(...skipping 13 matching lines...) Expand all
710 void WorkerRequest() { 713 void WorkerRequest() {
711 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( 714 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType(
712 ResourceType::MAIN_FRAME)); 715 ResourceType::MAIN_FRAME));
713 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( 716 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType(
714 ResourceType::SUB_FRAME)); 717 ResourceType::SUB_FRAME));
715 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( 718 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType(
716 ResourceType::SHARED_WORKER)); 719 ResourceType::SHARED_WORKER));
717 EXPECT_FALSE(AppCacheRequestHandler::IsMainResourceType( 720 EXPECT_FALSE(AppCacheRequestHandler::IsMainResourceType(
718 ResourceType::WORKER)); 721 ResourceType::WORKER));
719 722
720 request_.reset(new MockURLRequest(GURL("http://blah/"))); 723 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
721 724
722 const int kParentHostId = host_->host_id(); 725 const int kParentHostId = host_->host_id();
723 const int kWorkerHostId = 2; 726 const int kWorkerHostId = 2;
724 const int kAbandonedWorkerHostId = 3; 727 const int kAbandonedWorkerHostId = 3;
725 const int kNonExsitingHostId = 700; 728 const int kNonExsitingHostId = 700;
726 729
727 backend_impl_->RegisterHost(kWorkerHostId); 730 backend_impl_->RegisterHost(kWorkerHostId);
728 AppCacheHost* worker_host = backend_impl_->GetHost(kWorkerHostId); 731 AppCacheHost* worker_host = backend_impl_->GetHost(kWorkerHostId);
729 worker_host->SelectCacheForWorker(kParentHostId, kMockProcessId); 732 worker_host->SelectCacheForWorker(kParentHostId, kMockProcessId);
730 handler_.reset(worker_host->CreateRequestHandler( 733 handler_.reset(worker_host->CreateRequestHandler(
(...skipping 16 matching lines...) Expand all
747 TestFinished(); 750 TestFinished();
748 } 751 }
749 752
750 // MainResource_Blocked -------------------------------------------------- 753 // MainResource_Blocked --------------------------------------------------
751 754
752 void MainResource_Blocked() { 755 void MainResource_Blocked() {
753 PushNextTask( 756 PushNextTask(
754 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Blocked, 757 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Blocked,
755 base::Unretained(this))); 758 base::Unretained(this)));
756 759
757 request_.reset(new MockURLRequest(GURL("http://blah/"))); 760 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
758 handler_.reset(host_->CreateRequestHandler(request_.get(), 761 handler_.reset(host_->CreateRequestHandler(request_.get(),
759 ResourceType::MAIN_FRAME)); 762 ResourceType::MAIN_FRAME));
760 EXPECT_TRUE(handler_.get()); 763 EXPECT_TRUE(handler_.get());
761 764
762 mock_policy_->can_load_return_value_ = false; 765 mock_policy_->can_load_return_value_ = false;
763 mock_storage()->SimulateFindMainResource( 766 mock_storage()->SimulateFindMainResource(
764 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 767 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
765 GURL(), AppCacheEntry(), 768 GURL(), AppCacheEntry(),
766 1, 2, GURL("http://blah/manifest/")); 769 1, 2, GURL("http://blah/manifest/"));
767 770
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 809
807 // Data members -------------------------------------------------- 810 // Data members --------------------------------------------------
808 811
809 scoped_ptr<base::WaitableEvent> test_finished_event_; 812 scoped_ptr<base::WaitableEvent> test_finished_event_;
810 std::stack<base::Closure> task_stack_; 813 std::stack<base::Closure> task_stack_;
811 scoped_ptr<MockAppCacheService> mock_service_; 814 scoped_ptr<MockAppCacheService> mock_service_;
812 scoped_ptr<AppCacheBackendImpl> backend_impl_; 815 scoped_ptr<AppCacheBackendImpl> backend_impl_;
813 scoped_ptr<MockFrontend> mock_frontend_; 816 scoped_ptr<MockFrontend> mock_frontend_;
814 scoped_ptr<MockAppCachePolicy> mock_policy_; 817 scoped_ptr<MockAppCachePolicy> mock_policy_;
815 AppCacheHost* host_; 818 AppCacheHost* host_;
819 net::URLRequestContext empty_context_;
816 scoped_ptr<MockURLRequest> request_; 820 scoped_ptr<MockURLRequest> request_;
817 scoped_ptr<AppCacheRequestHandler> handler_; 821 scoped_ptr<AppCacheRequestHandler> handler_;
818 scoped_refptr<AppCacheURLRequestJob> job_; 822 scoped_refptr<AppCacheURLRequestJob> job_;
819 net::URLRequest::ProtocolFactory* orig_http_factory_; 823 net::URLRequest::ProtocolFactory* orig_http_factory_;
820 824
821 static scoped_ptr<base::Thread> io_thread_; 825 static scoped_ptr<base::Thread> io_thread_;
822 static net::URLRequestJob* mock_factory_job_; 826 static net::URLRequestJob* mock_factory_job_;
823 }; 827 };
824 828
825 // static 829 // static
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
894 898
895 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) { 899 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) {
896 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest); 900 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest);
897 } 901 }
898 902
899 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) { 903 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) {
900 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked); 904 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked);
901 } 905 }
902 906
903 } // namespace appcache 907 } // namespace appcache
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698