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

Side by Side Diff: net/http/http_transaction_unittest.cc

Issue 8990001: base::Bind: Convert most of net/http. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Clang. Created 9 years 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 "net/http/http_transaction_unittest.h" 5 #include "net/http/http_transaction_unittest.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 factory->CreateTransaction(&trans_); 154 factory->CreateTransaction(&trans_);
155 ++quit_counter_; 155 ++quit_counter_;
156 } 156 }
157 157
158 TestTransactionConsumer::~TestTransactionConsumer() { 158 TestTransactionConsumer::~TestTransactionConsumer() {
159 } 159 }
160 160
161 void TestTransactionConsumer::Start(const net::HttpRequestInfo* request, 161 void TestTransactionConsumer::Start(const net::HttpRequestInfo* request,
162 const net::BoundNetLog& net_log) { 162 const net::BoundNetLog& net_log) {
163 state_ = STARTING; 163 state_ = STARTING;
164 int result = trans_->Start(request, this, net_log); 164 int result = trans_->Start(
165 request, base::Bind(&net::OldCompletionCallbackAdapter, this), net_log);
165 if (result != net::ERR_IO_PENDING) 166 if (result != net::ERR_IO_PENDING)
166 DidStart(result); 167 DidStart(result);
167 } 168 }
168 169
169 void TestTransactionConsumer::DidStart(int result) { 170 void TestTransactionConsumer::DidStart(int result) {
170 if (result != net::OK) { 171 if (result != net::OK) {
171 DidFinish(result); 172 DidFinish(result);
172 } else { 173 } else {
173 Read(); 174 Read();
174 } 175 }
(...skipping 11 matching lines...) Expand all
186 void TestTransactionConsumer::DidFinish(int result) { 187 void TestTransactionConsumer::DidFinish(int result) {
187 state_ = DONE; 188 state_ = DONE;
188 error_ = result; 189 error_ = result;
189 if (--quit_counter_ == 0) 190 if (--quit_counter_ == 0)
190 MessageLoop::current()->Quit(); 191 MessageLoop::current()->Quit();
191 } 192 }
192 193
193 void TestTransactionConsumer::Read() { 194 void TestTransactionConsumer::Read() {
194 state_ = READING; 195 state_ = READING;
195 read_buf_ = new net::IOBuffer(1024); 196 read_buf_ = new net::IOBuffer(1024);
196 int result = trans_->Read(read_buf_, 1024, this); 197 int result = trans_->Read(
198 read_buf_, 1024, base::Bind(&net::OldCompletionCallbackAdapter, this));
197 if (result != net::ERR_IO_PENDING) 199 if (result != net::ERR_IO_PENDING)
198 DidRead(result); 200 DidRead(result);
199 } 201 }
200 202
201 void TestTransactionConsumer::RunWithParams(const Tuple1<int>& params) { 203 void TestTransactionConsumer::RunWithParams(const Tuple1<int>& params) {
202 int result = params.a; 204 int result = params.a;
203 switch (state_) { 205 switch (state_) {
204 case STARTING: 206 case STARTING:
205 DidStart(result); 207 DidStart(result);
206 break; 208 break;
207 case READING: 209 case READING:
208 DidRead(result); 210 DidRead(result);
209 break; 211 break;
210 default: 212 default:
211 NOTREACHED(); 213 NOTREACHED();
212 } 214 }
213 } 215 }
214 216
215 217
216 MockNetworkTransaction::MockNetworkTransaction(MockNetworkLayer* factory) 218 MockNetworkTransaction::MockNetworkTransaction(MockNetworkLayer* factory)
217 : ALLOW_THIS_IN_INITIALIZER_LIST(ptr_factory_(this)), 219 : ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)),
218 data_cursor_(0), 220 data_cursor_(0),
219 transaction_factory_(factory->AsWeakPtr()) { 221 transaction_factory_(factory->AsWeakPtr()) {
220 } 222 }
221 223
222 MockNetworkTransaction::~MockNetworkTransaction() {} 224 MockNetworkTransaction::~MockNetworkTransaction() {}
223 225
224 int MockNetworkTransaction::Start(const net::HttpRequestInfo* request, 226 int MockNetworkTransaction::Start(const net::HttpRequestInfo* request,
225 net::OldCompletionCallback* callback, 227 const net::CompletionCallback& callback,
226 const net::BoundNetLog& net_log) { 228 const net::BoundNetLog& net_log) {
227 const MockTransaction* t = FindMockTransaction(request->url); 229 const MockTransaction* t = FindMockTransaction(request->url);
228 if (!t) 230 if (!t)
229 return net::ERR_FAILED; 231 return net::ERR_FAILED;
230 232
231 std::string resp_status = t->status; 233 std::string resp_status = t->status;
232 std::string resp_headers = t->response_headers; 234 std::string resp_headers = t->response_headers;
233 std::string resp_data = t->data; 235 std::string resp_data = t->data;
234 if (t->handler) 236 if (t->handler)
235 (t->handler)(request, &resp_status, &resp_headers, &resp_data); 237 (t->handler)(request, &resp_status, &resp_headers, &resp_data);
(...skipping 18 matching lines...) Expand all
254 test_mode_ = t->test_mode; 256 test_mode_ = t->test_mode;
255 257
256 if (test_mode_ & TEST_MODE_SYNC_NET_START) 258 if (test_mode_ & TEST_MODE_SYNC_NET_START)
257 return net::OK; 259 return net::OK;
258 260
259 CallbackLater(callback, net::OK); 261 CallbackLater(callback, net::OK);
260 return net::ERR_IO_PENDING; 262 return net::ERR_IO_PENDING;
261 } 263 }
262 264
263 int MockNetworkTransaction::RestartIgnoringLastError( 265 int MockNetworkTransaction::RestartIgnoringLastError(
264 net::OldCompletionCallback* callback) { 266 const net::CompletionCallback& callback) {
265 return net::ERR_FAILED; 267 return net::ERR_FAILED;
266 } 268 }
267 269
268 int MockNetworkTransaction::RestartWithCertificate( 270 int MockNetworkTransaction::RestartWithCertificate(
269 net::X509Certificate* client_cert, 271 net::X509Certificate* client_cert,
270 net::OldCompletionCallback* callback) { 272 const net::CompletionCallback& callback) {
271 return net::ERR_FAILED; 273 return net::ERR_FAILED;
272 } 274 }
273 275
274 int MockNetworkTransaction::RestartWithAuth( 276 int MockNetworkTransaction::RestartWithAuth(
275 const net::AuthCredentials& credentials, 277 const net::AuthCredentials& credentials,
276 net::OldCompletionCallback* callback) { 278 const net::CompletionCallback& callback) {
277 return net::ERR_FAILED; 279 return net::ERR_FAILED;
278 } 280 }
279 281
280 bool MockNetworkTransaction::IsReadyToRestartForAuth() { 282 bool MockNetworkTransaction::IsReadyToRestartForAuth() {
281 return false; 283 return false;
282 } 284 }
283 285
284 int MockNetworkTransaction::Read(net::IOBuffer* buf, int buf_len, 286 int MockNetworkTransaction::Read(net::IOBuffer* buf, int buf_len,
285 net::OldCompletionCallback* callback) { 287 const net::CompletionCallback& callback) {
286 int data_len = static_cast<int>(data_.size()); 288 int data_len = static_cast<int>(data_.size());
287 int num = std::min(buf_len, data_len - data_cursor_); 289 int num = std::min(buf_len, data_len - data_cursor_);
288 if (num) { 290 if (num) {
289 memcpy(buf->data(), data_.data() + data_cursor_, num); 291 memcpy(buf->data(), data_.data() + data_cursor_, num);
290 data_cursor_ += num; 292 data_cursor_ += num;
291 } 293 }
292 if (test_mode_ & TEST_MODE_SYNC_NET_READ) 294 if (test_mode_ & TEST_MODE_SYNC_NET_READ)
293 return num; 295 return num;
294 296
295 CallbackLater(callback, num); 297 CallbackLater(callback, num);
(...skipping 14 matching lines...) Expand all
310 net::LoadState MockNetworkTransaction::GetLoadState() const { 312 net::LoadState MockNetworkTransaction::GetLoadState() const {
311 if (data_cursor_) 313 if (data_cursor_)
312 return net::LOAD_STATE_READING_RESPONSE; 314 return net::LOAD_STATE_READING_RESPONSE;
313 return net::LOAD_STATE_IDLE; 315 return net::LOAD_STATE_IDLE;
314 } 316 }
315 317
316 uint64 MockNetworkTransaction::GetUploadProgress() const { 318 uint64 MockNetworkTransaction::GetUploadProgress() const {
317 return 0; 319 return 0;
318 } 320 }
319 321
320 void MockNetworkTransaction::CallbackLater(net::OldCompletionCallback* callback, 322 void MockNetworkTransaction::CallbackLater(
321 int result) { 323 const net::CompletionCallback& callback, int result) {
322 MessageLoop::current()->PostTask(FROM_HERE, base::Bind( 324 MessageLoop::current()->PostTask(
323 &MockNetworkTransaction::RunCallback, ptr_factory_.GetWeakPtr(), 325 FROM_HERE, base::Bind(&MockNetworkTransaction::RunCallback,
324 callback, result)); 326 weak_factory_.GetWeakPtr(), callback, result));
325 } 327 }
326 328
327 void MockNetworkTransaction::RunCallback(net::OldCompletionCallback* callback, 329 void MockNetworkTransaction::RunCallback(
328 int result) { 330 const net::CompletionCallback& callback, int result) {
329 callback->Run(result); 331 callback.Run(result);
330 } 332 }
331 333
332 MockNetworkLayer::MockNetworkLayer() 334 MockNetworkLayer::MockNetworkLayer()
333 : transaction_count_(0), done_reading_called_(false) {} 335 : transaction_count_(0), done_reading_called_(false) {}
334 336
335 MockNetworkLayer::~MockNetworkLayer() {} 337 MockNetworkLayer::~MockNetworkLayer() {}
336 338
337 void MockNetworkLayer::TransactionDoneReading() { 339 void MockNetworkLayer::TransactionDoneReading() {
338 done_reading_called_ = true; 340 done_reading_called_ = true;
339 } 341 }
(...skipping 12 matching lines...) Expand all
352 net::HttpNetworkSession* MockNetworkLayer::GetSession() { 354 net::HttpNetworkSession* MockNetworkLayer::GetSession() {
353 return NULL; 355 return NULL;
354 } 356 }
355 357
356 //----------------------------------------------------------------------------- 358 //-----------------------------------------------------------------------------
357 // helpers 359 // helpers
358 360
359 int ReadTransaction(net::HttpTransaction* trans, std::string* result) { 361 int ReadTransaction(net::HttpTransaction* trans, std::string* result) {
360 int rv; 362 int rv;
361 363
362 TestOldCompletionCallback callback; 364 net::TestCompletionCallback callback;
363 365
364 std::string content; 366 std::string content;
365 do { 367 do {
366 scoped_refptr<net::IOBuffer> buf(new net::IOBuffer(256)); 368 scoped_refptr<net::IOBuffer> buf(new net::IOBuffer(256));
367 rv = trans->Read(buf, 256, &callback); 369 rv = trans->Read(buf, 256, callback.callback());
368 if (rv == net::ERR_IO_PENDING) 370 if (rv == net::ERR_IO_PENDING)
369 rv = callback.WaitForResult(); 371 rv = callback.WaitForResult();
370 if (rv > 0) { 372
373 if (rv > 0)
371 content.append(buf->data(), rv); 374 content.append(buf->data(), rv);
372 } else if (rv < 0) { 375 else if (rv < 0)
373 return rv; 376 return rv;
374 }
375 } while (rv > 0); 377 } while (rv > 0);
376 378
377 result->swap(content); 379 result->swap(content);
378 return net::OK; 380 return net::OK;
379 } 381 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698