OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/appcache/appcache_request_handler.h" | 5 #include "content/browser/appcache/appcache_request_handler.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <stack> | 9 #include <stack> |
10 #include <string> | 10 #include <string> |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 template <class Method> | 72 template <class Method> |
73 void MethodWrapper(Method method) { | 73 void MethodWrapper(Method method) { |
74 SetUpTest(); | 74 SetUpTest(); |
75 (this->*method)(); | 75 (this->*method)(); |
76 } | 76 } |
77 | 77 |
78 // Subclasses to simulate particular responses so test cases can | 78 // Subclasses to simulate particular responses so test cases can |
79 // exercise fallback code paths. | 79 // exercise fallback code paths. |
80 | 80 |
81 class MockURLRequestDelegate : public net::URLRequest::Delegate { | 81 class MockURLRequestDelegate : public net::URLRequest::Delegate { |
82 void OnResponseStarted(net::URLRequest* request) override {} | 82 public: |
83 void OnReadCompleted(net::URLRequest* request, int bytes_read) override {} | 83 MockURLRequestDelegate() : request_status_(1) {} |
| 84 |
| 85 void OnResponseStarted(net::URLRequest* request, int net_error) override { |
| 86 DCHECK_NE(net::ERR_IO_PENDING, net_error); |
| 87 request_status_ = net_error; |
| 88 } |
| 89 |
| 90 void OnReadCompleted(net::URLRequest* request, int bytes_read) override { |
| 91 DCHECK_NE(net::ERR_IO_PENDING, bytes_read); |
| 92 if (bytes_read >= 0) |
| 93 request_status_ = net::OK; |
| 94 else |
| 95 request_status_ = bytes_read; |
| 96 } |
| 97 |
| 98 int request_status() const { return request_status_; } |
| 99 |
| 100 private: |
| 101 int request_status_; |
84 }; | 102 }; |
85 | 103 |
86 class MockURLRequestJob : public net::URLRequestJob { | 104 class MockURLRequestJob : public net::URLRequestJob { |
87 public: | 105 public: |
88 MockURLRequestJob(net::URLRequest* request, | 106 MockURLRequestJob(net::URLRequest* request, |
89 net::NetworkDelegate* network_delegate, | 107 net::NetworkDelegate* network_delegate, |
90 int response_code) | 108 int response_code) |
91 : net::URLRequestJob(request, network_delegate), | 109 : net::URLRequestJob(request, network_delegate), |
92 response_code_(response_code), | 110 response_code_(response_code), |
93 has_response_info_(false) {} | 111 has_response_info_(false) {} |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
378 // We have to wait for completion of storage->FindResponseForMainRequest. | 396 // We have to wait for completion of storage->FindResponseForMainRequest. |
379 ScheduleNextTask(); | 397 ScheduleNextTask(); |
380 } | 398 } |
381 | 399 |
382 void SimulateResponseCode(int response_code) { | 400 void SimulateResponseCode(int response_code) { |
383 job_factory_->SetJob(base::MakeUnique<MockURLRequestJob>( | 401 job_factory_->SetJob(base::MakeUnique<MockURLRequestJob>( |
384 request_.get(), request_->context()->network_delegate(), | 402 request_.get(), request_->context()->network_delegate(), |
385 response_code)); | 403 response_code)); |
386 request_->Start(); | 404 request_->Start(); |
387 // All our simulation needs to satisfy are the following two DCHECKs | 405 // All our simulation needs to satisfy are the following two DCHECKs |
388 DCHECK(request_->status().is_success()); | 406 DCHECK_EQ(net::OK, delegate_.request_status()); |
389 DCHECK_EQ(response_code, request_->GetResponseCode()); | 407 DCHECK_EQ(response_code, request_->GetResponseCode()); |
390 } | 408 } |
391 | 409 |
392 void SimulateResponseInfo(const net::HttpResponseInfo& info) { | 410 void SimulateResponseInfo(const net::HttpResponseInfo& info) { |
393 job_factory_->SetJob(base::MakeUnique<MockURLRequestJob>( | 411 job_factory_->SetJob(base::MakeUnique<MockURLRequestJob>( |
394 request_.get(), request_->context()->network_delegate(), info)); | 412 request_.get(), request_->context()->network_delegate(), info)); |
395 request_->Start(); | 413 request_->Start(); |
396 } | 414 } |
397 | 415 |
398 void Verify_MainResource_Fallback() { | 416 void Verify_MainResource_Fallback() { |
(...skipping 706 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1105 | 1123 |
1106 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) { | 1124 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) { |
1107 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest); | 1125 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest); |
1108 } | 1126 } |
1109 | 1127 |
1110 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) { | 1128 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) { |
1111 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked); | 1129 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked); |
1112 } | 1130 } |
1113 | 1131 |
1114 } // namespace content | 1132 } // namespace content |
OLD | NEW |