OLD | NEW |
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" |
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
293 } | 293 } |
294 | 294 |
295 TestURLFetcherFactory::TestURLFetcherFactory() | 295 TestURLFetcherFactory::TestURLFetcherFactory() |
296 : ScopedURLFetcherFactory(this), | 296 : ScopedURLFetcherFactory(this), |
297 delegate_for_tests_(NULL), | 297 delegate_for_tests_(NULL), |
298 remove_fetcher_on_delete_(false) { | 298 remove_fetcher_on_delete_(false) { |
299 } | 299 } |
300 | 300 |
301 TestURLFetcherFactory::~TestURLFetcherFactory() {} | 301 TestURLFetcherFactory::~TestURLFetcherFactory() {} |
302 | 302 |
303 URLFetcher* TestURLFetcherFactory::CreateURLFetcher( | 303 scoped_ptr<URLFetcher> TestURLFetcherFactory::CreateURLFetcher( |
304 int id, | 304 int id, |
305 const GURL& url, | 305 const GURL& url, |
306 URLFetcher::RequestType request_type, | 306 URLFetcher::RequestType request_type, |
307 URLFetcherDelegate* d) { | 307 URLFetcherDelegate* d) { |
308 TestURLFetcher* fetcher = new TestURLFetcher(id, url, d); | 308 TestURLFetcher* fetcher = new TestURLFetcher(id, url, d); |
309 if (remove_fetcher_on_delete_) | 309 if (remove_fetcher_on_delete_) |
310 fetcher->set_owner(this); | 310 fetcher->set_owner(this); |
311 fetcher->SetDelegateForTests(delegate_for_tests_); | 311 fetcher->SetDelegateForTests(delegate_for_tests_); |
312 fetchers_[id] = fetcher; | 312 fetchers_[id] = fetcher; |
313 return fetcher; | 313 return scoped_ptr<URLFetcher>(fetcher); |
314 } | 314 } |
315 | 315 |
316 TestURLFetcher* TestURLFetcherFactory::GetFetcherByID(int id) const { | 316 TestURLFetcher* TestURLFetcherFactory::GetFetcherByID(int id) const { |
317 Fetchers::const_iterator i = fetchers_.find(id); | 317 Fetchers::const_iterator i = fetchers_.find(id); |
318 return i == fetchers_.end() ? NULL : i->second; | 318 return i == fetchers_.end() ? NULL : i->second; |
319 } | 319 } |
320 | 320 |
321 void TestURLFetcherFactory::RemoveFetcherFromMap(int id) { | 321 void TestURLFetcherFactory::RemoveFetcherFromMap(int id) { |
322 Fetchers::iterator i = fetchers_.find(id); | 322 Fetchers::iterator i = fetchers_.find(id); |
323 DCHECK(i != fetchers_.end()); | 323 DCHECK(i != fetchers_.end()); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
392 URLFetcherDelegate* delegate, | 392 URLFetcherDelegate* delegate, |
393 const std::string& response_data, | 393 const std::string& response_data, |
394 HttpStatusCode response_code, | 394 HttpStatusCode response_code, |
395 URLRequestStatus::Status status) { | 395 URLRequestStatus::Status status) { |
396 return scoped_ptr<FakeURLFetcher>( | 396 return scoped_ptr<FakeURLFetcher>( |
397 new FakeURLFetcher(url, delegate, response_data, response_code, status)); | 397 new FakeURLFetcher(url, delegate, response_data, response_code, status)); |
398 } | 398 } |
399 | 399 |
400 FakeURLFetcherFactory::~FakeURLFetcherFactory() {} | 400 FakeURLFetcherFactory::~FakeURLFetcherFactory() {} |
401 | 401 |
402 URLFetcher* FakeURLFetcherFactory::CreateURLFetcher( | 402 scoped_ptr<URLFetcher> FakeURLFetcherFactory::CreateURLFetcher( |
403 int id, | 403 int id, |
404 const GURL& url, | 404 const GURL& url, |
405 URLFetcher::RequestType request_type, | 405 URLFetcher::RequestType request_type, |
406 URLFetcherDelegate* d) { | 406 URLFetcherDelegate* d) { |
407 FakeResponseMap::const_iterator it = fake_responses_.find(url); | 407 FakeResponseMap::const_iterator it = fake_responses_.find(url); |
408 if (it == fake_responses_.end()) { | 408 if (it == fake_responses_.end()) { |
409 if (default_factory_ == NULL) { | 409 if (default_factory_ == NULL) { |
410 // If we don't have a baked response for that URL we return NULL. | 410 // If we don't have a baked response for that URL we return NULL. |
411 DLOG(ERROR) << "No baked response for URL: " << url.spec(); | 411 DLOG(ERROR) << "No baked response for URL: " << url.spec(); |
412 return NULL; | 412 return NULL; |
413 } else { | 413 } else { |
414 return default_factory_->CreateURLFetcher(id, url, request_type, d); | 414 return default_factory_->CreateURLFetcher(id, url, request_type, d); |
415 } | 415 } |
416 } | 416 } |
417 | 417 |
418 scoped_ptr<FakeURLFetcher> fake_fetcher = | 418 scoped_ptr<URLFetcher> fake_fetcher = |
419 creator_.Run(url, d, it->second.response_data, | 419 creator_.Run(url, d, it->second.response_data, it->second.response_code, |
420 it->second.response_code, it->second.status); | 420 it->second.status); |
421 // TODO: Make URLFetcherFactory::CreateURLFetcher return a scoped_ptr | 421 return fake_fetcher; |
422 return fake_fetcher.release(); | |
423 } | 422 } |
424 | 423 |
425 void FakeURLFetcherFactory::SetFakeResponse( | 424 void FakeURLFetcherFactory::SetFakeResponse( |
426 const GURL& url, | 425 const GURL& url, |
427 const std::string& response_data, | 426 const std::string& response_data, |
428 HttpStatusCode response_code, | 427 HttpStatusCode response_code, |
429 URLRequestStatus::Status status) { | 428 URLRequestStatus::Status status) { |
430 // Overwrite existing URL if it already exists. | 429 // Overwrite existing URL if it already exists. |
431 FakeURLResponse response; | 430 FakeURLResponse response; |
432 response.response_data = response_data; | 431 response.response_data = response_data; |
433 response.response_code = response_code; | 432 response.response_code = response_code; |
434 response.status = status; | 433 response.status = status; |
435 fake_responses_[url] = response; | 434 fake_responses_[url] = response; |
436 } | 435 } |
437 | 436 |
438 void FakeURLFetcherFactory::ClearFakeResponses() { | 437 void FakeURLFetcherFactory::ClearFakeResponses() { |
439 fake_responses_.clear(); | 438 fake_responses_.clear(); |
440 } | 439 } |
441 | 440 |
442 URLFetcherImplFactory::URLFetcherImplFactory() {} | 441 URLFetcherImplFactory::URLFetcherImplFactory() {} |
443 | 442 |
444 URLFetcherImplFactory::~URLFetcherImplFactory() {} | 443 URLFetcherImplFactory::~URLFetcherImplFactory() {} |
445 | 444 |
446 URLFetcher* URLFetcherImplFactory::CreateURLFetcher( | 445 scoped_ptr<URLFetcher> URLFetcherImplFactory::CreateURLFetcher( |
447 int id, | 446 int id, |
448 const GURL& url, | 447 const GURL& url, |
449 URLFetcher::RequestType request_type, | 448 URLFetcher::RequestType request_type, |
450 URLFetcherDelegate* d) { | 449 URLFetcherDelegate* d) { |
451 return new URLFetcherImpl(url, request_type, d); | 450 return scoped_ptr<URLFetcher>(new URLFetcherImpl(url, request_type, d)); |
452 } | 451 } |
453 | 452 |
454 } // namespace net | 453 } // namespace net |
OLD | NEW |