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

Side by Side Diff: net/url_request/test_url_fetcher_factory.cc

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
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 "net/url_request/test_url_fetcher_factory.h" 5 #include "net/url_request/test_url_fetcher_factory.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
11 #include "base/memory/weak_ptr.h" 11 #include "base/memory/weak_ptr.h"
12 #include "base/message_loop/message_loop.h" 12 #include "base/message_loop/message_loop.h"
13 #include "net/base/host_port_pair.h" 13 #include "net/base/host_port_pair.h"
14 #include "net/base/io_buffer.h" 14 #include "net/base/io_buffer.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_fetcher_delegate.h" 17 #include "net/url_request/url_fetcher_delegate.h"
18 #include "net/url_request/url_fetcher_impl.h" 18 #include "net/url_request/url_fetcher_impl.h"
19 #include "net/url_request/url_fetcher_response_writer.h" 19 #include "net/url_request/url_fetcher_response_writer.h"
20 #include "net/url_request/url_request_status.h" 20 #include "net/url_request/url_request_status.h"
21 21
22 namespace net { 22 namespace net {
23 23
24 ScopedURLFetcherFactory::ScopedURLFetcherFactory( 24 ScopedURLFetcherFactory::ScopedURLFetcherFactory(URLFetcherFactory* factory) {
25 URLFetcherFactory* factory) {
26 DCHECK(!URLFetcherImpl::factory()); 25 DCHECK(!URLFetcherImpl::factory());
27 URLFetcherImpl::set_factory(factory); 26 URLFetcherImpl::set_factory(factory);
28 } 27 }
29 28
30 ScopedURLFetcherFactory::~ScopedURLFetcherFactory() { 29 ScopedURLFetcherFactory::~ScopedURLFetcherFactory() {
31 DCHECK(URLFetcherImpl::factory()); 30 DCHECK(URLFetcherImpl::factory());
32 URLFetcherImpl::set_factory(NULL); 31 URLFetcherImpl::set_factory(NULL);
33 } 32 }
34 33
35 TestURLFetcher::TestURLFetcher(int id, 34 TestURLFetcher::TestURLFetcher(int id, const GURL& url, URLFetcherDelegate* d)
36 const GURL& url,
37 URLFetcherDelegate* d)
38 : owner_(NULL), 35 : owner_(NULL),
39 id_(id), 36 id_(id),
40 original_url_(url), 37 original_url_(url),
41 delegate_(d), 38 delegate_(d),
42 delegate_for_tests_(NULL), 39 delegate_for_tests_(NULL),
43 did_receive_last_chunk_(false), 40 did_receive_last_chunk_(false),
44 fake_load_flags_(0), 41 fake_load_flags_(0),
45 fake_response_code_(-1), 42 fake_response_code_(-1),
46 fake_response_destination_(STRING), 43 fake_response_destination_(STRING),
47 fake_was_fetched_via_proxy_(false), 44 fake_was_fetched_via_proxy_(false),
(...skipping 27 matching lines...) Expand all
75 void TestURLFetcher::AppendChunkToUpload(const std::string& data, 72 void TestURLFetcher::AppendChunkToUpload(const std::string& data,
76 bool is_last_chunk) { 73 bool is_last_chunk) {
77 DCHECK(!did_receive_last_chunk_); 74 DCHECK(!did_receive_last_chunk_);
78 did_receive_last_chunk_ = is_last_chunk; 75 did_receive_last_chunk_ = is_last_chunk;
79 chunks_.push_back(data); 76 chunks_.push_back(data);
80 if (delegate_for_tests_) 77 if (delegate_for_tests_)
81 delegate_for_tests_->OnChunkUpload(id_); 78 delegate_for_tests_->OnChunkUpload(id_);
82 } 79 }
83 80
84 void TestURLFetcher::SetLoadFlags(int load_flags) { 81 void TestURLFetcher::SetLoadFlags(int load_flags) {
85 fake_load_flags_= load_flags; 82 fake_load_flags_ = load_flags;
86 } 83 }
87 84
88 int TestURLFetcher::GetLoadFlags() const { 85 int TestURLFetcher::GetLoadFlags() const {
89 return fake_load_flags_; 86 return fake_load_flags_;
90 } 87 }
91 88
92 void TestURLFetcher::SetReferrer(const std::string& referrer) { 89 void TestURLFetcher::SetReferrer(const std::string& referrer) {
93 } 90 }
94 91
95 void TestURLFetcher::SetReferrerPolicy( 92 void TestURLFetcher::SetReferrerPolicy(
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 148
152 void TestURLFetcher::SaveResponseWithWriter( 149 void TestURLFetcher::SaveResponseWithWriter(
153 scoped_ptr<URLFetcherResponseWriter> response_writer) { 150 scoped_ptr<URLFetcherResponseWriter> response_writer) {
154 if (fake_response_destination_ == STRING) { 151 if (fake_response_destination_ == STRING) {
155 response_writer_ = response_writer.Pass(); 152 response_writer_ = response_writer.Pass();
156 int response = response_writer_->Initialize(CompletionCallback()); 153 int response = response_writer_->Initialize(CompletionCallback());
157 // The TestURLFetcher doesn't handle asynchronous writes. 154 // The TestURLFetcher doesn't handle asynchronous writes.
158 DCHECK_EQ(OK, response); 155 DCHECK_EQ(OK, response);
159 156
160 scoped_refptr<IOBuffer> buffer(new StringIOBuffer(fake_response_string_)); 157 scoped_refptr<IOBuffer> buffer(new StringIOBuffer(fake_response_string_));
161 response = response_writer_->Write(buffer.get(), 158 response = response_writer_->Write(
162 fake_response_string_.size(), 159 buffer.get(), fake_response_string_.size(), CompletionCallback());
163 CompletionCallback());
164 DCHECK_EQ(static_cast<int>(fake_response_string_.size()), response); 160 DCHECK_EQ(static_cast<int>(fake_response_string_.size()), response);
165 response = response_writer_->Finish(CompletionCallback()); 161 response = response_writer_->Finish(CompletionCallback());
166 DCHECK_EQ(OK, response); 162 DCHECK_EQ(OK, response);
167 } else { 163 } else {
168 NOTIMPLEMENTED(); 164 NOTIMPLEMENTED();
169 } 165 }
170 } 166 }
171 167
172 HttpResponseHeaders* TestURLFetcher::GetResponseHeaders() const { 168 HttpResponseHeaders* TestURLFetcher::GetResponseHeaders() const {
173 return fake_response_headers_.get(); 169 return fake_response_headers_.get();
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 bool TestURLFetcher::GetResponseAsString( 210 bool TestURLFetcher::GetResponseAsString(
215 std::string* out_response_string) const { 211 std::string* out_response_string) const {
216 if (fake_response_destination_ != STRING) 212 if (fake_response_destination_ != STRING)
217 return false; 213 return false;
218 214
219 *out_response_string = fake_response_string_; 215 *out_response_string = fake_response_string_;
220 return true; 216 return true;
221 } 217 }
222 218
223 bool TestURLFetcher::GetResponseAsFilePath( 219 bool TestURLFetcher::GetResponseAsFilePath(
224 bool take_ownership, base::FilePath* out_response_path) const { 220 bool take_ownership,
221 base::FilePath* out_response_path) const {
225 if (fake_response_destination_ != TEMP_FILE) 222 if (fake_response_destination_ != TEMP_FILE)
226 return false; 223 return false;
227 224
228 *out_response_path = fake_response_file_path_; 225 *out_response_path = fake_response_file_path_;
229 return true; 226 return true;
230 } 227 }
231 228
232 void TestURLFetcher::GetExtraRequestHeaders( 229 void TestURLFetcher::GetExtraRequestHeaders(HttpRequestHeaders* headers) const {
233 HttpRequestHeaders* headers) const {
234 *headers = fake_extra_request_headers_; 230 *headers = fake_extra_request_headers_;
235 } 231 }
236 232
237 void TestURLFetcher::set_status(const URLRequestStatus& status) { 233 void TestURLFetcher::set_status(const URLRequestStatus& status) {
238 fake_status_ = status; 234 fake_status_ = status;
239 } 235 }
240 236
241 void TestURLFetcher::set_was_fetched_via_proxy(bool flag) { 237 void TestURLFetcher::set_was_fetched_via_proxy(bool flag) {
242 fake_was_fetched_via_proxy_ = flag; 238 fake_was_fetched_via_proxy_ = flag;
243 } 239 }
(...skipping 20 matching lines...) Expand all
264 fake_response_destination_ = TEMP_FILE; 260 fake_response_destination_ = TEMP_FILE;
265 fake_response_file_path_ = path; 261 fake_response_file_path_ = path;
266 } 262 }
267 263
268 TestURLFetcherFactory::TestURLFetcherFactory() 264 TestURLFetcherFactory::TestURLFetcherFactory()
269 : ScopedURLFetcherFactory(this), 265 : ScopedURLFetcherFactory(this),
270 delegate_for_tests_(NULL), 266 delegate_for_tests_(NULL),
271 remove_fetcher_on_delete_(false) { 267 remove_fetcher_on_delete_(false) {
272 } 268 }
273 269
274 TestURLFetcherFactory::~TestURLFetcherFactory() {} 270 TestURLFetcherFactory::~TestURLFetcherFactory() {
271 }
275 272
276 URLFetcher* TestURLFetcherFactory::CreateURLFetcher( 273 URLFetcher* TestURLFetcherFactory::CreateURLFetcher(
277 int id, 274 int id,
278 const GURL& url, 275 const GURL& url,
279 URLFetcher::RequestType request_type, 276 URLFetcher::RequestType request_type,
280 URLFetcherDelegate* d) { 277 URLFetcherDelegate* d) {
281 TestURLFetcher* fetcher = new TestURLFetcher(id, url, d); 278 TestURLFetcher* fetcher = new TestURLFetcher(id, url, d);
282 if (remove_fetcher_on_delete_) 279 if (remove_fetcher_on_delete_)
283 fetcher->set_owner(this); 280 fetcher->set_owner(this);
284 fetcher->SetDelegateForTests(delegate_for_tests_); 281 fetcher->SetDelegateForTests(delegate_for_tests_);
(...skipping 15 matching lines...) Expand all
300 void TestURLFetcherFactory::SetDelegateForTests( 297 void TestURLFetcherFactory::SetDelegateForTests(
301 TestURLFetcherDelegateForTests* delegate_for_tests) { 298 TestURLFetcherDelegateForTests* delegate_for_tests) {
302 delegate_for_tests_ = delegate_for_tests; 299 delegate_for_tests_ = delegate_for_tests;
303 } 300 }
304 301
305 FakeURLFetcher::FakeURLFetcher(const GURL& url, 302 FakeURLFetcher::FakeURLFetcher(const GURL& url,
306 URLFetcherDelegate* d, 303 URLFetcherDelegate* d,
307 const std::string& response_data, 304 const std::string& response_data,
308 HttpStatusCode response_code, 305 HttpStatusCode response_code,
309 URLRequestStatus::Status status) 306 URLRequestStatus::Status status)
310 : TestURLFetcher(0, url, d), 307 : TestURLFetcher(0, url, d), weak_factory_(this) {
311 weak_factory_(this) {
312 Error error = OK; 308 Error error = OK;
313 switch(status) { 309 switch (status) {
314 case URLRequestStatus::SUCCESS: 310 case URLRequestStatus::SUCCESS:
315 // |error| is initialized to OK. 311 // |error| is initialized to OK.
316 break; 312 break;
317 case URLRequestStatus::IO_PENDING: 313 case URLRequestStatus::IO_PENDING:
318 error = ERR_IO_PENDING; 314 error = ERR_IO_PENDING;
319 break; 315 break;
320 case URLRequestStatus::CANCELED: 316 case URLRequestStatus::CANCELED:
321 error = ERR_ABORTED; 317 error = ERR_ABORTED;
322 break; 318 break;
323 case URLRequestStatus::FAILED: 319 case URLRequestStatus::FAILED:
324 error = ERR_FAILED; 320 error = ERR_FAILED;
325 break; 321 break;
326 } 322 }
327 set_status(URLRequestStatus(status, error)); 323 set_status(URLRequestStatus(status, error));
328 set_response_code(response_code); 324 set_response_code(response_code);
329 SetResponseString(response_data); 325 SetResponseString(response_data);
330 } 326 }
331 327
332 FakeURLFetcher::~FakeURLFetcher() {} 328 FakeURLFetcher::~FakeURLFetcher() {
329 }
333 330
334 void FakeURLFetcher::Start() { 331 void FakeURLFetcher::Start() {
335 base::MessageLoop::current()->PostTask( 332 base::MessageLoop::current()->PostTask(
336 FROM_HERE, 333 FROM_HERE,
337 base::Bind(&FakeURLFetcher::RunDelegate, weak_factory_.GetWeakPtr())); 334 base::Bind(&FakeURLFetcher::RunDelegate, weak_factory_.GetWeakPtr()));
338 } 335 }
339 336
340 void FakeURLFetcher::RunDelegate() { 337 void FakeURLFetcher::RunDelegate() {
341 delegate()->OnURLFetchComplete(this); 338 delegate()->OnURLFetchComplete(this);
342 } 339 }
343 340
344 const GURL& FakeURLFetcher::GetURL() const { 341 const GURL& FakeURLFetcher::GetURL() const {
345 return TestURLFetcher::GetOriginalURL(); 342 return TestURLFetcher::GetOriginalURL();
346 } 343 }
347 344
348 FakeURLFetcherFactory::FakeURLFetcherFactory( 345 FakeURLFetcherFactory::FakeURLFetcherFactory(URLFetcherFactory* default_factory)
349 URLFetcherFactory* default_factory)
350 : ScopedURLFetcherFactory(this), 346 : ScopedURLFetcherFactory(this),
351 creator_(base::Bind(&DefaultFakeURLFetcherCreator)), 347 creator_(base::Bind(&DefaultFakeURLFetcherCreator)),
352 default_factory_(default_factory) { 348 default_factory_(default_factory) {
353 } 349 }
354 350
355 FakeURLFetcherFactory::FakeURLFetcherFactory( 351 FakeURLFetcherFactory::FakeURLFetcherFactory(
356 URLFetcherFactory* default_factory, 352 URLFetcherFactory* default_factory,
357 const FakeURLFetcherCreator& creator) 353 const FakeURLFetcherCreator& creator)
358 : ScopedURLFetcherFactory(this), 354 : ScopedURLFetcherFactory(this),
359 creator_(creator), 355 creator_(creator),
360 default_factory_(default_factory) { 356 default_factory_(default_factory) {
361 } 357 }
362 358
363 scoped_ptr<FakeURLFetcher> FakeURLFetcherFactory::DefaultFakeURLFetcherCreator( 359 scoped_ptr<FakeURLFetcher> FakeURLFetcherFactory::DefaultFakeURLFetcherCreator(
364 const GURL& url, 360 const GURL& url,
365 URLFetcherDelegate* delegate, 361 URLFetcherDelegate* delegate,
366 const std::string& response_data, 362 const std::string& response_data,
367 HttpStatusCode response_code, 363 HttpStatusCode response_code,
368 URLRequestStatus::Status status) { 364 URLRequestStatus::Status status) {
369 return scoped_ptr<FakeURLFetcher>( 365 return scoped_ptr<FakeURLFetcher>(
370 new FakeURLFetcher(url, delegate, response_data, response_code, status)); 366 new FakeURLFetcher(url, delegate, response_data, response_code, status));
371 } 367 }
372 368
373 FakeURLFetcherFactory::~FakeURLFetcherFactory() {} 369 FakeURLFetcherFactory::~FakeURLFetcherFactory() {
370 }
374 371
375 URLFetcher* FakeURLFetcherFactory::CreateURLFetcher( 372 URLFetcher* FakeURLFetcherFactory::CreateURLFetcher(
376 int id, 373 int id,
377 const GURL& url, 374 const GURL& url,
378 URLFetcher::RequestType request_type, 375 URLFetcher::RequestType request_type,
379 URLFetcherDelegate* d) { 376 URLFetcherDelegate* d) {
380 FakeResponseMap::const_iterator it = fake_responses_.find(url); 377 FakeResponseMap::const_iterator it = fake_responses_.find(url);
381 if (it == fake_responses_.end()) { 378 if (it == fake_responses_.end()) {
382 if (default_factory_ == NULL) { 379 if (default_factory_ == NULL) {
383 // If we don't have a baked response for that URL we return NULL. 380 // If we don't have a baked response for that URL we return NULL.
384 DLOG(ERROR) << "No baked response for URL: " << url.spec(); 381 DLOG(ERROR) << "No baked response for URL: " << url.spec();
385 return NULL; 382 return NULL;
386 } else { 383 } else {
387 return default_factory_->CreateURLFetcher(id, url, request_type, d); 384 return default_factory_->CreateURLFetcher(id, url, request_type, d);
388 } 385 }
389 } 386 }
390 387
391 scoped_ptr<FakeURLFetcher> fake_fetcher = 388 scoped_ptr<FakeURLFetcher> fake_fetcher =
392 creator_.Run(url, d, it->second.response_data, 389 creator_.Run(url,
393 it->second.response_code, it->second.status); 390 d,
391 it->second.response_data,
392 it->second.response_code,
393 it->second.status);
394 // TODO: Make URLFetcherFactory::CreateURLFetcher return a scoped_ptr 394 // TODO: Make URLFetcherFactory::CreateURLFetcher return a scoped_ptr
395 return fake_fetcher.release(); 395 return fake_fetcher.release();
396 } 396 }
397 397
398 void FakeURLFetcherFactory::SetFakeResponse( 398 void FakeURLFetcherFactory::SetFakeResponse(const GURL& url,
399 const GURL& url, 399 const std::string& response_data,
400 const std::string& response_data, 400 HttpStatusCode response_code,
401 HttpStatusCode response_code, 401 URLRequestStatus::Status status) {
402 URLRequestStatus::Status status) {
403 // Overwrite existing URL if it already exists. 402 // Overwrite existing URL if it already exists.
404 FakeURLResponse response; 403 FakeURLResponse response;
405 response.response_data = response_data; 404 response.response_data = response_data;
406 response.response_code = response_code; 405 response.response_code = response_code;
407 response.status = status; 406 response.status = status;
408 fake_responses_[url] = response; 407 fake_responses_[url] = response;
409 } 408 }
410 409
411 void FakeURLFetcherFactory::ClearFakeResponses() { 410 void FakeURLFetcherFactory::ClearFakeResponses() {
412 fake_responses_.clear(); 411 fake_responses_.clear();
413 } 412 }
414 413
415 URLFetcherImplFactory::URLFetcherImplFactory() {} 414 URLFetcherImplFactory::URLFetcherImplFactory() {
415 }
416 416
417 URLFetcherImplFactory::~URLFetcherImplFactory() {} 417 URLFetcherImplFactory::~URLFetcherImplFactory() {
418 }
418 419
419 URLFetcher* URLFetcherImplFactory::CreateURLFetcher( 420 URLFetcher* URLFetcherImplFactory::CreateURLFetcher(
420 int id, 421 int id,
421 const GURL& url, 422 const GURL& url,
422 URLFetcher::RequestType request_type, 423 URLFetcher::RequestType request_type,
423 URLFetcherDelegate* d) { 424 URLFetcherDelegate* d) {
424 return new URLFetcherImpl(url, request_type, d); 425 return new URLFetcherImpl(url, request_type, d);
425 } 426 }
426 427
427 } // namespace net 428 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698