| 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 |