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 #include "net/base/address_list.h" | 5 #include "net/base/address_list.h" |
6 #include "net/base/client_socket_factory.h" | 6 #include "net/base/client_socket_factory.h" |
7 #include "net/base/host_resolver.h" | 7 #include "net/base/host_resolver.h" |
8 #include "net/base/net_errors.h" | 8 #include "net/base/net_errors.h" |
9 #include "net/base/ssl_client_socket.h" | 9 #include "net/base/ssl_client_socket.h" |
10 #include "net/base/ssl_config_service.h" | 10 #include "net/base/ssl_config_service.h" |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 rv = sock->Connect(&callback); | 213 rv = sock->Connect(&callback); |
214 if (rv != net::OK) { | 214 if (rv != net::OK) { |
215 ASSERT_EQ(net::ERR_IO_PENDING, rv); | 215 ASSERT_EQ(net::ERR_IO_PENDING, rv); |
216 | 216 |
217 rv = callback.WaitForResult(); | 217 rv = callback.WaitForResult(); |
218 EXPECT_EQ(net::OK, rv); | 218 EXPECT_EQ(net::OK, rv); |
219 } | 219 } |
220 EXPECT_TRUE(sock->IsConnected()); | 220 EXPECT_TRUE(sock->IsConnected()); |
221 | 221 |
222 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; | 222 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; |
223 rv = sock->Write(request_text, arraysize(request_text) - 1, &callback); | 223 scoped_refptr<net::IOBuffer> request_buffer = |
| 224 new net::IOBuffer(arraysize(request_text) - 1); |
| 225 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1); |
| 226 |
| 227 rv = sock->Write(request_buffer, arraysize(request_text) - 1, &callback); |
224 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); | 228 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); |
225 | 229 |
226 if (rv == net::ERR_IO_PENDING) { | 230 if (rv == net::ERR_IO_PENDING) { |
227 rv = callback.WaitForResult(); | 231 rv = callback.WaitForResult(); |
228 EXPECT_EQ(static_cast<int>(arraysize(request_text) - 1), rv); | 232 EXPECT_EQ(static_cast<int>(arraysize(request_text) - 1), rv); |
229 } | 233 } |
230 | 234 |
231 char buf[4096]; | 235 scoped_refptr<net::IOBuffer> buf = new net::IOBuffer(4096); |
232 for (;;) { | 236 for (;;) { |
233 rv = sock->Read(buf, sizeof(buf), &callback); | 237 rv = sock->Read(buf, 4096, &callback); |
234 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); | 238 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); |
235 | 239 |
236 if (rv == net::ERR_IO_PENDING) | 240 if (rv == net::ERR_IO_PENDING) |
237 rv = callback.WaitForResult(); | 241 rv = callback.WaitForResult(); |
238 | 242 |
239 EXPECT_GE(rv, 0); | 243 EXPECT_GE(rv, 0); |
240 if (rv <= 0) | 244 if (rv <= 0) |
241 break; | 245 break; |
242 } | 246 } |
243 } | 247 } |
(...skipping 21 matching lines...) Expand all Loading... |
265 | 269 |
266 rv = sock->Connect(&callback); | 270 rv = sock->Connect(&callback); |
267 if (rv != net::OK) { | 271 if (rv != net::OK) { |
268 ASSERT_EQ(net::ERR_IO_PENDING, rv); | 272 ASSERT_EQ(net::ERR_IO_PENDING, rv); |
269 | 273 |
270 rv = callback.WaitForResult(); | 274 rv = callback.WaitForResult(); |
271 EXPECT_EQ(net::OK, rv); | 275 EXPECT_EQ(net::OK, rv); |
272 } | 276 } |
273 | 277 |
274 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; | 278 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; |
275 rv = sock->Write(request_text, arraysize(request_text) - 1, &callback); | 279 scoped_refptr<net::IOBuffer> request_buffer = |
| 280 new net::IOBuffer(arraysize(request_text) - 1); |
| 281 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1); |
| 282 |
| 283 rv = sock->Write(request_buffer, arraysize(request_text) - 1, &callback); |
276 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); | 284 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); |
277 | 285 |
278 if (rv == net::ERR_IO_PENDING) { | 286 if (rv == net::ERR_IO_PENDING) { |
279 rv = callback.WaitForResult(); | 287 rv = callback.WaitForResult(); |
280 EXPECT_EQ(static_cast<int>(arraysize(request_text) - 1), rv); | 288 EXPECT_EQ(static_cast<int>(arraysize(request_text) - 1), rv); |
281 } | 289 } |
282 | 290 |
283 char buf[1]; | 291 scoped_refptr<net::IOBuffer> buf = new net::IOBuffer(1); |
284 for (;;) { | 292 for (;;) { |
285 rv = sock->Read(buf, sizeof(buf), &callback); | 293 rv = sock->Read(buf, 1, &callback); |
286 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); | 294 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); |
287 | 295 |
288 if (rv == net::ERR_IO_PENDING) | 296 if (rv == net::ERR_IO_PENDING) |
289 rv = callback.WaitForResult(); | 297 rv = callback.WaitForResult(); |
290 | 298 |
291 EXPECT_GE(rv, 0); | 299 EXPECT_GE(rv, 0); |
292 if (rv <= 0) | 300 if (rv <= 0) |
293 break; | 301 break; |
294 } | 302 } |
295 } | 303 } |
(...skipping 21 matching lines...) Expand all Loading... |
317 | 325 |
318 rv = sock->Connect(&callback); | 326 rv = sock->Connect(&callback); |
319 if (rv != net::OK) { | 327 if (rv != net::OK) { |
320 ASSERT_EQ(net::ERR_IO_PENDING, rv); | 328 ASSERT_EQ(net::ERR_IO_PENDING, rv); |
321 | 329 |
322 rv = callback.WaitForResult(); | 330 rv = callback.WaitForResult(); |
323 EXPECT_EQ(net::OK, rv); | 331 EXPECT_EQ(net::OK, rv); |
324 } | 332 } |
325 | 333 |
326 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; | 334 const char request_text[] = "GET / HTTP/1.0\r\n\r\n"; |
327 rv = sock->Write(request_text, arraysize(request_text) - 1, &callback); | 335 scoped_refptr<net::IOBuffer> request_buffer = |
| 336 new net::IOBuffer(arraysize(request_text) - 1); |
| 337 memcpy(request_buffer->data(), request_text, arraysize(request_text) - 1); |
| 338 |
| 339 rv = sock->Write(request_buffer, arraysize(request_text) - 1, &callback); |
328 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); | 340 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); |
329 | 341 |
330 if (rv == net::ERR_IO_PENDING) { | 342 if (rv == net::ERR_IO_PENDING) { |
331 rv = callback.WaitForResult(); | 343 rv = callback.WaitForResult(); |
332 EXPECT_EQ(static_cast<int>(arraysize(request_text) - 1), rv); | 344 EXPECT_EQ(static_cast<int>(arraysize(request_text) - 1), rv); |
333 } | 345 } |
334 | 346 |
335 // Do a partial read and then exit. This test should not crash! | 347 // Do a partial read and then exit. This test should not crash! |
336 char buf[512]; | 348 scoped_refptr<net::IOBuffer> buf = new net::IOBuffer(512); |
337 rv = sock->Read(buf, sizeof(buf), &callback); | 349 rv = sock->Read(buf, 512, &callback); |
338 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); | 350 EXPECT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING); |
339 | 351 |
340 if (rv == net::ERR_IO_PENDING) | 352 if (rv == net::ERR_IO_PENDING) |
341 rv = callback.WaitForResult(); | 353 rv = callback.WaitForResult(); |
342 | 354 |
343 EXPECT_NE(rv, 0); | 355 EXPECT_NE(rv, 0); |
344 } | 356 } |
OLD | NEW |