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

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: Merged with latest version 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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 base::Bind(&AppCacheRequestHandlerTest::MethodWrapper<Method>, 169 base::Bind(&AppCacheRequestHandlerTest::MethodWrapper<Method>,
167 base::Unretained(this), method)); 170 base::Unretained(this), method));
168 test_finished_event_->Wait(); 171 test_finished_event_->Wait();
169 } 172 }
170 173
171 void SetUpTest() { 174 void SetUpTest() {
172 DCHECK(MessageLoop::current() == io_thread_->message_loop()); 175 DCHECK(MessageLoop::current() == io_thread_->message_loop());
173 orig_http_factory_ = net::URLRequest::Deprecated::RegisterProtocolFactory( 176 orig_http_factory_ = net::URLRequest::Deprecated::RegisterProtocolFactory(
174 "http", MockHttpJobFactory); 177 "http", MockHttpJobFactory);
175 mock_service_.reset(new MockAppCacheService); 178 mock_service_.reset(new MockAppCacheService);
179 mock_service_->set_request_context(&empty_context_);
176 mock_policy_.reset(new MockAppCachePolicy); 180 mock_policy_.reset(new MockAppCachePolicy);
177 mock_service_->set_appcache_policy(mock_policy_.get()); 181 mock_service_->set_appcache_policy(mock_policy_.get());
178 mock_frontend_.reset(new MockFrontend); 182 mock_frontend_.reset(new MockFrontend);
179 backend_impl_.reset(new AppCacheBackendImpl); 183 backend_impl_.reset(new AppCacheBackendImpl);
180 backend_impl_->Initialize(mock_service_.get(), mock_frontend_.get(), 184 backend_impl_->Initialize(mock_service_.get(), mock_frontend_.get(),
181 kMockProcessId); 185 kMockProcessId);
182 const int kHostId = 1; 186 const int kHostId = 1;
183 backend_impl_->RegisterHost(kHostId); 187 backend_impl_->RegisterHost(kHostId);
184 host_ = backend_impl_->GetHost(kHostId); 188 host_ = backend_impl_->GetHost(kHostId);
185 } 189 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 task_stack_.pop(); 233 task_stack_.pop();
230 } 234 }
231 235
232 // MainResource_Miss -------------------------------------------------- 236 // MainResource_Miss --------------------------------------------------
233 237
234 void MainResource_Miss() { 238 void MainResource_Miss() {
235 PushNextTask( 239 PushNextTask(
236 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Miss, 240 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Miss,
237 base::Unretained(this))); 241 base::Unretained(this)));
238 242
239 request_.reset(new MockURLRequest(GURL("http://blah/"))); 243 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
240 handler_.reset(host_->CreateRequestHandler(request_.get(), 244 handler_.reset(host_->CreateRequestHandler(request_.get(),
241 ResourceType::MAIN_FRAME)); 245 ResourceType::MAIN_FRAME));
242 EXPECT_TRUE(handler_.get()); 246 EXPECT_TRUE(handler_.get());
243 247
244 job_ = handler_->MaybeLoadResource(request_.get()); 248 job_ = handler_->MaybeLoadResource(request_.get());
245 EXPECT_TRUE(job_.get()); 249 EXPECT_TRUE(job_.get());
246 EXPECT_TRUE(job_->is_waiting()); 250 EXPECT_TRUE(job_->is_waiting());
247 251
248 // We have to wait for completion of storage->FindResponseForMainRequest. 252 // We have to wait for completion of storage->FindResponseForMainRequest.
249 ScheduleNextTask(); 253 ScheduleNextTask();
(...skipping 22 matching lines...) Expand all
272 TestFinished(); 276 TestFinished();
273 } 277 }
274 278
275 // MainResource_Hit -------------------------------------------------- 279 // MainResource_Hit --------------------------------------------------
276 280
277 void MainResource_Hit() { 281 void MainResource_Hit() {
278 PushNextTask( 282 PushNextTask(
279 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Hit, 283 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Hit,
280 base::Unretained(this))); 284 base::Unretained(this)));
281 285
282 request_.reset(new MockURLRequest(GURL("http://blah/"))); 286 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
283 handler_.reset(host_->CreateRequestHandler(request_.get(), 287 handler_.reset(host_->CreateRequestHandler(request_.get(),
284 ResourceType::MAIN_FRAME)); 288 ResourceType::MAIN_FRAME));
285 EXPECT_TRUE(handler_.get()); 289 EXPECT_TRUE(handler_.get());
286 290
287 mock_storage()->SimulateFindMainResource( 291 mock_storage()->SimulateFindMainResource(
288 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 292 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
289 GURL(), AppCacheEntry(), 293 GURL(), AppCacheEntry(),
290 1, 2, GURL("http://blah/manifest/")); 294 1, 2, GURL("http://blah/manifest/"));
291 295
292 job_ = handler_->MaybeLoadResource(request_.get()); 296 job_ = handler_->MaybeLoadResource(request_.get());
(...skipping 25 matching lines...) Expand all
318 TestFinished(); 322 TestFinished();
319 } 323 }
320 324
321 // MainResource_Fallback -------------------------------------------------- 325 // MainResource_Fallback --------------------------------------------------
322 326
323 void MainResource_Fallback() { 327 void MainResource_Fallback() {
324 PushNextTask( 328 PushNextTask(
325 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Fallback, 329 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Fallback,
326 base::Unretained(this))); 330 base::Unretained(this)));
327 331
328 request_.reset(new MockURLRequest(GURL("http://blah/"))); 332 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
329 handler_.reset(host_->CreateRequestHandler(request_.get(), 333 handler_.reset(host_->CreateRequestHandler(request_.get(),
330 ResourceType::MAIN_FRAME)); 334 ResourceType::MAIN_FRAME));
331 EXPECT_TRUE(handler_.get()); 335 EXPECT_TRUE(handler_.get());
332 336
333 mock_storage()->SimulateFindMainResource( 337 mock_storage()->SimulateFindMainResource(
334 AppCacheEntry(), 338 AppCacheEntry(),
335 GURL("http://blah/fallbackurl"), 339 GURL("http://blah/fallbackurl"),
336 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 340 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
337 1, 2, GURL("http://blah/manifest/")); 341 1, 2, GURL("http://blah/manifest/"));
338 342
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 TestFinished(); 379 TestFinished();
376 } 380 }
377 381
378 // MainResource_FallbackOverride -------------------------------------------- 382 // MainResource_FallbackOverride --------------------------------------------
379 383
380 void MainResource_FallbackOverride() { 384 void MainResource_FallbackOverride() {
381 PushNextTask(base::Bind( 385 PushNextTask(base::Bind(
382 &AppCacheRequestHandlerTest::Verify_MainResource_FallbackOverride, 386 &AppCacheRequestHandlerTest::Verify_MainResource_FallbackOverride,
383 base::Unretained(this))); 387 base::Unretained(this)));
384 388
385 request_.reset(new MockURLRequest(GURL("http://blah/fallback-override"))); 389 request_.reset(new MockURLRequest(GURL("http://blah/fallback-override"),
390 &empty_context_));
386 handler_.reset(host_->CreateRequestHandler(request_.get(), 391 handler_.reset(host_->CreateRequestHandler(request_.get(),
387 ResourceType::MAIN_FRAME)); 392 ResourceType::MAIN_FRAME));
388 EXPECT_TRUE(handler_.get()); 393 EXPECT_TRUE(handler_.get());
389 394
390 mock_storage()->SimulateFindMainResource( 395 mock_storage()->SimulateFindMainResource(
391 AppCacheEntry(), 396 AppCacheEntry(),
392 GURL("http://blah/fallbackurl"), 397 GURL("http://blah/fallbackurl"),
393 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 398 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
394 1, 2, GURL("http://blah/manifest/")); 399 1, 2, GURL("http://blah/manifest/"));
395 400
(...skipping 28 matching lines...) Expand all
424 429
425 job_ = handler_->MaybeLoadFallbackForResponse(request_.get()); 430 job_ = handler_->MaybeLoadFallbackForResponse(request_.get());
426 EXPECT_FALSE(job_); 431 EXPECT_FALSE(job_);
427 432
428 TestFinished(); 433 TestFinished();
429 } 434 }
430 435
431 // SubResource_Miss_WithNoCacheSelected ---------------------------------- 436 // SubResource_Miss_WithNoCacheSelected ----------------------------------
432 437
433 void SubResource_Miss_WithNoCacheSelected() { 438 void SubResource_Miss_WithNoCacheSelected() {
434 request_.reset(new MockURLRequest(GURL("http://blah/"))); 439 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
435 handler_.reset(host_->CreateRequestHandler(request_.get(), 440 handler_.reset(host_->CreateRequestHandler(request_.get(),
436 ResourceType::SUB_RESOURCE)); 441 ResourceType::SUB_RESOURCE));
437 442
438 // We avoid creating handler when possible, sub-resource requests are not 443 // We avoid creating handler when possible, sub-resource requests are not
439 // subject to retrieval from an appcache when there's no associated cache. 444 // subject to retrieval from an appcache when there's no associated cache.
440 EXPECT_FALSE(handler_.get()); 445 EXPECT_FALSE(handler_.get());
441 446
442 TestFinished(); 447 TestFinished();
443 } 448 }
444 449
445 // SubResource_Miss_WithCacheSelected ---------------------------------- 450 // SubResource_Miss_WithCacheSelected ----------------------------------
446 451
447 void SubResource_Miss_WithCacheSelected() { 452 void SubResource_Miss_WithCacheSelected() {
448 // A sub-resource load where the resource is not in an appcache, or 453 // 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. 454 // in a network or fallback namespace, should result in a failed request.
450 host_->AssociateCompleteCache(MakeNewCache()); 455 host_->AssociateCompleteCache(MakeNewCache());
451 456
452 request_.reset(new MockURLRequest(GURL("http://blah/"))); 457 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
453 handler_.reset(host_->CreateRequestHandler(request_.get(), 458 handler_.reset(host_->CreateRequestHandler(request_.get(),
454 ResourceType::SUB_RESOURCE)); 459 ResourceType::SUB_RESOURCE));
455 EXPECT_TRUE(handler_.get()); 460 EXPECT_TRUE(handler_.get());
456 461
457 job_ = handler_->MaybeLoadResource(request_.get()); 462 job_ = handler_->MaybeLoadResource(request_.get());
458 EXPECT_TRUE(job_.get()); 463 EXPECT_TRUE(job_.get());
459 EXPECT_TRUE(job_->is_delivering_error_response()); 464 EXPECT_TRUE(job_->is_delivering_error_response());
460 465
461 AppCacheURLRequestJob* fallback_job; 466 AppCacheURLRequestJob* fallback_job;
462 fallback_job = handler_->MaybeLoadFallbackForRedirect( 467 fallback_job = handler_->MaybeLoadFallbackForRedirect(
463 request_.get(), GURL("http://blah/redirect")); 468 request_.get(), GURL("http://blah/redirect"));
464 EXPECT_FALSE(fallback_job); 469 EXPECT_FALSE(fallback_job);
465 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); 470 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
466 EXPECT_FALSE(fallback_job); 471 EXPECT_FALSE(fallback_job);
467 472
468 TestFinished(); 473 TestFinished();
469 } 474 }
470 475
471 // SubResource_Miss_WithWaitForCacheSelection ----------------------------- 476 // SubResource_Miss_WithWaitForCacheSelection -----------------------------
472 477
473 void SubResource_Miss_WithWaitForCacheSelection() { 478 void SubResource_Miss_WithWaitForCacheSelection() {
474 // Precondition, the host is waiting on cache selection. 479 // Precondition, the host is waiting on cache selection.
475 scoped_refptr<AppCache> cache(MakeNewCache()); 480 scoped_refptr<AppCache> cache(MakeNewCache());
476 host_->pending_selected_cache_id_ = cache->cache_id(); 481 host_->pending_selected_cache_id_ = cache->cache_id();
477 host_->set_preferred_manifest_url(cache->owning_group()->manifest_url()); 482 host_->set_preferred_manifest_url(cache->owning_group()->manifest_url());
478 483
479 request_.reset(new MockURLRequest(GURL("http://blah/"))); 484 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
480 handler_.reset(host_->CreateRequestHandler(request_.get(), 485 handler_.reset(host_->CreateRequestHandler(request_.get(),
481 ResourceType::SUB_RESOURCE)); 486 ResourceType::SUB_RESOURCE));
482 EXPECT_TRUE(handler_.get()); 487 EXPECT_TRUE(handler_.get());
483 job_ = handler_->MaybeLoadResource(request_.get()); 488 job_ = handler_->MaybeLoadResource(request_.get());
484 EXPECT_TRUE(job_.get()); 489 EXPECT_TRUE(job_.get());
485 EXPECT_TRUE(job_->is_waiting()); 490 EXPECT_TRUE(job_->is_waiting());
486 491
487 host_->FinishCacheSelection(cache, NULL); 492 host_->FinishCacheSelection(cache, NULL);
488 EXPECT_FALSE(job_->is_waiting()); 493 EXPECT_FALSE(job_->is_waiting());
489 EXPECT_TRUE(job_->is_delivering_error_response()); 494 EXPECT_TRUE(job_->is_delivering_error_response());
490 495
491 AppCacheURLRequestJob* fallback_job; 496 AppCacheURLRequestJob* fallback_job;
492 fallback_job = handler_->MaybeLoadFallbackForRedirect( 497 fallback_job = handler_->MaybeLoadFallbackForRedirect(
493 request_.get(), GURL("http://blah/redirect")); 498 request_.get(), GURL("http://blah/redirect"));
494 EXPECT_FALSE(fallback_job); 499 EXPECT_FALSE(fallback_job);
495 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); 500 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
496 EXPECT_FALSE(fallback_job); 501 EXPECT_FALSE(fallback_job);
497 502
498 TestFinished(); 503 TestFinished();
499 } 504 }
500 505
501 // SubResource_Hit ----------------------------- 506 // SubResource_Hit -----------------------------
502 507
503 void SubResource_Hit() { 508 void SubResource_Hit() {
504 host_->AssociateCompleteCache(MakeNewCache()); 509 host_->AssociateCompleteCache(MakeNewCache());
505 510
506 mock_storage()->SimulateFindSubResource( 511 mock_storage()->SimulateFindSubResource(
507 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); 512 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false);
508 513
509 request_.reset(new MockURLRequest(GURL("http://blah/"))); 514 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
510 handler_.reset(host_->CreateRequestHandler(request_.get(), 515 handler_.reset(host_->CreateRequestHandler(request_.get(),
511 ResourceType::SUB_RESOURCE)); 516 ResourceType::SUB_RESOURCE));
512 EXPECT_TRUE(handler_.get()); 517 EXPECT_TRUE(handler_.get());
513 job_ = handler_->MaybeLoadResource(request_.get()); 518 job_ = handler_->MaybeLoadResource(request_.get());
514 EXPECT_TRUE(job_.get()); 519 EXPECT_TRUE(job_.get());
515 EXPECT_TRUE(job_->is_delivering_appcache_response()); 520 EXPECT_TRUE(job_->is_delivering_appcache_response());
516 521
517 AppCacheURLRequestJob* fallback_job; 522 AppCacheURLRequestJob* fallback_job;
518 fallback_job = handler_->MaybeLoadFallbackForRedirect( 523 fallback_job = handler_->MaybeLoadFallbackForRedirect(
519 request_.get(), GURL("http://blah/redirect")); 524 request_.get(), GURL("http://blah/redirect"));
520 EXPECT_FALSE(fallback_job); 525 EXPECT_FALSE(fallback_job);
521 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); 526 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
522 EXPECT_FALSE(fallback_job); 527 EXPECT_FALSE(fallback_job);
523 528
524 TestFinished(); 529 TestFinished();
525 } 530 }
526 531
527 // SubResource_RedirectFallback ----------------------------- 532 // SubResource_RedirectFallback -----------------------------
528 533
529 void SubResource_RedirectFallback() { 534 void SubResource_RedirectFallback() {
530 // Redirects to resources in the a different origin are subject to 535 // Redirects to resources in the a different origin are subject to
531 // fallback namespaces. 536 // fallback namespaces.
532 host_->AssociateCompleteCache(MakeNewCache()); 537 host_->AssociateCompleteCache(MakeNewCache());
533 538
534 mock_storage()->SimulateFindSubResource( 539 mock_storage()->SimulateFindSubResource(
535 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); 540 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false);
536 541
537 request_.reset(new MockURLRequest(GURL("http://blah/"))); 542 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
538 handler_.reset(host_->CreateRequestHandler(request_.get(), 543 handler_.reset(host_->CreateRequestHandler(request_.get(),
539 ResourceType::SUB_RESOURCE)); 544 ResourceType::SUB_RESOURCE));
540 EXPECT_TRUE(handler_.get()); 545 EXPECT_TRUE(handler_.get());
541 job_ = handler_->MaybeLoadResource(request_.get()); 546 job_ = handler_->MaybeLoadResource(request_.get());
542 EXPECT_FALSE(job_.get()); 547 EXPECT_FALSE(job_.get());
543 548
544 job_ = handler_->MaybeLoadFallbackForRedirect( 549 job_ = handler_->MaybeLoadFallbackForRedirect(
545 request_.get(), GURL("http://not_blah/redirect")); 550 request_.get(), GURL("http://not_blah/redirect"));
546 EXPECT_TRUE(job_.get()); 551 EXPECT_TRUE(job_.get());
547 EXPECT_TRUE(job_->is_delivering_appcache_response()); 552 EXPECT_TRUE(job_->is_delivering_appcache_response());
548 553
549 AppCacheURLRequestJob* fallback_job; 554 AppCacheURLRequestJob* fallback_job;
550 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); 555 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
551 EXPECT_FALSE(fallback_job); 556 EXPECT_FALSE(fallback_job);
552 557
553 TestFinished(); 558 TestFinished();
554 } 559 }
555 560
556 // SubResource_NoRedirectFallback ----------------------------- 561 // SubResource_NoRedirectFallback -----------------------------
557 562
558 void SubResource_NoRedirectFallback() { 563 void SubResource_NoRedirectFallback() {
559 // Redirects to resources in the same-origin are not subject to 564 // Redirects to resources in the same-origin are not subject to
560 // fallback namespaces. 565 // fallback namespaces.
561 host_->AssociateCompleteCache(MakeNewCache()); 566 host_->AssociateCompleteCache(MakeNewCache());
562 567
563 mock_storage()->SimulateFindSubResource( 568 mock_storage()->SimulateFindSubResource(
564 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false); 569 AppCacheEntry(), AppCacheEntry(AppCacheEntry::EXPLICIT, 1), false);
565 570
566 request_.reset(new MockURLRequest(GURL("http://blah/"))); 571 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
567 handler_.reset(host_->CreateRequestHandler(request_.get(), 572 handler_.reset(host_->CreateRequestHandler(request_.get(),
568 ResourceType::SUB_RESOURCE)); 573 ResourceType::SUB_RESOURCE));
569 EXPECT_TRUE(handler_.get()); 574 EXPECT_TRUE(handler_.get());
570 job_ = handler_->MaybeLoadResource(request_.get()); 575 job_ = handler_->MaybeLoadResource(request_.get());
571 EXPECT_FALSE(job_.get()); 576 EXPECT_FALSE(job_.get());
572 577
573 AppCacheURLRequestJob* fallback_job; 578 AppCacheURLRequestJob* fallback_job;
574 fallback_job = handler_->MaybeLoadFallbackForRedirect( 579 fallback_job = handler_->MaybeLoadFallbackForRedirect(
575 request_.get(), GURL("http://blah/redirect")); 580 request_.get(), GURL("http://blah/redirect"));
576 EXPECT_FALSE(fallback_job); 581 EXPECT_FALSE(fallback_job);
577 582
578 request_->SimulateResponseCode(200); 583 request_->SimulateResponseCode(200);
579 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); 584 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
580 EXPECT_FALSE(fallback_job); 585 EXPECT_FALSE(fallback_job);
581 586
582 TestFinished(); 587 TestFinished();
583 } 588 }
584 589
585 // SubResource_Network ----------------------------- 590 // SubResource_Network -----------------------------
586 591
587 void SubResource_Network() { 592 void SubResource_Network() {
588 // A sub-resource load where the resource is in a network namespace, 593 // 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 594 // should result in the system using a 'real' job to do the network
590 // retrieval. 595 // retrieval.
591 host_->AssociateCompleteCache(MakeNewCache()); 596 host_->AssociateCompleteCache(MakeNewCache());
592 597
593 mock_storage()->SimulateFindSubResource( 598 mock_storage()->SimulateFindSubResource(
594 AppCacheEntry(), AppCacheEntry(), true); 599 AppCacheEntry(), AppCacheEntry(), true);
595 600
596 request_.reset(new MockURLRequest(GURL("http://blah/"))); 601 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
597 handler_.reset(host_->CreateRequestHandler(request_.get(), 602 handler_.reset(host_->CreateRequestHandler(request_.get(),
598 ResourceType::SUB_RESOURCE)); 603 ResourceType::SUB_RESOURCE));
599 EXPECT_TRUE(handler_.get()); 604 EXPECT_TRUE(handler_.get());
600 job_ = handler_->MaybeLoadResource(request_.get()); 605 job_ = handler_->MaybeLoadResource(request_.get());
601 EXPECT_FALSE(job_.get()); 606 EXPECT_FALSE(job_.get());
602 607
603 AppCacheURLRequestJob* fallback_job; 608 AppCacheURLRequestJob* fallback_job;
604 fallback_job = handler_->MaybeLoadFallbackForRedirect( 609 fallback_job = handler_->MaybeLoadFallbackForRedirect(
605 request_.get(), GURL("http://blah/redirect")); 610 request_.get(), GURL("http://blah/redirect"));
606 EXPECT_FALSE(fallback_job); 611 EXPECT_FALSE(fallback_job);
607 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get()); 612 fallback_job = handler_->MaybeLoadFallbackForResponse(request_.get());
608 EXPECT_FALSE(fallback_job); 613 EXPECT_FALSE(fallback_job);
609 614
610 TestFinished(); 615 TestFinished();
611 } 616 }
612 617
613 // DestroyedHost ----------------------------- 618 // DestroyedHost -----------------------------
614 619
615 void DestroyedHost() { 620 void DestroyedHost() {
616 host_->AssociateCompleteCache(MakeNewCache()); 621 host_->AssociateCompleteCache(MakeNewCache());
617 622
618 mock_storage()->SimulateFindSubResource( 623 mock_storage()->SimulateFindSubResource(
619 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false); 624 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), AppCacheEntry(), false);
620 625
621 request_.reset(new MockURLRequest(GURL("http://blah/"))); 626 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
622 handler_.reset(host_->CreateRequestHandler(request_.get(), 627 handler_.reset(host_->CreateRequestHandler(request_.get(),
623 ResourceType::SUB_RESOURCE)); 628 ResourceType::SUB_RESOURCE));
624 EXPECT_TRUE(handler_.get()); 629 EXPECT_TRUE(handler_.get());
625 630
626 backend_impl_->UnregisterHost(1); 631 backend_impl_->UnregisterHost(1);
627 host_ = NULL; 632 host_ = NULL;
628 633
629 EXPECT_FALSE(handler_->MaybeLoadResource(request_.get())); 634 EXPECT_FALSE(handler_->MaybeLoadResource(request_.get()));
630 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( 635 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect(
631 request_.get(), GURL("http://blah/redirect"))); 636 request_.get(), GURL("http://blah/redirect")));
632 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get())); 637 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get()));
633 638
634 TestFinished(); 639 TestFinished();
635 } 640 }
636 641
637 // DestroyedHostWithWaitingJob ----------------------------- 642 // DestroyedHostWithWaitingJob -----------------------------
638 643
639 void DestroyedHostWithWaitingJob() { 644 void DestroyedHostWithWaitingJob() {
640 // Precondition, the host is waiting on cache selection. 645 // Precondition, the host is waiting on cache selection.
641 host_->pending_selected_cache_id_ = 1; 646 host_->pending_selected_cache_id_ = 1;
642 647
643 request_.reset(new MockURLRequest(GURL("http://blah/"))); 648 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
644 handler_.reset(host_->CreateRequestHandler(request_.get(), 649 handler_.reset(host_->CreateRequestHandler(request_.get(),
645 ResourceType::SUB_RESOURCE)); 650 ResourceType::SUB_RESOURCE));
646 EXPECT_TRUE(handler_.get()); 651 EXPECT_TRUE(handler_.get());
647 652
648 job_ = handler_->MaybeLoadResource(request_.get()); 653 job_ = handler_->MaybeLoadResource(request_.get());
649 EXPECT_TRUE(job_.get()); 654 EXPECT_TRUE(job_.get());
650 EXPECT_TRUE(job_->is_waiting()); 655 EXPECT_TRUE(job_->is_waiting());
651 656
652 backend_impl_->UnregisterHost(1); 657 backend_impl_->UnregisterHost(1);
653 host_ = NULL; 658 host_ = NULL;
654 EXPECT_TRUE(job_->has_been_killed()); 659 EXPECT_TRUE(job_->has_been_killed());
655 660
656 EXPECT_FALSE(handler_->MaybeLoadResource(request_.get())); 661 EXPECT_FALSE(handler_->MaybeLoadResource(request_.get()));
657 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( 662 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect(
658 request_.get(), GURL("http://blah/redirect"))); 663 request_.get(), GURL("http://blah/redirect")));
659 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get())); 664 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get()));
660 665
661 TestFinished(); 666 TestFinished();
662 } 667 }
663 668
664 // UnsupportedScheme ----------------------------- 669 // UnsupportedScheme -----------------------------
665 670
666 void UnsupportedScheme() { 671 void UnsupportedScheme() {
667 // Precondition, the host is waiting on cache selection. 672 // Precondition, the host is waiting on cache selection.
668 host_->pending_selected_cache_id_ = 1; 673 host_->pending_selected_cache_id_ = 1;
669 674
670 request_.reset(new MockURLRequest(GURL("ftp://blah/"))); 675 request_.reset(new MockURLRequest(GURL("ftp://blah/"), &empty_context_));
671 handler_.reset(host_->CreateRequestHandler(request_.get(), 676 handler_.reset(host_->CreateRequestHandler(request_.get(),
672 ResourceType::SUB_RESOURCE)); 677 ResourceType::SUB_RESOURCE));
673 EXPECT_TRUE(handler_.get()); // we could redirect to http (conceivably) 678 EXPECT_TRUE(handler_.get()); // we could redirect to http (conceivably)
674 679
675 EXPECT_FALSE(handler_->MaybeLoadResource(request_.get())); 680 EXPECT_FALSE(handler_->MaybeLoadResource(request_.get()));
676 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect( 681 EXPECT_FALSE(handler_->MaybeLoadFallbackForRedirect(
677 request_.get(), GURL("ftp://blah/redirect"))); 682 request_.get(), GURL("ftp://blah/redirect")));
678 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get())); 683 EXPECT_FALSE(handler_->MaybeLoadFallbackForResponse(request_.get()));
679 684
680 TestFinished(); 685 TestFinished();
681 } 686 }
682 687
683 // CanceledRequest ----------------------------- 688 // CanceledRequest -----------------------------
684 689
685 void CanceledRequest() { 690 void CanceledRequest() {
686 request_.reset(new MockURLRequest(GURL("http://blah/"))); 691 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
687 handler_.reset(host_->CreateRequestHandler(request_.get(), 692 handler_.reset(host_->CreateRequestHandler(request_.get(),
688 ResourceType::MAIN_FRAME)); 693 ResourceType::MAIN_FRAME));
689 EXPECT_TRUE(handler_.get()); 694 EXPECT_TRUE(handler_.get());
690 695
691 job_ = handler_->MaybeLoadResource(request_.get()); 696 job_ = handler_->MaybeLoadResource(request_.get());
692 EXPECT_TRUE(job_.get()); 697 EXPECT_TRUE(job_.get());
693 EXPECT_TRUE(job_->is_waiting()); 698 EXPECT_TRUE(job_->is_waiting());
694 EXPECT_FALSE(job_->has_been_started()); 699 EXPECT_FALSE(job_->has_been_started());
695 700
696 mock_factory_job_ = job_.get(); 701 mock_factory_job_ = job_.get();
(...skipping 13 matching lines...) Expand all
710 void WorkerRequest() { 715 void WorkerRequest() {
711 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( 716 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType(
712 ResourceType::MAIN_FRAME)); 717 ResourceType::MAIN_FRAME));
713 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( 718 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType(
714 ResourceType::SUB_FRAME)); 719 ResourceType::SUB_FRAME));
715 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType( 720 EXPECT_TRUE(AppCacheRequestHandler::IsMainResourceType(
716 ResourceType::SHARED_WORKER)); 721 ResourceType::SHARED_WORKER));
717 EXPECT_FALSE(AppCacheRequestHandler::IsMainResourceType( 722 EXPECT_FALSE(AppCacheRequestHandler::IsMainResourceType(
718 ResourceType::WORKER)); 723 ResourceType::WORKER));
719 724
720 request_.reset(new MockURLRequest(GURL("http://blah/"))); 725 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
721 726
722 const int kParentHostId = host_->host_id(); 727 const int kParentHostId = host_->host_id();
723 const int kWorkerHostId = 2; 728 const int kWorkerHostId = 2;
724 const int kAbandonedWorkerHostId = 3; 729 const int kAbandonedWorkerHostId = 3;
725 const int kNonExsitingHostId = 700; 730 const int kNonExsitingHostId = 700;
726 731
727 backend_impl_->RegisterHost(kWorkerHostId); 732 backend_impl_->RegisterHost(kWorkerHostId);
728 AppCacheHost* worker_host = backend_impl_->GetHost(kWorkerHostId); 733 AppCacheHost* worker_host = backend_impl_->GetHost(kWorkerHostId);
729 worker_host->SelectCacheForWorker(kParentHostId, kMockProcessId); 734 worker_host->SelectCacheForWorker(kParentHostId, kMockProcessId);
730 handler_.reset(worker_host->CreateRequestHandler( 735 handler_.reset(worker_host->CreateRequestHandler(
(...skipping 16 matching lines...) Expand all
747 TestFinished(); 752 TestFinished();
748 } 753 }
749 754
750 // MainResource_Blocked -------------------------------------------------- 755 // MainResource_Blocked --------------------------------------------------
751 756
752 void MainResource_Blocked() { 757 void MainResource_Blocked() {
753 PushNextTask( 758 PushNextTask(
754 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Blocked, 759 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Blocked,
755 base::Unretained(this))); 760 base::Unretained(this)));
756 761
757 request_.reset(new MockURLRequest(GURL("http://blah/"))); 762 request_.reset(new MockURLRequest(GURL("http://blah/"), &empty_context_));
758 handler_.reset(host_->CreateRequestHandler(request_.get(), 763 handler_.reset(host_->CreateRequestHandler(request_.get(),
759 ResourceType::MAIN_FRAME)); 764 ResourceType::MAIN_FRAME));
760 EXPECT_TRUE(handler_.get()); 765 EXPECT_TRUE(handler_.get());
761 766
762 mock_policy_->can_load_return_value_ = false; 767 mock_policy_->can_load_return_value_ = false;
763 mock_storage()->SimulateFindMainResource( 768 mock_storage()->SimulateFindMainResource(
764 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 769 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
765 GURL(), AppCacheEntry(), 770 GURL(), AppCacheEntry(),
766 1, 2, GURL("http://blah/manifest/")); 771 1, 2, GURL("http://blah/manifest/"));
767 772
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 811
807 // Data members -------------------------------------------------- 812 // Data members --------------------------------------------------
808 813
809 scoped_ptr<base::WaitableEvent> test_finished_event_; 814 scoped_ptr<base::WaitableEvent> test_finished_event_;
810 std::stack<base::Closure> task_stack_; 815 std::stack<base::Closure> task_stack_;
811 scoped_ptr<MockAppCacheService> mock_service_; 816 scoped_ptr<MockAppCacheService> mock_service_;
812 scoped_ptr<AppCacheBackendImpl> backend_impl_; 817 scoped_ptr<AppCacheBackendImpl> backend_impl_;
813 scoped_ptr<MockFrontend> mock_frontend_; 818 scoped_ptr<MockFrontend> mock_frontend_;
814 scoped_ptr<MockAppCachePolicy> mock_policy_; 819 scoped_ptr<MockAppCachePolicy> mock_policy_;
815 AppCacheHost* host_; 820 AppCacheHost* host_;
821 net::URLRequestContext empty_context_;
816 scoped_ptr<MockURLRequest> request_; 822 scoped_ptr<MockURLRequest> request_;
817 scoped_ptr<AppCacheRequestHandler> handler_; 823 scoped_ptr<AppCacheRequestHandler> handler_;
818 scoped_refptr<AppCacheURLRequestJob> job_; 824 scoped_refptr<AppCacheURLRequestJob> job_;
819 net::URLRequest::ProtocolFactory* orig_http_factory_; 825 net::URLRequest::ProtocolFactory* orig_http_factory_;
820 826
821 static scoped_ptr<base::Thread> io_thread_; 827 static scoped_ptr<base::Thread> io_thread_;
822 static net::URLRequestJob* mock_factory_job_; 828 static net::URLRequestJob* mock_factory_job_;
823 }; 829 };
824 830
825 // static 831 // static
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
894 900
895 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) { 901 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) {
896 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest); 902 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest);
897 } 903 }
898 904
899 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) { 905 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) {
900 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked); 906 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked);
901 } 907 }
902 908
903 } // namespace appcache 909 } // namespace appcache
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698