OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 #ifndef NET_HTTP_HTTP_TRANSACTION_UNITTEST_H_ | 5 #ifndef NET_HTTP_HTTP_TRANSACTION_UNITTEST_H_ |
6 #define NET_HTTP_HTTP_TRANSACTION_UNITTEST_H_ | 6 #define NET_HTTP_HTTP_TRANSACTION_UNITTEST_H_ |
7 | 7 |
8 #include "net/http/http_transaction.h" | 8 #include "net/http/http_transaction.h" |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 DidFinish(result); | 142 DidFinish(result); |
143 } else { | 143 } else { |
144 Read(); | 144 Read(); |
145 } | 145 } |
146 } | 146 } |
147 | 147 |
148 void DidRead(int result) { | 148 void DidRead(int result) { |
149 if (result <= 0) { | 149 if (result <= 0) { |
150 DidFinish(result); | 150 DidFinish(result); |
151 } else { | 151 } else { |
152 content_.append(read_buf_, result); | 152 content_.append(read_buf_->data(), result); |
153 Read(); | 153 Read(); |
154 } | 154 } |
155 } | 155 } |
156 | 156 |
157 void DidFinish(int result) { | 157 void DidFinish(int result) { |
158 state_ = DONE; | 158 state_ = DONE; |
159 error_ = result; | 159 error_ = result; |
160 if (--quit_counter_ == 0) | 160 if (--quit_counter_ == 0) |
161 MessageLoop::current()->Quit(); | 161 MessageLoop::current()->Quit(); |
162 } | 162 } |
163 | 163 |
164 void Read() { | 164 void Read() { |
165 state_ = READING; | 165 state_ = READING; |
166 int result = trans_->Read(read_buf_, sizeof(read_buf_), this); | 166 read_buf_ = new net::IOBuffer(1024); |
| 167 int result = trans_->Read(read_buf_, 1024, this); |
167 if (result != net::ERR_IO_PENDING) | 168 if (result != net::ERR_IO_PENDING) |
168 DidRead(result); | 169 DidRead(result); |
169 } | 170 } |
170 | 171 |
171 enum State { | 172 enum State { |
172 IDLE, | 173 IDLE, |
173 STARTING, | 174 STARTING, |
174 READING, | 175 READING, |
175 DONE | 176 DONE |
176 } state_; | 177 } state_; |
177 | 178 |
178 scoped_ptr<net::HttpTransaction> trans_; | 179 scoped_ptr<net::HttpTransaction> trans_; |
179 std::string content_; | 180 std::string content_; |
180 char read_buf_[1024]; | 181 scoped_refptr<net::IOBuffer> read_buf_; |
181 int error_; | 182 int error_; |
182 | 183 |
183 static int quit_counter_; | 184 static int quit_counter_; |
184 }; | 185 }; |
185 | 186 |
186 //----------------------------------------------------------------------------- | 187 //----------------------------------------------------------------------------- |
187 // mock network layer | 188 // mock network layer |
188 | 189 |
189 // This transaction class inspects the available set of mock transactions to | 190 // This transaction class inspects the available set of mock transactions to |
190 // find data for the request URL. It supports IO operations that complete | 191 // find data for the request URL. It supports IO operations that complete |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 virtual int RestartIgnoringLastError(net::CompletionCallback* callback) { | 231 virtual int RestartIgnoringLastError(net::CompletionCallback* callback) { |
231 return net::ERR_FAILED; | 232 return net::ERR_FAILED; |
232 } | 233 } |
233 | 234 |
234 virtual int RestartWithAuth(const std::wstring& username, | 235 virtual int RestartWithAuth(const std::wstring& username, |
235 const std::wstring& password, | 236 const std::wstring& password, |
236 net::CompletionCallback* callback) { | 237 net::CompletionCallback* callback) { |
237 return net::ERR_FAILED; | 238 return net::ERR_FAILED; |
238 } | 239 } |
239 | 240 |
240 virtual int Read(char* buf, int buf_len, net::CompletionCallback* callback) { | 241 virtual int Read(net::IOBuffer* buf, int buf_len, |
| 242 net::CompletionCallback* callback) { |
241 int data_len = static_cast<int>(data_.size()); | 243 int data_len = static_cast<int>(data_.size()); |
242 int num = std::min(buf_len, data_len - data_cursor_); | 244 int num = std::min(buf_len, data_len - data_cursor_); |
243 if (num) { | 245 if (num) { |
244 memcpy(buf, data_.data() + data_cursor_, num); | 246 memcpy(buf->data(), data_.data() + data_cursor_, num); |
245 data_cursor_ += num; | 247 data_cursor_ += num; |
246 } | 248 } |
247 if (test_mode_ & TEST_MODE_SYNC_NET_READ) | 249 if (test_mode_ & TEST_MODE_SYNC_NET_READ) |
248 return num; | 250 return num; |
249 | 251 |
250 CallbackLater(callback, num); | 252 CallbackLater(callback, num); |
251 return net::ERR_IO_PENDING; | 253 return net::ERR_IO_PENDING; |
252 } | 254 } |
253 | 255 |
254 virtual const net::HttpResponseInfo* GetResponseInfo() const { | 256 virtual const net::HttpResponseInfo* GetResponseInfo() const { |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
303 }; | 305 }; |
304 | 306 |
305 | 307 |
306 //----------------------------------------------------------------------------- | 308 //----------------------------------------------------------------------------- |
307 // helpers | 309 // helpers |
308 | 310 |
309 // read the transaction completely | 311 // read the transaction completely |
310 int ReadTransaction(net::HttpTransaction* trans, std::string* result); | 312 int ReadTransaction(net::HttpTransaction* trans, std::string* result); |
311 | 313 |
312 #endif // NET_HTTP_HTTP_TRANSACTION_UNITTEST_H_ | 314 #endif // NET_HTTP_HTTP_TRANSACTION_UNITTEST_H_ |
OLD | NEW |