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

Side by Side Diff: content/test/test_url_fetcher_factory.cc

Issue 8373021: Convert URLFetcher::Delegates to use an interface in content/public/common. Also remove the old U... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: sync and remove unncessary forward declares Created 9 years, 1 month 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
11 #include "content/public/common/url_fetcher_delegate.h"
11 #include "net/http/http_response_headers.h" 12 #include "net/http/http_response_headers.h"
12 #include "net/url_request/url_request_status.h" 13 #include "net/url_request/url_request_status.h"
13 14
14 ScopedURLFetcherFactory::ScopedURLFetcherFactory(URLFetcher::Factory* factory) { 15 ScopedURLFetcherFactory::ScopedURLFetcherFactory(URLFetcher::Factory* factory) {
15 DCHECK(!URLFetcher::factory()); 16 DCHECK(!URLFetcher::factory());
16 URLFetcher::set_factory(factory); 17 URLFetcher::set_factory(factory);
17 } 18 }
18 19
19 ScopedURLFetcherFactory::~ScopedURLFetcherFactory() { 20 ScopedURLFetcherFactory::~ScopedURLFetcherFactory() {
20 DCHECK(URLFetcher::factory()); 21 DCHECK(URLFetcher::factory());
21 URLFetcher::set_factory(NULL); 22 URLFetcher::set_factory(NULL);
22 } 23 }
23 24
24 TestURLFetcher::TestURLFetcher(int id, 25 TestURLFetcher::TestURLFetcher(int id,
25 const GURL& url, 26 const GURL& url,
26 URLFetcher::RequestType request_type, 27 URLFetcher::RequestType request_type,
27 URLFetcher::Delegate* d) 28 content::URLFetcherDelegate* d)
28 : URLFetcher(url, request_type, d), 29 : URLFetcher(url, request_type, d),
29 id_(id), 30 id_(id),
30 original_url_(url), 31 original_url_(url),
31 did_receive_last_chunk_(false) { 32 did_receive_last_chunk_(false) {
32 } 33 }
33 34
34 TestURLFetcher::~TestURLFetcher() { 35 TestURLFetcher::~TestURLFetcher() {
35 } 36 }
36 37
37 void TestURLFetcher::AppendChunkToUpload(const std::string& data, 38 void TestURLFetcher::AppendChunkToUpload(const std::string& data,
(...skipping 23 matching lines...) Expand all
61 void TestURLFetcher::SetResponseString(const std::string& response) { 62 void TestURLFetcher::SetResponseString(const std::string& response) {
62 SetResponseDestinationForTesting(STRING); 63 SetResponseDestinationForTesting(STRING);
63 fake_response_string_ = response; 64 fake_response_string_ = response;
64 } 65 }
65 66
66 void TestURLFetcher::SetResponseFilePath(const FilePath& path) { 67 void TestURLFetcher::SetResponseFilePath(const FilePath& path) {
67 SetResponseDestinationForTesting(TEMP_FILE); 68 SetResponseDestinationForTesting(TEMP_FILE);
68 fake_response_file_path_ = path; 69 fake_response_file_path_ = path;
69 } 70 }
70 71
71 const std::string& TestURLFetcher::GetResponseStringRef() const {
72 return fake_response_string_;
73 }
74
75 bool TestURLFetcher::GetResponseAsString( 72 bool TestURLFetcher::GetResponseAsString(
76 std::string* out_response_string) const { 73 std::string* out_response_string) const {
77 if (GetResponseDestinationForTesting() != STRING) 74 if (GetResponseDestinationForTesting() != STRING)
78 return false; 75 return false;
79 76
80 *out_response_string = fake_response_string_; 77 *out_response_string = fake_response_string_;
81 return true; 78 return true;
82 } 79 }
83 80
84 bool TestURLFetcher::GetResponseAsFilePath( 81 bool TestURLFetcher::GetResponseAsFilePath(
85 bool take_ownership, FilePath* out_response_path) const { 82 bool take_ownership, FilePath* out_response_path) const {
86 if (GetResponseDestinationForTesting() != TEMP_FILE) 83 if (GetResponseDestinationForTesting() != TEMP_FILE)
87 return false; 84 return false;
88 85
89 *out_response_path = fake_response_file_path_; 86 *out_response_path = fake_response_file_path_;
90 return true; 87 return true;
91 } 88 }
92 89
93 TestURLFetcherFactory::TestURLFetcherFactory() 90 TestURLFetcherFactory::TestURLFetcherFactory()
94 : ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { 91 : ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
95 } 92 }
96 93
97 TestURLFetcherFactory::~TestURLFetcherFactory() {} 94 TestURLFetcherFactory::~TestURLFetcherFactory() {}
98 95
99 URLFetcher* TestURLFetcherFactory::CreateURLFetcher( 96 URLFetcher* TestURLFetcherFactory::CreateURLFetcher(
100 int id, 97 int id,
101 const GURL& url, 98 const GURL& url,
102 URLFetcher::RequestType request_type, 99 URLFetcher::RequestType request_type,
103 URLFetcher::Delegate* d) { 100 content::URLFetcherDelegate* d) {
104 TestURLFetcher* fetcher = new TestURLFetcher(id, url, request_type, d); 101 TestURLFetcher* fetcher = new TestURLFetcher(id, url, request_type, d);
105 fetchers_[id] = fetcher; 102 fetchers_[id] = fetcher;
106 return fetcher; 103 return fetcher;
107 } 104 }
108 105
109 TestURLFetcher* TestURLFetcherFactory::GetFetcherByID(int id) const { 106 TestURLFetcher* TestURLFetcherFactory::GetFetcherByID(int id) const {
110 Fetchers::const_iterator i = fetchers_.find(id); 107 Fetchers::const_iterator i = fetchers_.find(id);
111 return i == fetchers_.end() ? NULL : i->second; 108 return i == fetchers_.end() ? NULL : i->second;
112 } 109 }
113 110
114 void TestURLFetcherFactory::RemoveFetcherFromMap(int id) { 111 void TestURLFetcherFactory::RemoveFetcherFromMap(int id) {
115 Fetchers::iterator i = fetchers_.find(id); 112 Fetchers::iterator i = fetchers_.find(id);
116 DCHECK(i != fetchers_.end()); 113 DCHECK(i != fetchers_.end());
117 fetchers_.erase(i); 114 fetchers_.erase(i);
118 } 115 }
119 116
120 const GURL& TestURLFetcher::url() const { 117 const GURL& TestURLFetcher::url() const {
121 return fake_url_; 118 return fake_url_;
122 } 119 }
123 120
124 const net::URLRequestStatus& TestURLFetcher::status() const { 121 const net::URLRequestStatus& TestURLFetcher::status() const {
125 return fake_status_; 122 return fake_status_;
126 } 123 }
127 124
128 int TestURLFetcher::response_code() const { 125 int TestURLFetcher::response_code() const {
129 return fake_response_code_; 126 return fake_response_code_;
130 } 127 }
131 128
129 const net::ResponseCookies& TestURLFetcher::cookies() const {
130 return fake_cookies_;
131 }
132
132 // This class is used by the FakeURLFetcherFactory below. 133 // This class is used by the FakeURLFetcherFactory below.
133 class FakeURLFetcher : public URLFetcher { 134 class FakeURLFetcher : public URLFetcher {
134 public: 135 public:
135 // Normal URL fetcher constructor but also takes in a pre-baked response. 136 // Normal URL fetcher constructor but also takes in a pre-baked response.
136 FakeURLFetcher(const GURL& url, RequestType request_type, Delegate* d, 137 FakeURLFetcher(const GURL& url, RequestType request_type,
138 content::URLFetcherDelegate* d,
137 const std::string& response_data, bool success) 139 const std::string& response_data, bool success)
138 : URLFetcher(url, request_type, d), 140 : URLFetcher(url, request_type, d),
139 url_(url), 141 url_(url),
140 response_data_(response_data), 142 response_data_(response_data),
141 success_(success), 143 success_(success),
142 status_(success ? net::URLRequestStatus::SUCCESS : 144 status_(success ? net::URLRequestStatus::SUCCESS :
143 net::URLRequestStatus::FAILED, 0), 145 net::URLRequestStatus::FAILED, 0),
144 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) { 146 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) {
145 } 147 }
146 148
147 // Start the request. This will call the given delegate asynchronously 149 // Start the request. This will call the given delegate asynchronously
148 // with the pre-baked response as parameter. 150 // with the pre-baked response as parameter.
149 virtual void Start() OVERRIDE { 151 virtual void Start() OVERRIDE {
150 MessageLoop::current()->PostTask( 152 MessageLoop::current()->PostTask(
151 FROM_HERE, 153 FROM_HERE,
152 method_factory_.NewRunnableMethod(&FakeURLFetcher::RunDelegate)); 154 method_factory_.NewRunnableMethod(&FakeURLFetcher::RunDelegate));
153 } 155 }
154 156
155 // These methods are overriden so we can use the version of 157 // These methods are overriden so we can use the version of
156 // OnURLFetchComplete that only has a single URLFetcher argument. 158 // OnURLFetchComplete that only has a single URLFetcher argument.
157 virtual const net::ResponseCookies& cookies() const OVERRIDE { 159 virtual const net::ResponseCookies& cookies() const OVERRIDE {
158 return cookies_; 160 return cookies_;
159 } 161 }
160 162
161 virtual const std::string& GetResponseStringRef() const OVERRIDE {
162 return response_data_;
163 }
164
165 virtual bool GetResponseAsString( 163 virtual bool GetResponseAsString(
166 std::string* out_response_string) const OVERRIDE { 164 std::string* out_response_string) const OVERRIDE {
167 *out_response_string = response_data_; 165 *out_response_string = response_data_;
168 return true; 166 return true;
169 } 167 }
170 168
171 virtual int response_code() const OVERRIDE { 169 virtual int response_code() const OVERRIDE {
172 return success_ ? 200 : 500; 170 return success_ ? 200 : 500;
173 } 171 }
174 172
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 : ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)), 211 : ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
214 default_factory_(default_factory) { 212 default_factory_(default_factory) {
215 } 213 }
216 214
217 FakeURLFetcherFactory::~FakeURLFetcherFactory() {} 215 FakeURLFetcherFactory::~FakeURLFetcherFactory() {}
218 216
219 URLFetcher* FakeURLFetcherFactory::CreateURLFetcher( 217 URLFetcher* FakeURLFetcherFactory::CreateURLFetcher(
220 int id, 218 int id,
221 const GURL& url, 219 const GURL& url,
222 URLFetcher::RequestType request_type, 220 URLFetcher::RequestType request_type,
223 URLFetcher::Delegate* d) { 221 content::URLFetcherDelegate* d) {
224 FakeResponseMap::const_iterator it = fake_responses_.find(url); 222 FakeResponseMap::const_iterator it = fake_responses_.find(url);
225 if (it == fake_responses_.end()) { 223 if (it == fake_responses_.end()) {
226 if (default_factory_ == NULL) { 224 if (default_factory_ == NULL) {
227 // If we don't have a baked response for that URL we return NULL. 225 // If we don't have a baked response for that URL we return NULL.
228 DLOG(ERROR) << "No baked response for URL: " << url.spec(); 226 DLOG(ERROR) << "No baked response for URL: " << url.spec();
229 return NULL; 227 return NULL;
230 } else { 228 } else {
231 return default_factory_->CreateURLFetcher(id, url, request_type, d); 229 return default_factory_->CreateURLFetcher(id, url, request_type, d);
232 } 230 }
233 } 231 }
(...skipping 13 matching lines...) Expand all
247 } 245 }
248 246
249 URLFetcherFactory::URLFetcherFactory() {} 247 URLFetcherFactory::URLFetcherFactory() {}
250 248
251 URLFetcherFactory::~URLFetcherFactory() {} 249 URLFetcherFactory::~URLFetcherFactory() {}
252 250
253 URLFetcher* URLFetcherFactory::CreateURLFetcher( 251 URLFetcher* URLFetcherFactory::CreateURLFetcher(
254 int id, 252 int id,
255 const GURL& url, 253 const GURL& url,
256 URLFetcher::RequestType request_type, 254 URLFetcher::RequestType request_type,
257 URLFetcher::Delegate* d) { 255 content::URLFetcherDelegate* d) {
258 return new URLFetcher(url, request_type, d); 256 return new URLFetcher(url, request_type, d);
259 } 257 }
OLDNEW
« content/common/net/url_fetcher.h ('K') | « content/test/test_url_fetcher_factory.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698