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 "content/test/test_url_fetcher_factory.h" | 5 #include "content/test/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.h" | 12 #include "base/message_loop.h" |
13 #include "content/common/net/url_fetcher_impl.h" | 13 #include "content/common/net/url_fetcher_impl.h" |
14 #include "content/public/common/url_fetcher_delegate.h" | |
15 #include "net/base/host_port_pair.h" | 14 #include "net/base/host_port_pair.h" |
16 #include "net/http/http_response_headers.h" | 15 #include "net/http/http_response_headers.h" |
| 16 #include "net/url_request/url_fetcher_delegate.h" |
17 #include "net/url_request/url_request_status.h" | 17 #include "net/url_request/url_request_status.h" |
18 | 18 |
19 ScopedURLFetcherFactory::ScopedURLFetcherFactory( | 19 ScopedURLFetcherFactory::ScopedURLFetcherFactory( |
20 content::URLFetcherFactory* factory) { | 20 content::URLFetcherFactory* factory) { |
21 DCHECK(!URLFetcherImpl::factory()); | 21 DCHECK(!URLFetcherImpl::factory()); |
22 URLFetcherImpl::set_factory(factory); | 22 URLFetcherImpl::set_factory(factory); |
23 } | 23 } |
24 | 24 |
25 ScopedURLFetcherFactory::~ScopedURLFetcherFactory() { | 25 ScopedURLFetcherFactory::~ScopedURLFetcherFactory() { |
26 DCHECK(URLFetcherImpl::factory()); | 26 DCHECK(URLFetcherImpl::factory()); |
27 URLFetcherImpl::set_factory(NULL); | 27 URLFetcherImpl::set_factory(NULL); |
28 } | 28 } |
29 | 29 |
30 TestURLFetcher::TestURLFetcher(int id, | 30 TestURLFetcher::TestURLFetcher(int id, |
31 const GURL& url, | 31 const GURL& url, |
32 content::URLFetcherDelegate* d) | 32 net::URLFetcherDelegate* d) |
33 : id_(id), | 33 : id_(id), |
34 original_url_(url), | 34 original_url_(url), |
35 delegate_(d), | 35 delegate_(d), |
36 did_receive_last_chunk_(false), | 36 did_receive_last_chunk_(false), |
37 fake_load_flags_(0), | 37 fake_load_flags_(0), |
38 fake_response_code_(-1), | 38 fake_response_code_(-1), |
39 fake_response_destination_(STRING), | 39 fake_response_destination_(STRING), |
40 fake_was_fetched_via_proxy_(false), | 40 fake_was_fetched_via_proxy_(false), |
41 fake_max_retries_(0) { | 41 fake_max_retries_(0) { |
42 } | 42 } |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 TestURLFetcherFactory::TestURLFetcherFactory() | 216 TestURLFetcherFactory::TestURLFetcherFactory() |
217 : ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { | 217 : ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { |
218 } | 218 } |
219 | 219 |
220 TestURLFetcherFactory::~TestURLFetcherFactory() {} | 220 TestURLFetcherFactory::~TestURLFetcherFactory() {} |
221 | 221 |
222 content::URLFetcher* TestURLFetcherFactory::CreateURLFetcher( | 222 content::URLFetcher* TestURLFetcherFactory::CreateURLFetcher( |
223 int id, | 223 int id, |
224 const GURL& url, | 224 const GURL& url, |
225 content::URLFetcher::RequestType request_type, | 225 content::URLFetcher::RequestType request_type, |
226 content::URLFetcherDelegate* d) { | 226 net::URLFetcherDelegate* d) { |
227 TestURLFetcher* fetcher = new TestURLFetcher(id, url, d); | 227 TestURLFetcher* fetcher = new TestURLFetcher(id, url, d); |
228 fetchers_[id] = fetcher; | 228 fetchers_[id] = fetcher; |
229 return fetcher; | 229 return fetcher; |
230 } | 230 } |
231 | 231 |
232 TestURLFetcher* TestURLFetcherFactory::GetFetcherByID(int id) const { | 232 TestURLFetcher* TestURLFetcherFactory::GetFetcherByID(int id) const { |
233 Fetchers::const_iterator i = fetchers_.find(id); | 233 Fetchers::const_iterator i = fetchers_.find(id); |
234 return i == fetchers_.end() ? NULL : i->second; | 234 return i == fetchers_.end() ? NULL : i->second; |
235 } | 235 } |
236 | 236 |
237 void TestURLFetcherFactory::RemoveFetcherFromMap(int id) { | 237 void TestURLFetcherFactory::RemoveFetcherFromMap(int id) { |
238 Fetchers::iterator i = fetchers_.find(id); | 238 Fetchers::iterator i = fetchers_.find(id); |
239 DCHECK(i != fetchers_.end()); | 239 DCHECK(i != fetchers_.end()); |
240 fetchers_.erase(i); | 240 fetchers_.erase(i); |
241 } | 241 } |
242 | 242 |
243 // This class is used by the FakeURLFetcherFactory below. | 243 // This class is used by the FakeURLFetcherFactory below. |
244 class FakeURLFetcher : public TestURLFetcher { | 244 class FakeURLFetcher : public TestURLFetcher { |
245 public: | 245 public: |
246 // Normal URL fetcher constructor but also takes in a pre-baked response. | 246 // Normal URL fetcher constructor but also takes in a pre-baked response. |
247 FakeURLFetcher(const GURL& url, | 247 FakeURLFetcher(const GURL& url, |
248 content::URLFetcherDelegate* d, | 248 net::URLFetcherDelegate* d, |
249 const std::string& response_data, bool success) | 249 const std::string& response_data, bool success) |
250 : TestURLFetcher(0, url, d), | 250 : TestURLFetcher(0, url, d), |
251 ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) { | 251 ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) { |
252 set_status(net::URLRequestStatus( | 252 set_status(net::URLRequestStatus( |
253 success ? net::URLRequestStatus::SUCCESS : | 253 success ? net::URLRequestStatus::SUCCESS : |
254 net::URLRequestStatus::FAILED, | 254 net::URLRequestStatus::FAILED, |
255 0)); | 255 0)); |
256 set_response_code(success ? 200 : 500); | 256 set_response_code(success ? 200 : 500); |
257 SetResponseString(response_data); | 257 SetResponseString(response_data); |
258 } | 258 } |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
294 : ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)), | 294 : ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)), |
295 default_factory_(default_factory) { | 295 default_factory_(default_factory) { |
296 } | 296 } |
297 | 297 |
298 FakeURLFetcherFactory::~FakeURLFetcherFactory() {} | 298 FakeURLFetcherFactory::~FakeURLFetcherFactory() {} |
299 | 299 |
300 content::URLFetcher* FakeURLFetcherFactory::CreateURLFetcher( | 300 content::URLFetcher* FakeURLFetcherFactory::CreateURLFetcher( |
301 int id, | 301 int id, |
302 const GURL& url, | 302 const GURL& url, |
303 content::URLFetcher::RequestType request_type, | 303 content::URLFetcher::RequestType request_type, |
304 content::URLFetcherDelegate* d) { | 304 net::URLFetcherDelegate* d) { |
305 FakeResponseMap::const_iterator it = fake_responses_.find(url); | 305 FakeResponseMap::const_iterator it = fake_responses_.find(url); |
306 if (it == fake_responses_.end()) { | 306 if (it == fake_responses_.end()) { |
307 if (default_factory_ == NULL) { | 307 if (default_factory_ == NULL) { |
308 // If we don't have a baked response for that URL we return NULL. | 308 // If we don't have a baked response for that URL we return NULL. |
309 DLOG(ERROR) << "No baked response for URL: " << url.spec(); | 309 DLOG(ERROR) << "No baked response for URL: " << url.spec(); |
310 return NULL; | 310 return NULL; |
311 } else { | 311 } else { |
312 return default_factory_->CreateURLFetcher(id, url, request_type, d); | 312 return default_factory_->CreateURLFetcher(id, url, request_type, d); |
313 } | 313 } |
314 } | 314 } |
(...skipping 12 matching lines...) Expand all Loading... |
327 } | 327 } |
328 | 328 |
329 URLFetcherImplFactory::URLFetcherImplFactory() {} | 329 URLFetcherImplFactory::URLFetcherImplFactory() {} |
330 | 330 |
331 URLFetcherImplFactory::~URLFetcherImplFactory() {} | 331 URLFetcherImplFactory::~URLFetcherImplFactory() {} |
332 | 332 |
333 content::URLFetcher* URLFetcherImplFactory::CreateURLFetcher( | 333 content::URLFetcher* URLFetcherImplFactory::CreateURLFetcher( |
334 int id, | 334 int id, |
335 const GURL& url, | 335 const GURL& url, |
336 content::URLFetcher::RequestType request_type, | 336 content::URLFetcher::RequestType request_type, |
337 content::URLFetcherDelegate* d) { | 337 net::URLFetcherDelegate* d) { |
338 return new URLFetcherImpl(url, request_type, d); | 338 return new URLFetcherImpl(url, request_type, d); |
339 } | 339 } |
OLD | NEW |