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

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

Issue 5384002: net: Remove typedef net::URLRequest URLRequest; (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/pickle.h" 9 #include "base/pickle.h"
10 #include "base/thread.h" 10 #include "base/thread.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 loaded_info_ = info; 49 loaded_info_ = info;
50 loaded_info_id_ = response_id; 50 loaded_info_id_ = response_id;
51 test_->ScheduleNextTask(); 51 test_->ScheduleNextTask();
52 } 52 }
53 53
54 scoped_refptr<AppCacheResponseInfo> loaded_info_; 54 scoped_refptr<AppCacheResponseInfo> loaded_info_;
55 int64 loaded_info_id_; 55 int64 loaded_info_id_;
56 AppCacheURLRequestJobTest* test_; 56 AppCacheURLRequestJobTest* test_;
57 }; 57 };
58 58
59 class MockURLRequestDelegate : public URLRequest::Delegate { 59 class MockURLRequestDelegate : public net::URLRequest::Delegate {
60 public: 60 public:
61 explicit MockURLRequestDelegate(AppCacheURLRequestJobTest* test) 61 explicit MockURLRequestDelegate(AppCacheURLRequestJobTest* test)
62 : test_(test), 62 : test_(test),
63 received_data_(new net::IOBuffer(kNumBlocks * kBlockSize)), 63 received_data_(new net::IOBuffer(kNumBlocks * kBlockSize)),
64 did_receive_headers_(false), amount_received_(0), 64 did_receive_headers_(false), amount_received_(0),
65 kill_after_amount_received_(0), kill_with_io_pending_(false) { 65 kill_after_amount_received_(0), kill_with_io_pending_(false) {
66 } 66 }
67 67
68 virtual void OnResponseStarted(URLRequest* request) { 68 virtual void OnResponseStarted(net::URLRequest* request) {
69 amount_received_ = 0; 69 amount_received_ = 0;
70 did_receive_headers_ = false; 70 did_receive_headers_ = false;
71 if (request->status().is_success()) { 71 if (request->status().is_success()) {
72 EXPECT_TRUE(request->response_headers()); 72 EXPECT_TRUE(request->response_headers());
73 did_receive_headers_ = true; 73 did_receive_headers_ = true;
74 received_info_ = request->response_info(); 74 received_info_ = request->response_info();
75 ReadSome(request); 75 ReadSome(request);
76 } else { 76 } else {
77 RequestComplete(); 77 RequestComplete();
78 } 78 }
79 } 79 }
80 80
81 virtual void OnReadCompleted(URLRequest* request, int bytes_read) { 81 virtual void OnReadCompleted(net::URLRequest* request, int bytes_read) {
82 if (bytes_read > 0) { 82 if (bytes_read > 0) {
83 amount_received_ += bytes_read; 83 amount_received_ += bytes_read;
84 84
85 if (kill_after_amount_received_ && !kill_with_io_pending_) { 85 if (kill_after_amount_received_ && !kill_with_io_pending_) {
86 if (amount_received_ >= kill_after_amount_received_) { 86 if (amount_received_ >= kill_after_amount_received_) {
87 request->Cancel(); 87 request->Cancel();
88 return; 88 return;
89 } 89 }
90 } 90 }
91 91
92 ReadSome(request); 92 ReadSome(request);
93 93
94 if (kill_after_amount_received_ && kill_with_io_pending_) { 94 if (kill_after_amount_received_ && kill_with_io_pending_) {
95 if (amount_received_ >= kill_after_amount_received_) { 95 if (amount_received_ >= kill_after_amount_received_) {
96 request->Cancel(); 96 request->Cancel();
97 return; 97 return;
98 } 98 }
99 } 99 }
100 } else { 100 } else {
101 RequestComplete(); 101 RequestComplete();
102 } 102 }
103 } 103 }
104 104
105 void ReadSome(URLRequest* request) { 105 void ReadSome(net::URLRequest* request) {
106 DCHECK(amount_received_ + kBlockSize <= kNumBlocks * kBlockSize); 106 DCHECK(amount_received_ + kBlockSize <= kNumBlocks * kBlockSize);
107 scoped_refptr<IOBuffer> wrapped_buffer( 107 scoped_refptr<IOBuffer> wrapped_buffer(
108 new net::WrappedIOBuffer(received_data_->data() + amount_received_)); 108 new net::WrappedIOBuffer(received_data_->data() + amount_received_));
109 int bytes_read = 0; 109 int bytes_read = 0;
110 EXPECT_FALSE(request->Read(wrapped_buffer, kBlockSize, &bytes_read)); 110 EXPECT_FALSE(request->Read(wrapped_buffer, kBlockSize, &bytes_read));
111 EXPECT_EQ(0, bytes_read); 111 EXPECT_EQ(0, bytes_read);
112 } 112 }
113 113
114 void RequestComplete() { 114 void RequestComplete() {
115 test_->ScheduleNextTask(); 115 test_->ScheduleNextTask();
116 } 116 }
117 117
118 AppCacheURLRequestJobTest* test_; 118 AppCacheURLRequestJobTest* test_;
119 net::HttpResponseInfo received_info_; 119 net::HttpResponseInfo received_info_;
120 scoped_refptr<net::IOBuffer> received_data_; 120 scoped_refptr<net::IOBuffer> received_data_;
121 bool did_receive_headers_; 121 bool did_receive_headers_;
122 int amount_received_; 122 int amount_received_;
123 int kill_after_amount_received_; 123 int kill_after_amount_received_;
124 bool kill_with_io_pending_; 124 bool kill_with_io_pending_;
125 }; 125 };
126 126
127 static URLRequestJob* MockHttpJobFactory(URLRequest* request, 127 static URLRequestJob* MockHttpJobFactory(net::URLRequest* request,
128 const std::string& scheme) { 128 const std::string& scheme) {
129 if (mock_factory_job_) { 129 if (mock_factory_job_) {
130 URLRequestJob* temp = mock_factory_job_; 130 URLRequestJob* temp = mock_factory_job_;
131 mock_factory_job_ = NULL; 131 mock_factory_job_ = NULL;
132 return temp; 132 return temp;
133 } else { 133 } else {
134 return new URLRequestErrorJob(request, net::ERR_INTERNET_DISCONNECTED); 134 return new URLRequestErrorJob(request, net::ERR_INTERNET_DISCONNECTED);
135 } 135 }
136 } 136 }
137 137
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 void RunTestOnIOThread(Method method) { 179 void RunTestOnIOThread(Method method) {
180 test_finished_event_ .reset(new base::WaitableEvent(false, false)); 180 test_finished_event_ .reset(new base::WaitableEvent(false, false));
181 io_thread_->message_loop()->PostTask( 181 io_thread_->message_loop()->PostTask(
182 FROM_HERE, new WrapperTask<Method>(this, method)); 182 FROM_HERE, new WrapperTask<Method>(this, method));
183 test_finished_event_->Wait(); 183 test_finished_event_->Wait();
184 } 184 }
185 185
186 void SetUpTest() { 186 void SetUpTest() {
187 DCHECK(MessageLoop::current() == io_thread_->message_loop()); 187 DCHECK(MessageLoop::current() == io_thread_->message_loop());
188 DCHECK(task_stack_.empty()); 188 DCHECK(task_stack_.empty());
189 orig_http_factory_ = URLRequest::RegisterProtocolFactory( 189 orig_http_factory_ = net::URLRequest::RegisterProtocolFactory(
190 "http", MockHttpJobFactory); 190 "http", MockHttpJobFactory);
191 url_request_delegate_.reset(new MockURLRequestDelegate(this)); 191 url_request_delegate_.reset(new MockURLRequestDelegate(this));
192 storage_delegate_.reset(new MockStorageDelegate(this)); 192 storage_delegate_.reset(new MockStorageDelegate(this));
193 service_.reset(new MockAppCacheService()); 193 service_.reset(new MockAppCacheService());
194 expected_read_result_ = 0; 194 expected_read_result_ = 0;
195 expected_write_result_ = 0; 195 expected_write_result_ = 0;
196 written_response_id_ = 0; 196 written_response_id_ = 0;
197 should_delete_reader_in_completion_callback_ = false; 197 should_delete_reader_in_completion_callback_ = false;
198 should_delete_writer_in_completion_callback_ = false; 198 should_delete_writer_in_completion_callback_ = false;
199 reader_deletion_count_down_ = 0; 199 reader_deletion_count_down_ = 0;
200 writer_deletion_count_down_ = 0; 200 writer_deletion_count_down_ = 0;
201 read_callback_was_called_ = false; 201 read_callback_was_called_ = false;
202 write_callback_was_called_ = false; 202 write_callback_was_called_ = false;
203 } 203 }
204 204
205 void TearDownTest() { 205 void TearDownTest() {
206 DCHECK(MessageLoop::current() == io_thread_->message_loop()); 206 DCHECK(MessageLoop::current() == io_thread_->message_loop());
207 URLRequest::RegisterProtocolFactory("http", orig_http_factory_); 207 net::URLRequest::RegisterProtocolFactory("http", orig_http_factory_);
208 orig_http_factory_ = NULL; 208 orig_http_factory_ = NULL;
209 request_.reset(); 209 request_.reset();
210 url_request_delegate_.reset(); 210 url_request_delegate_.reset();
211 DCHECK(!mock_factory_job_); 211 DCHECK(!mock_factory_job_);
212 212
213 while (!task_stack_.empty()) { 213 while (!task_stack_.empty()) {
214 delete task_stack_.top().first; 214 delete task_stack_.top().first;
215 task_stack_.pop(); 215 task_stack_.pop();
216 } 216 }
217 reader_.reset(); 217 reader_.reset();
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 return true; 386 return true;
387 } 387 }
388 388
389 // Individual Tests --------------------------------------------------------- 389 // Individual Tests ---------------------------------------------------------
390 // Some of the individual tests involve multiple async steps. Each test 390 // Some of the individual tests involve multiple async steps. Each test
391 // is delineated with a section header. 391 // is delineated with a section header.
392 392
393 // Basic ------------------------------------------------------------------- 393 // Basic -------------------------------------------------------------------
394 void Basic() { 394 void Basic() {
395 AppCacheStorage* storage = service_->storage(); 395 AppCacheStorage* storage = service_->storage();
396 URLRequest request(GURL("http://blah/"), NULL); 396 net::URLRequest request(GURL("http://blah/"), NULL);
397 scoped_refptr<AppCacheURLRequestJob> job; 397 scoped_refptr<AppCacheURLRequestJob> job;
398 398
399 // Create an instance and see that it looks as expected. 399 // Create an instance and see that it looks as expected.
400 400
401 job = new AppCacheURLRequestJob(&request, storage); 401 job = new AppCacheURLRequestJob(&request, storage);
402 EXPECT_TRUE(job->is_waiting()); 402 EXPECT_TRUE(job->is_waiting());
403 EXPECT_FALSE(job->is_delivering_appcache_response()); 403 EXPECT_FALSE(job->is_delivering_appcache_response());
404 EXPECT_FALSE(job->is_delivering_network_response()); 404 EXPECT_FALSE(job->is_delivering_network_response());
405 EXPECT_FALSE(job->is_delivering_error_response()); 405 EXPECT_FALSE(job->is_delivering_error_response());
406 EXPECT_FALSE(job->has_been_started()); 406 EXPECT_FALSE(job->has_been_started());
407 EXPECT_FALSE(job->has_been_killed()); 407 EXPECT_FALSE(job->has_been_killed());
408 EXPECT_EQ(GURL(), job->manifest_url()); 408 EXPECT_EQ(GURL(), job->manifest_url());
409 EXPECT_EQ(kNoCacheId, job->cache_id()); 409 EXPECT_EQ(kNoCacheId, job->cache_id());
410 EXPECT_FALSE(job->entry().has_response_id()); 410 EXPECT_FALSE(job->entry().has_response_id());
411 411
412 TestFinished(); 412 TestFinished();
413 } 413 }
414 414
415 // DeliveryOrders ----------------------------------------------------- 415 // DeliveryOrders -----------------------------------------------------
416 void DeliveryOrders() { 416 void DeliveryOrders() {
417 AppCacheStorage* storage = service_->storage(); 417 AppCacheStorage* storage = service_->storage();
418 URLRequest request(GURL("http://blah/"), NULL); 418 net::URLRequest request(GURL("http://blah/"), NULL);
419 scoped_refptr<AppCacheURLRequestJob> job; 419 scoped_refptr<AppCacheURLRequestJob> job;
420 420
421 // Create an instance, give it a delivery order and see that 421 // Create an instance, give it a delivery order and see that
422 // it looks as expected. 422 // it looks as expected.
423 423
424 job = new AppCacheURLRequestJob(&request, storage); 424 job = new AppCacheURLRequestJob(&request, storage);
425 job->DeliverErrorResponse(); 425 job->DeliverErrorResponse();
426 EXPECT_TRUE(job->is_delivering_error_response()); 426 EXPECT_TRUE(job->is_delivering_error_response());
427 EXPECT_FALSE(job->has_been_started()); 427 EXPECT_FALSE(job->has_been_started());
428 428
(...skipping 20 matching lines...) Expand all
449 449
450 // DeliverNetworkResponse -------------------------------------------------- 450 // DeliverNetworkResponse --------------------------------------------------
451 451
452 void DeliverNetworkResponse() { 452 void DeliverNetworkResponse() {
453 // This test has async steps. 453 // This test has async steps.
454 PushNextTask(NewRunnableMethod( 454 PushNextTask(NewRunnableMethod(
455 this, &AppCacheURLRequestJobTest::VerifyDeliverNetworkResponse)); 455 this, &AppCacheURLRequestJobTest::VerifyDeliverNetworkResponse));
456 456
457 AppCacheStorage* storage = service_->storage(); 457 AppCacheStorage* storage = service_->storage();
458 request_.reset( 458 request_.reset(
459 new URLRequest(GURL("http://blah/"), url_request_delegate_.get())); 459 new net::URLRequest(GURL("http://blah/"), url_request_delegate_.get()));
460 460
461 // Setup to create an AppCacheURLRequestJob with orders to deliver 461 // Setup to create an AppCacheURLRequestJob with orders to deliver
462 // a network response. 462 // a network response.
463 mock_factory_job_ = new AppCacheURLRequestJob(request_.get(), storage); 463 mock_factory_job_ = new AppCacheURLRequestJob(request_.get(), storage);
464 mock_factory_job_->DeliverNetworkResponse(); 464 mock_factory_job_->DeliverNetworkResponse();
465 EXPECT_TRUE(mock_factory_job_->is_delivering_network_response()); 465 EXPECT_TRUE(mock_factory_job_->is_delivering_network_response());
466 EXPECT_FALSE(mock_factory_job_->has_been_started()); 466 EXPECT_FALSE(mock_factory_job_->has_been_started());
467 467
468 // Start the request. 468 // Start the request.
469 request_->Start(); 469 request_->Start();
(...skipping 11 matching lines...) Expand all
481 481
482 // DeliverErrorResponse -------------------------------------------------- 482 // DeliverErrorResponse --------------------------------------------------
483 483
484 void DeliverErrorResponse() { 484 void DeliverErrorResponse() {
485 // This test has async steps. 485 // This test has async steps.
486 PushNextTask(NewRunnableMethod( 486 PushNextTask(NewRunnableMethod(
487 this, &AppCacheURLRequestJobTest::VerifyDeliverErrorResponse)); 487 this, &AppCacheURLRequestJobTest::VerifyDeliverErrorResponse));
488 488
489 AppCacheStorage* storage = service_->storage(); 489 AppCacheStorage* storage = service_->storage();
490 request_.reset( 490 request_.reset(
491 new URLRequest(GURL("http://blah/"), url_request_delegate_.get())); 491 new net::URLRequest(GURL("http://blah/"), url_request_delegate_.get()));
492 492
493 // Setup to create an AppCacheURLRequestJob with orders to deliver 493 // Setup to create an AppCacheURLRequestJob with orders to deliver
494 // a network response. 494 // a network response.
495 mock_factory_job_ = new AppCacheURLRequestJob(request_.get(), storage); 495 mock_factory_job_ = new AppCacheURLRequestJob(request_.get(), storage);
496 mock_factory_job_->DeliverErrorResponse(); 496 mock_factory_job_->DeliverErrorResponse();
497 EXPECT_TRUE(mock_factory_job_->is_delivering_error_response()); 497 EXPECT_TRUE(mock_factory_job_->is_delivering_error_response());
498 EXPECT_FALSE(mock_factory_job_->has_been_started()); 498 EXPECT_FALSE(mock_factory_job_->has_been_started());
499 499
500 // Start the request. 500 // Start the request.
501 request_->Start(); 501 request_->Start();
502 502
503 // The job should have been picked up. 503 // The job should have been picked up.
504 EXPECT_FALSE(mock_factory_job_); 504 EXPECT_FALSE(mock_factory_job_);
505 // Completion is async. 505 // Completion is async.
506 } 506 }
507 507
508 void VerifyDeliverErrorResponse() { 508 void VerifyDeliverErrorResponse() {
509 EXPECT_EQ(request_->status().os_error(), net::ERR_FAILED); 509 EXPECT_EQ(request_->status().os_error(), net::ERR_FAILED);
510 TestFinished(); 510 TestFinished();
511 } 511 }
512 512
513 // DeliverSmallAppCachedResponse -------------------------------------- 513 // DeliverSmallAppCachedResponse --------------------------------------
514 // "Small" being small enough to read completely in a single 514 // "Small" being small enough to read completely in a single
515 // request->Read call. 515 // request->Read call.
516 516
517 void DeliverSmallAppCachedResponse() { 517 void DeliverSmallAppCachedResponse() {
518 // This test has several async steps. 518 // This test has several async steps.
519 // 1. Write a small response to response storage. 519 // 1. Write a small response to response storage.
520 // 2. Use URLRequest to retrieve it. 520 // 2. Use net::URLRequest to retrieve it.
521 // 3. Verify we received what we expected to receive. 521 // 3. Verify we received what we expected to receive.
522 522
523 PushNextTask(NewRunnableMethod( 523 PushNextTask(NewRunnableMethod(
524 this, &AppCacheURLRequestJobTest::VerifyDeliverSmallAppCachedResponse)); 524 this, &AppCacheURLRequestJobTest::VerifyDeliverSmallAppCachedResponse));
525 PushNextTask(NewRunnableMethod( 525 PushNextTask(NewRunnableMethod(
526 this, &AppCacheURLRequestJobTest::RequestAppCachedResource, false)); 526 this, &AppCacheURLRequestJobTest::RequestAppCachedResource, false));
527 527
528 writer_.reset(service_->storage()->CreateResponseWriter(GURL())); 528 writer_.reset(service_->storage()->CreateResponseWriter(GURL()));
529 written_response_id_ = writer_->response_id(); 529 written_response_id_ = writer_->response_id();
530 WriteBasicResponse(); 530 WriteBasicResponse();
531 // Continues async 531 // Continues async
532 } 532 }
533 533
534 void RequestAppCachedResource(bool start_after_delivery_orders) { 534 void RequestAppCachedResource(bool start_after_delivery_orders) {
535 AppCacheStorage* storage = service_->storage(); 535 AppCacheStorage* storage = service_->storage();
536 request_.reset( 536 request_.reset(
537 new URLRequest(GURL("http://blah/"), url_request_delegate_.get())); 537 new net::URLRequest(GURL("http://blah/"), url_request_delegate_.get()));
538 538
539 // Setup to create an AppCacheURLRequestJob with orders to deliver 539 // Setup to create an AppCacheURLRequestJob with orders to deliver
540 // a network response. 540 // a network response.
541 scoped_refptr<AppCacheURLRequestJob> job( 541 scoped_refptr<AppCacheURLRequestJob> job(
542 new AppCacheURLRequestJob(request_.get(), storage)); 542 new AppCacheURLRequestJob(request_.get(), storage));
543 543
544 if (start_after_delivery_orders) { 544 if (start_after_delivery_orders) {
545 job->DeliverAppCachedResponse( 545 job->DeliverAppCachedResponse(
546 GURL(), 111, 546 GURL(), 111,
547 AppCacheEntry(AppCacheEntry::EXPLICIT, written_response_id_), 547 AppCacheEntry(AppCacheEntry::EXPLICIT, written_response_id_),
(...skipping 30 matching lines...) Expand all
578 strlen(kHttpBasicBody))); 578 strlen(kHttpBasicBody)));
579 TestFinished(); 579 TestFinished();
580 } 580 }
581 581
582 // DeliverLargeAppCachedResponse -------------------------------------- 582 // DeliverLargeAppCachedResponse --------------------------------------
583 // "Large" enough to require multiple calls to request->Read to complete. 583 // "Large" enough to require multiple calls to request->Read to complete.
584 584
585 void DeliverLargeAppCachedResponse() { 585 void DeliverLargeAppCachedResponse() {
586 // This test has several async steps. 586 // This test has several async steps.
587 // 1. Write a large response to response storage. 587 // 1. Write a large response to response storage.
588 // 2. Use URLRequest to retrieve it. 588 // 2. Use net::URLRequest to retrieve it.
589 // 3. Verify we received what we expected to receive. 589 // 3. Verify we received what we expected to receive.
590 590
591 PushNextTask(NewRunnableMethod( 591 PushNextTask(NewRunnableMethod(
592 this, &AppCacheURLRequestJobTest::VerifyDeliverLargeAppCachedResponse)); 592 this, &AppCacheURLRequestJobTest::VerifyDeliverLargeAppCachedResponse));
593 PushNextTask(NewRunnableMethod( 593 PushNextTask(NewRunnableMethod(
594 this, &AppCacheURLRequestJobTest::RequestAppCachedResource, true)); 594 this, &AppCacheURLRequestJobTest::RequestAppCachedResource, true));
595 595
596 writer_.reset(service_->storage()->CreateResponseWriter(GURL())); 596 writer_.reset(service_->storage()->CreateResponseWriter(GURL()));
597 written_response_id_ = writer_->response_id(); 597 written_response_id_ = writer_->response_id();
598 WriteLargeResponse(); 598 WriteLargeResponse();
(...skipping 22 matching lines...) Expand all
621 for (int i = 0; i < 3; ++i, p += kBlockSize) 621 for (int i = 0; i < 3; ++i, p += kBlockSize)
622 EXPECT_TRUE(CheckData(i + 1, p, kBlockSize)); 622 EXPECT_TRUE(CheckData(i + 1, p, kBlockSize));
623 TestFinished(); 623 TestFinished();
624 } 624 }
625 625
626 // DeliverPartialResponse -------------------------------------- 626 // DeliverPartialResponse --------------------------------------
627 627
628 void DeliverPartialResponse() { 628 void DeliverPartialResponse() {
629 // This test has several async steps. 629 // This test has several async steps.
630 // 1. Write a small response to response storage. 630 // 1. Write a small response to response storage.
631 // 2. Use URLRequest to retrieve it a subset using a range request 631 // 2. Use net::URLRequest to retrieve it a subset using a range request
632 // 3. Verify we received what we expected to receive. 632 // 3. Verify we received what we expected to receive.
633 PushNextTask(NewRunnableMethod( 633 PushNextTask(NewRunnableMethod(
634 this, &AppCacheURLRequestJobTest::VerifyDeliverPartialResponse)); 634 this, &AppCacheURLRequestJobTest::VerifyDeliverPartialResponse));
635 PushNextTask(NewRunnableMethod( 635 PushNextTask(NewRunnableMethod(
636 this, &AppCacheURLRequestJobTest::MakeRangeRequest)); 636 this, &AppCacheURLRequestJobTest::MakeRangeRequest));
637 writer_.reset(service_->storage()->CreateResponseWriter(GURL())); 637 writer_.reset(service_->storage()->CreateResponseWriter(GURL()));
638 written_response_id_ = writer_->response_id(); 638 written_response_id_ = writer_->response_id();
639 WriteBasicResponse(); 639 WriteBasicResponse();
640 // Continues async 640 // Continues async
641 } 641 }
642 642
643 void MakeRangeRequest() { 643 void MakeRangeRequest() {
644 AppCacheStorage* storage = service_->storage(); 644 AppCacheStorage* storage = service_->storage();
645 request_.reset( 645 request_.reset(
646 new URLRequest(GURL("http://blah/"), url_request_delegate_.get())); 646 new net::URLRequest(GURL("http://blah/"), url_request_delegate_.get()));
647 647
648 // Request a range, the 3 middle chars out of 'Hello' 648 // Request a range, the 3 middle chars out of 'Hello'
649 net::HttpRequestHeaders extra_headers; 649 net::HttpRequestHeaders extra_headers;
650 extra_headers.SetHeader("Range", "bytes= 1-3"); 650 extra_headers.SetHeader("Range", "bytes= 1-3");
651 request_->SetExtraRequestHeaders(extra_headers); 651 request_->SetExtraRequestHeaders(extra_headers);
652 652
653 // Create job with orders to deliver an appcached entry. 653 // Create job with orders to deliver an appcached entry.
654 scoped_refptr<AppCacheURLRequestJob> job( 654 scoped_refptr<AppCacheURLRequestJob> job(
655 new AppCacheURLRequestJob(request_.get(), storage)); 655 new AppCacheURLRequestJob(request_.get(), storage));
656 job->DeliverAppCachedResponse( 656 job->DeliverAppCachedResponse(
(...skipping 28 matching lines...) Expand all
685 EXPECT_EQ(3, range_end); 685 EXPECT_EQ(3, range_end);
686 EXPECT_EQ(5, object_size); 686 EXPECT_EQ(5, object_size);
687 TestFinished(); 687 TestFinished();
688 } 688 }
689 689
690 // CancelRequest -------------------------------------- 690 // CancelRequest --------------------------------------
691 691
692 void CancelRequest() { 692 void CancelRequest() {
693 // This test has several async steps. 693 // This test has several async steps.
694 // 1. Write a large response to response storage. 694 // 1. Write a large response to response storage.
695 // 2. Use URLRequest to retrieve it. 695 // 2. Use net::URLRequest to retrieve it.
696 // 3. Cancel the request after data starts coming in. 696 // 3. Cancel the request after data starts coming in.
697 697
698 PushNextTask(NewRunnableMethod( 698 PushNextTask(NewRunnableMethod(
699 this, &AppCacheURLRequestJobTest::VerifyCancel)); 699 this, &AppCacheURLRequestJobTest::VerifyCancel));
700 PushNextTask(NewRunnableMethod( 700 PushNextTask(NewRunnableMethod(
701 this, &AppCacheURLRequestJobTest::RequestAppCachedResource, true)); 701 this, &AppCacheURLRequestJobTest::RequestAppCachedResource, true));
702 702
703 writer_.reset(service_->storage()->CreateResponseWriter(GURL())); 703 writer_.reset(service_->storage()->CreateResponseWriter(GURL()));
704 written_response_id_ = writer_->response_id(); 704 written_response_id_ = writer_->response_id();
705 WriteLargeResponse(); 705 WriteLargeResponse();
706 706
707 url_request_delegate_->kill_after_amount_received_ = kBlockSize; 707 url_request_delegate_->kill_after_amount_received_ = kBlockSize;
708 url_request_delegate_->kill_with_io_pending_ = false; 708 url_request_delegate_->kill_with_io_pending_ = false;
709 // Continues async 709 // Continues async
710 } 710 }
711 711
712 void VerifyCancel() { 712 void VerifyCancel() {
713 EXPECT_EQ(URLRequestStatus::CANCELED, 713 EXPECT_EQ(URLRequestStatus::CANCELED,
714 request_->status().status()); 714 request_->status().status());
715 TestFinished(); 715 TestFinished();
716 } 716 }
717 717
718 // CancelRequestWithIOPending -------------------------------------- 718 // CancelRequestWithIOPending --------------------------------------
719 719
720 void CancelRequestWithIOPending() { 720 void CancelRequestWithIOPending() {
721 // This test has several async steps. 721 // This test has several async steps.
722 // 1. Write a large response to response storage. 722 // 1. Write a large response to response storage.
723 // 2. Use URLRequest to retrieve it. 723 // 2. Use net::URLRequest to retrieve it.
724 // 3. Cancel the request after data starts coming in. 724 // 3. Cancel the request after data starts coming in.
725 725
726 PushNextTask(NewRunnableMethod( 726 PushNextTask(NewRunnableMethod(
727 this, &AppCacheURLRequestJobTest::VerifyCancel)); 727 this, &AppCacheURLRequestJobTest::VerifyCancel));
728 PushNextTask(NewRunnableMethod( 728 PushNextTask(NewRunnableMethod(
729 this, &AppCacheURLRequestJobTest::RequestAppCachedResource, true)); 729 this, &AppCacheURLRequestJobTest::RequestAppCachedResource, true));
730 730
731 writer_.reset(service_->storage()->CreateResponseWriter(GURL())); 731 writer_.reset(service_->storage()->CreateResponseWriter(GURL()));
732 written_response_id_ = writer_->response_id(); 732 written_response_id_ = writer_->response_id();
733 WriteLargeResponse(); 733 WriteLargeResponse();
(...skipping 25 matching lines...) Expand all
759 scoped_ptr<AppCacheResponseWriter> writer_; 759 scoped_ptr<AppCacheResponseWriter> writer_;
760 scoped_refptr<HttpResponseInfoIOBuffer> write_info_buffer_; 760 scoped_refptr<HttpResponseInfoIOBuffer> write_info_buffer_;
761 scoped_refptr<IOBuffer> write_buffer_; 761 scoped_refptr<IOBuffer> write_buffer_;
762 int expected_write_result_; 762 int expected_write_result_;
763 net::CompletionCallbackImpl<AppCacheURLRequestJobTest> write_callback_; 763 net::CompletionCallbackImpl<AppCacheURLRequestJobTest> write_callback_;
764 net::CompletionCallbackImpl<AppCacheURLRequestJobTest> write_info_callback_; 764 net::CompletionCallbackImpl<AppCacheURLRequestJobTest> write_info_callback_;
765 bool should_delete_writer_in_completion_callback_; 765 bool should_delete_writer_in_completion_callback_;
766 int writer_deletion_count_down_; 766 int writer_deletion_count_down_;
767 bool write_callback_was_called_; 767 bool write_callback_was_called_;
768 768
769 URLRequest::ProtocolFactory* orig_http_factory_; 769 net::URLRequest::ProtocolFactory* orig_http_factory_;
770 scoped_ptr<URLRequest> request_; 770 scoped_ptr<net::URLRequest> request_;
771 scoped_ptr<MockURLRequestDelegate> url_request_delegate_; 771 scoped_ptr<MockURLRequestDelegate> url_request_delegate_;
772 772
773 static scoped_ptr<base::Thread> io_thread_; 773 static scoped_ptr<base::Thread> io_thread_;
774 static AppCacheURLRequestJob* mock_factory_job_; 774 static AppCacheURLRequestJob* mock_factory_job_;
775 }; 775 };
776 776
777 // static 777 // static
778 scoped_ptr<base::Thread> AppCacheURLRequestJobTest::io_thread_; 778 scoped_ptr<base::Thread> AppCacheURLRequestJobTest::io_thread_;
779 AppCacheURLRequestJob* AppCacheURLRequestJobTest::mock_factory_job_ = NULL; 779 AppCacheURLRequestJob* AppCacheURLRequestJobTest::mock_factory_job_ = NULL;
780 780
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
812 812
813 TEST_F(AppCacheURLRequestJobTest, CancelRequestWithIOPending) { 813 TEST_F(AppCacheURLRequestJobTest, CancelRequestWithIOPending) {
814 RunTestOnIOThread(&AppCacheURLRequestJobTest::CancelRequestWithIOPending); 814 RunTestOnIOThread(&AppCacheURLRequestJobTest::CancelRequestWithIOPending);
815 } 815 }
816 816
817 } // namespace appcache 817 } // namespace appcache
818 818
819 // AppCacheURLRequestJobTest is expected to always live longer than the 819 // AppCacheURLRequestJobTest is expected to always live longer than the
820 // runnable methods. This lets us call NewRunnableMethod on its instances. 820 // runnable methods. This lets us call NewRunnableMethod on its instances.
821 DISABLE_RUNNABLE_METHOD_REFCOUNT(appcache::AppCacheURLRequestJobTest); 821 DISABLE_RUNNABLE_METHOD_REFCOUNT(appcache::AppCacheURLRequestJobTest);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698