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 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
276 } | 276 } |
277 | 277 |
278 void TestURLFetcherFactory::SetDelegateForTests( | 278 void TestURLFetcherFactory::SetDelegateForTests( |
279 TestURLFetcherDelegateForTests* delegate_for_tests) { | 279 TestURLFetcherDelegateForTests* delegate_for_tests) { |
280 delegate_for_tests_ = delegate_for_tests; | 280 delegate_for_tests_ = delegate_for_tests; |
281 } | 281 } |
282 | 282 |
283 FakeURLFetcher::FakeURLFetcher(const GURL& url, | 283 FakeURLFetcher::FakeURLFetcher(const GURL& url, |
284 URLFetcherDelegate* d, | 284 URLFetcherDelegate* d, |
285 const std::string& response_data, | 285 const std::string& response_data, |
286 HttpStatusCode response_code) | 286 HttpStatusCode response_code, |
287 URLRequestStatus::Status status) | |
287 : TestURLFetcher(0, url, d), | 288 : TestURLFetcher(0, url, d), |
288 weak_factory_(this) { | 289 weak_factory_(this) { |
289 set_status(URLRequestStatus( | 290 set_status(URLRequestStatus(status, 0)); |
mmenke
2013/11/06 15:40:12
I think the second parameter should be OK when sta
Raghu Simha
2013/11/06 16:58:59
Done.
| |
290 // Status is FAILED for HTTP/5xx server errors, and SUCCESS otherwise. | |
291 response_code >= HTTP_INTERNAL_SERVER_ERROR ? URLRequestStatus::FAILED : | |
292 URLRequestStatus::SUCCESS, | |
293 0)); | |
294 set_response_code(response_code); | 291 set_response_code(response_code); |
295 SetResponseString(response_data); | 292 SetResponseString(response_data); |
296 } | 293 } |
297 | 294 |
298 FakeURLFetcher::~FakeURLFetcher() {} | 295 FakeURLFetcher::~FakeURLFetcher() {} |
299 | 296 |
300 void FakeURLFetcher::Start() { | 297 void FakeURLFetcher::Start() { |
301 base::MessageLoop::current()->PostTask( | 298 base::MessageLoop::current()->PostTask( |
302 FROM_HERE, | 299 FROM_HERE, |
303 base::Bind(&FakeURLFetcher::RunDelegate, weak_factory_.GetWeakPtr())); | 300 base::Bind(&FakeURLFetcher::RunDelegate, weak_factory_.GetWeakPtr())); |
(...skipping 19 matching lines...) Expand all Loading... | |
323 const FakeURLFetcherCreator& creator) | 320 const FakeURLFetcherCreator& creator) |
324 : ScopedURLFetcherFactory(this), | 321 : ScopedURLFetcherFactory(this), |
325 creator_(creator), | 322 creator_(creator), |
326 default_factory_(default_factory) { | 323 default_factory_(default_factory) { |
327 } | 324 } |
328 | 325 |
329 scoped_ptr<FakeURLFetcher> FakeURLFetcherFactory::DefaultFakeURLFetcherCreator( | 326 scoped_ptr<FakeURLFetcher> FakeURLFetcherFactory::DefaultFakeURLFetcherCreator( |
330 const GURL& url, | 327 const GURL& url, |
331 URLFetcherDelegate* delegate, | 328 URLFetcherDelegate* delegate, |
332 const std::string& response_data, | 329 const std::string& response_data, |
333 HttpStatusCode response_code) { | 330 HttpStatusCode response_code, |
334 return scoped_ptr<FakeURLFetcher>(new FakeURLFetcher(url, | 331 URLRequestStatus::Status status) { |
335 delegate, | 332 return scoped_ptr<FakeURLFetcher>( |
336 response_data, | 333 new FakeURLFetcher(url, delegate, response_data, response_code, status)); |
337 response_code)); | |
338 } | 334 } |
339 | 335 |
340 FakeURLFetcherFactory::~FakeURLFetcherFactory() {} | 336 FakeURLFetcherFactory::~FakeURLFetcherFactory() {} |
341 | 337 |
342 URLFetcher* FakeURLFetcherFactory::CreateURLFetcher( | 338 URLFetcher* FakeURLFetcherFactory::CreateURLFetcher( |
343 int id, | 339 int id, |
344 const GURL& url, | 340 const GURL& url, |
345 URLFetcher::RequestType request_type, | 341 URLFetcher::RequestType request_type, |
346 URLFetcherDelegate* d) { | 342 URLFetcherDelegate* d) { |
347 FakeResponseMap::const_iterator it = fake_responses_.find(url); | 343 FakeResponseMap::const_iterator it = fake_responses_.find(url); |
348 if (it == fake_responses_.end()) { | 344 if (it == fake_responses_.end()) { |
349 if (default_factory_ == NULL) { | 345 if (default_factory_ == NULL) { |
350 // If we don't have a baked response for that URL we return NULL. | 346 // If we don't have a baked response for that URL we return NULL. |
351 DLOG(ERROR) << "No baked response for URL: " << url.spec(); | 347 DLOG(ERROR) << "No baked response for URL: " << url.spec(); |
352 return NULL; | 348 return NULL; |
353 } else { | 349 } else { |
354 return default_factory_->CreateURLFetcher(id, url, request_type, d); | 350 return default_factory_->CreateURLFetcher(id, url, request_type, d); |
355 } | 351 } |
356 } | 352 } |
357 | 353 |
358 scoped_ptr<FakeURLFetcher> fake_fetcher = | 354 scoped_ptr<FakeURLFetcher> fake_fetcher = |
359 creator_.Run(url, d, it->second.first, it->second.second); | 355 creator_.Run(url, d, it->second.response_data, |
356 it->second.response_code, it->second.status); | |
360 // TODO: Make URLFetcherFactory::CreateURLFetcher return a scoped_ptr | 357 // TODO: Make URLFetcherFactory::CreateURLFetcher return a scoped_ptr |
361 return fake_fetcher.release(); | 358 return fake_fetcher.release(); |
362 } | 359 } |
363 | 360 |
364 void FakeURLFetcherFactory::SetFakeResponse( | 361 void FakeURLFetcherFactory::SetFakeResponse( |
365 const GURL& url, | 362 const GURL& url, |
366 const std::string& response_data, | 363 const std::string& response_data, |
367 HttpStatusCode response_code) { | 364 HttpStatusCode response_code, |
365 URLRequestStatus::Status status) { | |
368 // Overwrite existing URL if it already exists. | 366 // Overwrite existing URL if it already exists. |
369 fake_responses_[url] = std::make_pair(response_data, response_code); | 367 FakeURLResponse response; |
368 response.response_data = response_data; | |
369 response.response_code = response_code; | |
370 response.status = status; | |
371 fake_responses_[url] = response; | |
370 } | 372 } |
371 | 373 |
372 void FakeURLFetcherFactory::ClearFakeResponses() { | 374 void FakeURLFetcherFactory::ClearFakeResponses() { |
373 fake_responses_.clear(); | 375 fake_responses_.clear(); |
374 } | 376 } |
375 | 377 |
376 URLFetcherImplFactory::URLFetcherImplFactory() {} | 378 URLFetcherImplFactory::URLFetcherImplFactory() {} |
377 | 379 |
378 URLFetcherImplFactory::~URLFetcherImplFactory() {} | 380 URLFetcherImplFactory::~URLFetcherImplFactory() {} |
379 | 381 |
380 URLFetcher* URLFetcherImplFactory::CreateURLFetcher( | 382 URLFetcher* URLFetcherImplFactory::CreateURLFetcher( |
381 int id, | 383 int id, |
382 const GURL& url, | 384 const GURL& url, |
383 URLFetcher::RequestType request_type, | 385 URLFetcher::RequestType request_type, |
384 URLFetcherDelegate* d) { | 386 URLFetcherDelegate* d) { |
385 return new URLFetcherImpl(url, request_type, d); | 387 return new URLFetcherImpl(url, request_type, d); |
386 } | 388 } |
387 | 389 |
388 } // namespace net | 390 } // namespace net |
OLD | NEW |