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

Side by Side Diff: webkit/appcache/appcache_url_request_job_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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <utility> 6 #include <utility>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
11 #include "base/compiler_specific.h" 11 #include "base/compiler_specific.h"
12 #include "base/pickle.h" 12 #include "base/pickle.h"
13 #include "base/synchronization/waitable_event.h" 13 #include "base/synchronization/waitable_event.h"
14 #include "base/threading/thread.h" 14 #include "base/threading/thread.h"
15 #include "net/base/io_buffer.h" 15 #include "net/base/io_buffer.h"
16 #include "net/base/net_errors.h" 16 #include "net/base/net_errors.h"
17 #include "net/http/http_response_headers.h" 17 #include "net/http/http_response_headers.h"
18 #include "net/url_request/url_request.h" 18 #include "net/url_request/url_request.h"
19 #include "net/url_request/url_request_context.h"
19 #include "net/url_request/url_request_error_job.h" 20 #include "net/url_request/url_request_error_job.h"
20 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
21 #include "webkit/appcache/appcache_response.h" 22 #include "webkit/appcache/appcache_response.h"
22 #include "webkit/appcache/appcache_url_request_job.h" 23 #include "webkit/appcache/appcache_url_request_job.h"
23 #include "webkit/appcache/mock_appcache_service.h" 24 #include "webkit/appcache/mock_appcache_service.h"
24 25
25 using net::IOBuffer; 26 using net::IOBuffer;
26 using net::WrappedIOBuffer; 27 using net::WrappedIOBuffer;
27 28
28 namespace appcache { 29 namespace appcache {
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 return true; 363 return true;
363 } 364 }
364 365
365 // Individual Tests --------------------------------------------------------- 366 // Individual Tests ---------------------------------------------------------
366 // Some of the individual tests involve multiple async steps. Each test 367 // Some of the individual tests involve multiple async steps. Each test
367 // is delineated with a section header. 368 // is delineated with a section header.
368 369
369 // Basic ------------------------------------------------------------------- 370 // Basic -------------------------------------------------------------------
370 void Basic() { 371 void Basic() {
371 AppCacheStorage* storage = service_->storage(); 372 AppCacheStorage* storage = service_->storage();
372 net::URLRequest request(GURL("http://blah/"), NULL); 373 net::URLRequest request(GURL("http://blah/"), NULL, &empty_context_);
373 scoped_refptr<AppCacheURLRequestJob> job; 374 scoped_refptr<AppCacheURLRequestJob> job;
374 375
375 // Create an instance and see that it looks as expected. 376 // Create an instance and see that it looks as expected.
376 377
377 job = new AppCacheURLRequestJob(&request, storage); 378 job = new AppCacheURLRequestJob(&request, storage);
378 EXPECT_TRUE(job->is_waiting()); 379 EXPECT_TRUE(job->is_waiting());
379 EXPECT_FALSE(job->is_delivering_appcache_response()); 380 EXPECT_FALSE(job->is_delivering_appcache_response());
380 EXPECT_FALSE(job->is_delivering_network_response()); 381 EXPECT_FALSE(job->is_delivering_network_response());
381 EXPECT_FALSE(job->is_delivering_error_response()); 382 EXPECT_FALSE(job->is_delivering_error_response());
382 EXPECT_FALSE(job->has_been_started()); 383 EXPECT_FALSE(job->has_been_started());
383 EXPECT_FALSE(job->has_been_killed()); 384 EXPECT_FALSE(job->has_been_killed());
384 EXPECT_EQ(GURL(), job->manifest_url()); 385 EXPECT_EQ(GURL(), job->manifest_url());
385 EXPECT_EQ(kNoCacheId, job->cache_id()); 386 EXPECT_EQ(kNoCacheId, job->cache_id());
386 EXPECT_FALSE(job->entry().has_response_id()); 387 EXPECT_FALSE(job->entry().has_response_id());
387 388
388 TestFinished(); 389 TestFinished();
389 } 390 }
390 391
391 // DeliveryOrders ----------------------------------------------------- 392 // DeliveryOrders -----------------------------------------------------
392 void DeliveryOrders() { 393 void DeliveryOrders() {
393 AppCacheStorage* storage = service_->storage(); 394 AppCacheStorage* storage = service_->storage();
394 net::URLRequest request(GURL("http://blah/"), NULL); 395 net::URLRequest request(GURL("http://blah/"), NULL, &empty_context_);
395 scoped_refptr<AppCacheURLRequestJob> job; 396 scoped_refptr<AppCacheURLRequestJob> job;
396 397
397 // Create an instance, give it a delivery order and see that 398 // Create an instance, give it a delivery order and see that
398 // it looks as expected. 399 // it looks as expected.
399 400
400 job = new AppCacheURLRequestJob(&request, storage); 401 job = new AppCacheURLRequestJob(&request, storage);
401 job->DeliverErrorResponse(); 402 job->DeliverErrorResponse();
402 EXPECT_TRUE(job->is_delivering_error_response()); 403 EXPECT_TRUE(job->is_delivering_error_response());
403 EXPECT_FALSE(job->has_been_started()); 404 EXPECT_FALSE(job->has_been_started());
404 405
(...skipping 24 matching lines...) Expand all
429 // DeliverNetworkResponse -------------------------------------------------- 430 // DeliverNetworkResponse --------------------------------------------------
430 431
431 void DeliverNetworkResponse() { 432 void DeliverNetworkResponse() {
432 // This test has async steps. 433 // This test has async steps.
433 PushNextTask( 434 PushNextTask(
434 base::Bind(&AppCacheURLRequestJobTest::VerifyDeliverNetworkResponse, 435 base::Bind(&AppCacheURLRequestJobTest::VerifyDeliverNetworkResponse,
435 base::Unretained(this))); 436 base::Unretained(this)));
436 437
437 AppCacheStorage* storage = service_->storage(); 438 AppCacheStorage* storage = service_->storage();
438 request_.reset( 439 request_.reset(
439 new net::URLRequest(GURL("http://blah/"), url_request_delegate_.get())); 440 new net::URLRequest(GURL("http://blah/"),
441 url_request_delegate_.get(),
442 &empty_context_));
440 443
441 // Setup to create an AppCacheURLRequestJob with orders to deliver 444 // Setup to create an AppCacheURLRequestJob with orders to deliver
442 // a network response. 445 // a network response.
443 mock_factory_job_ = new AppCacheURLRequestJob(request_.get(), storage); 446 mock_factory_job_ = new AppCacheURLRequestJob(request_.get(), storage);
444 mock_factory_job_->DeliverNetworkResponse(); 447 mock_factory_job_->DeliverNetworkResponse();
445 EXPECT_TRUE(mock_factory_job_->is_delivering_network_response()); 448 EXPECT_TRUE(mock_factory_job_->is_delivering_network_response());
446 EXPECT_FALSE(mock_factory_job_->has_been_started()); 449 EXPECT_FALSE(mock_factory_job_->has_been_started());
447 450
448 // Start the request. 451 // Start the request.
449 request_->Start(); 452 request_->Start();
(...skipping 12 matching lines...) Expand all
462 // DeliverErrorResponse -------------------------------------------------- 465 // DeliverErrorResponse --------------------------------------------------
463 466
464 void DeliverErrorResponse() { 467 void DeliverErrorResponse() {
465 // This test has async steps. 468 // This test has async steps.
466 PushNextTask( 469 PushNextTask(
467 base::Bind(&AppCacheURLRequestJobTest::VerifyDeliverErrorResponse, 470 base::Bind(&AppCacheURLRequestJobTest::VerifyDeliverErrorResponse,
468 base::Unretained(this))); 471 base::Unretained(this)));
469 472
470 AppCacheStorage* storage = service_->storage(); 473 AppCacheStorage* storage = service_->storage();
471 request_.reset( 474 request_.reset(
472 new net::URLRequest(GURL("http://blah/"), url_request_delegate_.get())); 475 new net::URLRequest(GURL("http://blah/"),
476 url_request_delegate_.get(),
477 &empty_context_));
473 478
474 // Setup to create an AppCacheURLRequestJob with orders to deliver 479 // Setup to create an AppCacheURLRequestJob with orders to deliver
475 // a network response. 480 // a network response.
476 mock_factory_job_ = new AppCacheURLRequestJob(request_.get(), storage); 481 mock_factory_job_ = new AppCacheURLRequestJob(request_.get(), storage);
477 mock_factory_job_->DeliverErrorResponse(); 482 mock_factory_job_->DeliverErrorResponse();
478 EXPECT_TRUE(mock_factory_job_->is_delivering_error_response()); 483 EXPECT_TRUE(mock_factory_job_->is_delivering_error_response());
479 EXPECT_FALSE(mock_factory_job_->has_been_started()); 484 EXPECT_FALSE(mock_factory_job_->has_been_started());
480 485
481 // Start the request. 486 // Start the request.
482 request_->Start(); 487 request_->Start();
(...skipping 27 matching lines...) Expand all
510 515
511 writer_.reset(service_->storage()->CreateResponseWriter(GURL(), 0)); 516 writer_.reset(service_->storage()->CreateResponseWriter(GURL(), 0));
512 written_response_id_ = writer_->response_id(); 517 written_response_id_ = writer_->response_id();
513 WriteBasicResponse(); 518 WriteBasicResponse();
514 // Continues async 519 // Continues async
515 } 520 }
516 521
517 void RequestAppCachedResource(bool start_after_delivery_orders) { 522 void RequestAppCachedResource(bool start_after_delivery_orders) {
518 AppCacheStorage* storage = service_->storage(); 523 AppCacheStorage* storage = service_->storage();
519 request_.reset( 524 request_.reset(
520 new net::URLRequest(GURL("http://blah/"), url_request_delegate_.get())); 525 new net::URLRequest(GURL("http://blah/"),
526 url_request_delegate_.get(),
527 &empty_context_));
521 528
522 // Setup to create an AppCacheURLRequestJob with orders to deliver 529 // Setup to create an AppCacheURLRequestJob with orders to deliver
523 // a network response. 530 // a network response.
524 scoped_refptr<AppCacheURLRequestJob> job( 531 scoped_refptr<AppCacheURLRequestJob> job(
525 new AppCacheURLRequestJob(request_.get(), storage)); 532 new AppCacheURLRequestJob(request_.get(), storage));
526 533
527 if (start_after_delivery_orders) { 534 if (start_after_delivery_orders) {
528 job->DeliverAppCachedResponse( 535 job->DeliverAppCachedResponse(
529 GURL(), 0, 111, 536 GURL(), 0, 111,
530 AppCacheEntry(AppCacheEntry::EXPLICIT, written_response_id_), 537 AppCacheEntry(AppCacheEntry::EXPLICIT, written_response_id_),
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
622 &AppCacheURLRequestJobTest::MakeRangeRequest, base::Unretained(this))); 629 &AppCacheURLRequestJobTest::MakeRangeRequest, base::Unretained(this)));
623 writer_.reset(service_->storage()->CreateResponseWriter(GURL(), 0)); 630 writer_.reset(service_->storage()->CreateResponseWriter(GURL(), 0));
624 written_response_id_ = writer_->response_id(); 631 written_response_id_ = writer_->response_id();
625 WriteBasicResponse(); 632 WriteBasicResponse();
626 // Continues async 633 // Continues async
627 } 634 }
628 635
629 void MakeRangeRequest() { 636 void MakeRangeRequest() {
630 AppCacheStorage* storage = service_->storage(); 637 AppCacheStorage* storage = service_->storage();
631 request_.reset( 638 request_.reset(
632 new net::URLRequest(GURL("http://blah/"), url_request_delegate_.get())); 639 new net::URLRequest(GURL("http://blah/"),
640 url_request_delegate_.get(),
641 &empty_context_));
633 642
634 // Request a range, the 3 middle chars out of 'Hello' 643 // Request a range, the 3 middle chars out of 'Hello'
635 net::HttpRequestHeaders extra_headers; 644 net::HttpRequestHeaders extra_headers;
636 extra_headers.SetHeader("Range", "bytes= 1-3"); 645 extra_headers.SetHeader("Range", "bytes= 1-3");
637 request_->SetExtraRequestHeaders(extra_headers); 646 request_->SetExtraRequestHeaders(extra_headers);
638 647
639 // Create job with orders to deliver an appcached entry. 648 // Create job with orders to deliver an appcached entry.
640 scoped_refptr<AppCacheURLRequestJob> job( 649 scoped_refptr<AppCacheURLRequestJob> job(
641 new AppCacheURLRequestJob(request_.get(), storage)); 650 new AppCacheURLRequestJob(request_.get(), storage));
642 job->DeliverAppCachedResponse( 651 job->DeliverAppCachedResponse(
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
740 int reader_deletion_count_down_; 749 int reader_deletion_count_down_;
741 750
742 int64 written_response_id_; 751 int64 written_response_id_;
743 scoped_ptr<AppCacheResponseWriter> writer_; 752 scoped_ptr<AppCacheResponseWriter> writer_;
744 scoped_refptr<HttpResponseInfoIOBuffer> write_info_buffer_; 753 scoped_refptr<HttpResponseInfoIOBuffer> write_info_buffer_;
745 scoped_refptr<IOBuffer> write_buffer_; 754 scoped_refptr<IOBuffer> write_buffer_;
746 int expected_write_result_; 755 int expected_write_result_;
747 int writer_deletion_count_down_; 756 int writer_deletion_count_down_;
748 757
749 net::URLRequest::ProtocolFactory* orig_http_factory_; 758 net::URLRequest::ProtocolFactory* orig_http_factory_;
759 net::URLRequestContext empty_context_;
750 scoped_ptr<net::URLRequest> request_; 760 scoped_ptr<net::URLRequest> request_;
751 scoped_ptr<MockURLRequestDelegate> url_request_delegate_; 761 scoped_ptr<MockURLRequestDelegate> url_request_delegate_;
752 762
753 static scoped_ptr<base::Thread> io_thread_; 763 static scoped_ptr<base::Thread> io_thread_;
754 static AppCacheURLRequestJob* mock_factory_job_; 764 static AppCacheURLRequestJob* mock_factory_job_;
755 }; 765 };
756 766
757 // static 767 // static
758 scoped_ptr<base::Thread> AppCacheURLRequestJobTest::io_thread_; 768 scoped_ptr<base::Thread> AppCacheURLRequestJobTest::io_thread_;
759 AppCacheURLRequestJob* AppCacheURLRequestJobTest::mock_factory_job_ = NULL; 769 AppCacheURLRequestJob* AppCacheURLRequestJobTest::mock_factory_job_ = NULL;
(...skipping 28 matching lines...) Expand all
788 798
789 TEST_F(AppCacheURLRequestJobTest, CancelRequest) { 799 TEST_F(AppCacheURLRequestJobTest, CancelRequest) {
790 RunTestOnIOThread(&AppCacheURLRequestJobTest::CancelRequest); 800 RunTestOnIOThread(&AppCacheURLRequestJobTest::CancelRequest);
791 } 801 }
792 802
793 TEST_F(AppCacheURLRequestJobTest, CancelRequestWithIOPending) { 803 TEST_F(AppCacheURLRequestJobTest, CancelRequestWithIOPending) {
794 RunTestOnIOThread(&AppCacheURLRequestJobTest::CancelRequestWithIOPending); 804 RunTestOnIOThread(&AppCacheURLRequestJobTest::CancelRequestWithIOPending);
795 } 805 }
796 806
797 } // namespace appcache 807 } // namespace appcache
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698