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

Side by Side Diff: content/browser/loader/resource_loader_unittest.cc

Issue 667943003: Standardize usage of virtual/override/final in content/browser/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/loader/resource_loader.h" 5 #include "content/browser/loader/resource_loader.h"
6 6
7 #include "base/files/file.h" 7 #include "base/files/file.h"
8 #include "base/files/file_util.h" 8 #include "base/files/file_util.h"
9 #include "base/message_loop/message_loop_proxy.h" 9 #include "base/message_loop/message_loop_proxy.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 26 matching lines...) Expand all
37 37
38 // Stub client certificate store that returns a preset list of certificates for 38 // Stub client certificate store that returns a preset list of certificates for
39 // each request and records the arguments of the most recent request for later 39 // each request and records the arguments of the most recent request for later
40 // inspection. 40 // inspection.
41 class ClientCertStoreStub : public net::ClientCertStore { 41 class ClientCertStoreStub : public net::ClientCertStore {
42 public: 42 public:
43 ClientCertStoreStub(const net::CertificateList& certs) 43 ClientCertStoreStub(const net::CertificateList& certs)
44 : response_(certs), 44 : response_(certs),
45 request_count_(0) {} 45 request_count_(0) {}
46 46
47 virtual ~ClientCertStoreStub() {} 47 ~ClientCertStoreStub() override {}
48 48
49 // Returns |cert_authorities| field of the certificate request passed in the 49 // Returns |cert_authorities| field of the certificate request passed in the
50 // most recent call to GetClientCerts(). 50 // most recent call to GetClientCerts().
51 // TODO(ppi): Make the stub independent from the internal representation of 51 // TODO(ppi): Make the stub independent from the internal representation of
52 // SSLCertRequestInfo. For now it seems that we cannot neither save the 52 // SSLCertRequestInfo. For now it seems that we cannot neither save the
53 // scoped_refptr<> (since it is never passed to us) nor copy the entire 53 // scoped_refptr<> (since it is never passed to us) nor copy the entire
54 // CertificateRequestInfo (since there is no copy constructor). 54 // CertificateRequestInfo (since there is no copy constructor).
55 std::vector<std::string> requested_authorities() { 55 std::vector<std::string> requested_authorities() {
56 return requested_authorities_; 56 return requested_authorities_;
57 } 57 }
58 58
59 // Returns the number of calls to GetClientCerts(). 59 // Returns the number of calls to GetClientCerts().
60 int request_count() { 60 int request_count() {
61 return request_count_; 61 return request_count_;
62 } 62 }
63 63
64 // net::ClientCertStore: 64 // net::ClientCertStore:
65 virtual void GetClientCerts(const net::SSLCertRequestInfo& cert_request_info, 65 void GetClientCerts(const net::SSLCertRequestInfo& cert_request_info,
66 net::CertificateList* selected_certs, 66 net::CertificateList* selected_certs,
67 const base::Closure& callback) override { 67 const base::Closure& callback) override {
68 ++request_count_; 68 ++request_count_;
69 requested_authorities_ = cert_request_info.cert_authorities; 69 requested_authorities_ = cert_request_info.cert_authorities;
70 *selected_certs = response_; 70 *selected_certs = response_;
71 callback.Run(); 71 callback.Run();
72 } 72 }
73 73
74 private: 74 private:
75 const net::CertificateList response_; 75 const net::CertificateList response_;
76 int request_count_; 76 int request_count_;
77 std::vector<std::string> requested_authorities_; 77 std::vector<std::string> requested_authorities_;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 return received_response_completed_; 120 return received_response_completed_;
121 } 121 }
122 const net::URLRequestStatus& status() const { return status_; } 122 const net::URLRequestStatus& status() const { return status_; }
123 int total_bytes_downloaded() const { return total_bytes_downloaded_; } 123 int total_bytes_downloaded() const { return total_bytes_downloaded_; }
124 124
125 void Resume() { 125 void Resume() {
126 controller()->Resume(); 126 controller()->Resume();
127 } 127 }
128 128
129 // ResourceHandler implementation: 129 // ResourceHandler implementation:
130 virtual bool OnUploadProgress(uint64 position, uint64 size) override { 130 bool OnUploadProgress(uint64 position, uint64 size) override {
131 NOTREACHED(); 131 NOTREACHED();
132 return true; 132 return true;
133 } 133 }
134 134
135 virtual bool OnRequestRedirected(const net::RedirectInfo& redirect_info, 135 bool OnRequestRedirected(const net::RedirectInfo& redirect_info,
136 ResourceResponse* response, 136 ResourceResponse* response,
137 bool* defer) override { 137 bool* defer) override {
138 NOTREACHED(); 138 NOTREACHED();
139 return true; 139 return true;
140 } 140 }
141 141
142 virtual bool OnResponseStarted(ResourceResponse* response, 142 bool OnResponseStarted(ResourceResponse* response, bool* defer) override {
143 bool* defer) override {
144 EXPECT_FALSE(response_.get()); 143 EXPECT_FALSE(response_.get());
145 response_ = response; 144 response_ = response;
146 return true; 145 return true;
147 } 146 }
148 147
149 virtual bool OnWillStart(const GURL& url, bool* defer) override { 148 bool OnWillStart(const GURL& url, bool* defer) override {
150 EXPECT_TRUE(start_url_.is_empty()); 149 EXPECT_TRUE(start_url_.is_empty());
151 start_url_ = url; 150 start_url_ = url;
152 *defer = defer_request_on_will_start_; 151 *defer = defer_request_on_will_start_;
153 return true; 152 return true;
154 } 153 }
155 154
156 virtual bool OnBeforeNetworkStart(const GURL& url, bool* defer) override { 155 bool OnBeforeNetworkStart(const GURL& url, bool* defer) override {
157 return true; 156 return true;
158 } 157 }
159 158
160 virtual bool OnWillRead(scoped_refptr<net::IOBuffer>* buf, 159 bool OnWillRead(scoped_refptr<net::IOBuffer>* buf,
161 int* buf_size, 160 int* buf_size,
162 int min_size) override { 161 int min_size) override {
163 EXPECT_TRUE(expect_reads_); 162 EXPECT_TRUE(expect_reads_);
164 EXPECT_FALSE(received_on_will_read_); 163 EXPECT_FALSE(received_on_will_read_);
165 EXPECT_FALSE(received_eof_); 164 EXPECT_FALSE(received_eof_);
166 EXPECT_FALSE(received_response_completed_); 165 EXPECT_FALSE(received_response_completed_);
167 166
168 *buf = read_buffer_; 167 *buf = read_buffer_;
169 *buf_size = kReadBufSize; 168 *buf_size = kReadBufSize;
170 received_on_will_read_ = true; 169 received_on_will_read_ = true;
171 return true; 170 return true;
172 } 171 }
173 172
174 virtual bool OnReadCompleted(int bytes_read, bool* defer) override { 173 bool OnReadCompleted(int bytes_read, bool* defer) override {
175 EXPECT_TRUE(received_on_will_read_); 174 EXPECT_TRUE(received_on_will_read_);
176 EXPECT_TRUE(expect_reads_); 175 EXPECT_TRUE(expect_reads_);
177 EXPECT_FALSE(received_response_completed_); 176 EXPECT_FALSE(received_response_completed_);
178 177
179 if (bytes_read == 0) { 178 if (bytes_read == 0) {
180 received_eof_ = true; 179 received_eof_ = true;
181 if (defer_eof_) { 180 if (defer_eof_) {
182 defer_eof_ = false; 181 defer_eof_ = false;
183 *defer = true; 182 *defer = true;
184 } 183 }
185 } 184 }
186 185
187 // Need another OnWillRead() call before seeing an OnReadCompleted(). 186 // Need another OnWillRead() call before seeing an OnReadCompleted().
188 received_on_will_read_ = false; 187 received_on_will_read_ = false;
189 188
190 return !cancel_on_read_completed_; 189 return !cancel_on_read_completed_;
191 } 190 }
192 191
193 virtual void OnResponseCompleted(const net::URLRequestStatus& status, 192 void OnResponseCompleted(const net::URLRequestStatus& status,
194 const std::string& security_info, 193 const std::string& security_info,
195 bool* defer) override { 194 bool* defer) override {
196 EXPECT_FALSE(received_response_completed_); 195 EXPECT_FALSE(received_response_completed_);
197 if (status.is_success() && expect_reads_) 196 if (status.is_success() && expect_reads_)
198 EXPECT_TRUE(received_eof_); 197 EXPECT_TRUE(received_eof_);
199 198
200 received_response_completed_ = true; 199 received_response_completed_ = true;
201 status_ = status; 200 status_ = status;
202 } 201 }
203 202
204 virtual void OnDataDownloaded(int bytes_downloaded) override { 203 void OnDataDownloaded(int bytes_downloaded) override {
205 EXPECT_FALSE(expect_reads_); 204 EXPECT_FALSE(expect_reads_);
206 total_bytes_downloaded_ += bytes_downloaded; 205 total_bytes_downloaded_ += bytes_downloaded;
207 } 206 }
208 207
209 private: 208 private:
210 scoped_refptr<net::IOBuffer> read_buffer_; 209 scoped_refptr<net::IOBuffer> read_buffer_;
211 210
212 bool defer_request_on_will_start_; 211 bool defer_request_on_will_start_;
213 bool expect_reads_; 212 bool expect_reads_;
214 bool cancel_on_read_completed_; 213 bool cancel_on_read_completed_;
215 bool defer_eof_; 214 bool defer_eof_;
216 215
217 GURL start_url_; 216 GURL start_url_;
218 scoped_refptr<ResourceResponse> response_; 217 scoped_refptr<ResourceResponse> response_;
219 bool received_on_will_read_; 218 bool received_on_will_read_;
220 bool received_eof_; 219 bool received_eof_;
221 bool received_response_completed_; 220 bool received_response_completed_;
222 net::URLRequestStatus status_; 221 net::URLRequestStatus status_;
223 int total_bytes_downloaded_; 222 int total_bytes_downloaded_;
224 }; 223 };
225 224
226 // Test browser client that captures calls to SelectClientCertificates and 225 // Test browser client that captures calls to SelectClientCertificates and
227 // records the arguments of the most recent call for later inspection. 226 // records the arguments of the most recent call for later inspection.
228 class SelectCertificateBrowserClient : public TestContentBrowserClient { 227 class SelectCertificateBrowserClient : public TestContentBrowserClient {
229 public: 228 public:
230 SelectCertificateBrowserClient() : call_count_(0) {} 229 SelectCertificateBrowserClient() : call_count_(0) {}
231 230
232 virtual void SelectClientCertificate( 231 void SelectClientCertificate(
233 int render_process_id, 232 int render_process_id,
234 int render_view_id, 233 int render_view_id,
235 net::SSLCertRequestInfo* cert_request_info, 234 net::SSLCertRequestInfo* cert_request_info,
236 const base::Callback<void(net::X509Certificate*)>& callback) override { 235 const base::Callback<void(net::X509Certificate*)>& callback) override {
237 ++call_count_; 236 ++call_count_;
238 passed_certs_ = cert_request_info->client_certs; 237 passed_certs_ = cert_request_info->client_certs;
239 } 238 }
240 239
241 int call_count() { 240 int call_count() {
242 return call_count_; 241 return call_count_;
243 } 242 }
244 243
245 net::CertificateList passed_certs() { 244 net::CertificateList passed_certs() {
246 return passed_certs_; 245 return passed_certs_;
247 } 246 }
248 247
249 private: 248 private:
250 net::CertificateList passed_certs_; 249 net::CertificateList passed_certs_;
251 int call_count_; 250 int call_count_;
252 }; 251 };
253 252
254 class ResourceContextStub : public MockResourceContext { 253 class ResourceContextStub : public MockResourceContext {
255 public: 254 public:
256 explicit ResourceContextStub(net::URLRequestContext* test_request_context) 255 explicit ResourceContextStub(net::URLRequestContext* test_request_context)
257 : MockResourceContext(test_request_context) {} 256 : MockResourceContext(test_request_context) {}
258 257
259 virtual scoped_ptr<net::ClientCertStore> CreateClientCertStore() override { 258 scoped_ptr<net::ClientCertStore> CreateClientCertStore() override {
260 return dummy_cert_store_.Pass(); 259 return dummy_cert_store_.Pass();
261 } 260 }
262 261
263 void SetClientCertStore(scoped_ptr<net::ClientCertStore> store) { 262 void SetClientCertStore(scoped_ptr<net::ClientCertStore> store) {
264 dummy_cert_store_ = store.Pass(); 263 dummy_cert_store_ = store.Pass();
265 } 264 }
266 265
267 private: 266 private:
268 scoped_ptr<net::ClientCertStore> dummy_cert_store_; 267 scoped_ptr<net::ClientCertStore> dummy_cert_store_;
269 }; 268 };
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 scoped_ptr<ResourceHandlerStub> resource_handler( 327 scoped_ptr<ResourceHandlerStub> resource_handler(
329 new ResourceHandlerStub(request.get())); 328 new ResourceHandlerStub(request.get()));
330 raw_ptr_resource_handler_ = resource_handler.get(); 329 raw_ptr_resource_handler_ = resource_handler.get();
331 loader_.reset(new ResourceLoader( 330 loader_.reset(new ResourceLoader(
332 request.Pass(), 331 request.Pass(),
333 WrapResourceHandler(resource_handler.Pass(), raw_ptr_to_request_), 332 WrapResourceHandler(resource_handler.Pass(), raw_ptr_to_request_),
334 this)); 333 this));
335 } 334 }
336 335
337 // ResourceLoaderDelegate: 336 // ResourceLoaderDelegate:
338 virtual ResourceDispatcherHostLoginDelegate* CreateLoginDelegate( 337 ResourceDispatcherHostLoginDelegate* CreateLoginDelegate(
339 ResourceLoader* loader, 338 ResourceLoader* loader,
340 net::AuthChallengeInfo* auth_info) override { 339 net::AuthChallengeInfo* auth_info) override {
341 return NULL; 340 return NULL;
342 } 341 }
343 virtual bool HandleExternalProtocol(ResourceLoader* loader, 342 bool HandleExternalProtocol(ResourceLoader* loader,
344 const GURL& url) override { 343 const GURL& url) override {
345 return false; 344 return false;
346 } 345 }
347 virtual void DidStartRequest(ResourceLoader* loader) override {} 346 void DidStartRequest(ResourceLoader* loader) override {}
348 virtual void DidReceiveRedirect(ResourceLoader* loader, 347 void DidReceiveRedirect(ResourceLoader* loader,
349 const GURL& new_url) override {} 348 const GURL& new_url) override {}
350 virtual void DidReceiveResponse(ResourceLoader* loader) override {} 349 void DidReceiveResponse(ResourceLoader* loader) override {}
351 virtual void DidFinishLoading(ResourceLoader* loader) override {} 350 void DidFinishLoading(ResourceLoader* loader) override {}
352 351
353 content::TestBrowserThreadBundle thread_bundle_; 352 content::TestBrowserThreadBundle thread_bundle_;
354 353
355 net::URLRequestJobFactoryImpl job_factory_; 354 net::URLRequestJobFactoryImpl job_factory_;
356 net::TestURLRequestContext test_url_request_context_; 355 net::TestURLRequestContext test_url_request_context_;
357 ResourceContextStub resource_context_; 356 ResourceContextStub resource_context_;
358 357
359 // The ResourceLoader owns the URLRequest and the ResourceHandler. 358 // The ResourceLoader owns the URLRequest and the ResourceHandler.
360 ResourceHandlerStub* raw_ptr_resource_handler_; 359 ResourceHandlerStub* raw_ptr_resource_handler_;
361 net::URLRequest* raw_ptr_to_request_; 360 net::URLRequest* raw_ptr_to_request_;
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 RedirectToFileResourceHandler* redirect_to_file_resource_handler() const { 489 RedirectToFileResourceHandler* redirect_to_file_resource_handler() const {
491 return redirect_to_file_resource_handler_; 490 return redirect_to_file_resource_handler_;
492 } 491 }
493 492
494 void ReleaseLoader() { 493 void ReleaseLoader() {
495 file_stream_ = NULL; 494 file_stream_ = NULL;
496 deletable_file_ = NULL; 495 deletable_file_ = NULL;
497 loader_.reset(); 496 loader_.reset();
498 } 497 }
499 498
500 virtual scoped_ptr<ResourceHandler> WrapResourceHandler( 499 scoped_ptr<ResourceHandler> WrapResourceHandler(
501 scoped_ptr<ResourceHandlerStub> leaf_handler, 500 scoped_ptr<ResourceHandlerStub> leaf_handler,
502 net::URLRequest* request) override { 501 net::URLRequest* request) override {
503 leaf_handler->set_expect_reads(false); 502 leaf_handler->set_expect_reads(false);
504 503
505 // Make a temporary file. 504 // Make a temporary file.
506 CHECK(base::CreateTemporaryFile(&temp_path_)); 505 CHECK(base::CreateTemporaryFile(&temp_path_));
507 int flags = base::File::FLAG_WRITE | base::File::FLAG_TEMPORARY | 506 int flags = base::File::FLAG_WRITE | base::File::FLAG_TEMPORARY |
508 base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_ASYNC; 507 base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_ASYNC;
509 base::File file(temp_path_, flags); 508 base::File file(temp_path_, flags);
510 CHECK(file.IsValid()); 509 CHECK(file.IsValid());
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
719 ASSERT_TRUE(base::ReadFileToString(temp_path(), &contents)); 718 ASSERT_TRUE(base::ReadFileToString(temp_path(), &contents));
720 EXPECT_EQ(test_data(), contents); 719 EXPECT_EQ(test_data(), contents);
721 720
722 // Release the loader. The file should be gone now. 721 // Release the loader. The file should be gone now.
723 ReleaseLoader(); 722 ReleaseLoader();
724 base::RunLoop().RunUntilIdle(); 723 base::RunLoop().RunUntilIdle();
725 EXPECT_FALSE(base::PathExists(temp_path())); 724 EXPECT_FALSE(base::PathExists(temp_path()));
726 } 725 }
727 726
728 } // namespace content 727 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/loader/resource_loader.h ('k') | content/browser/loader/resource_message_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698