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 "net/socket_stream/socket_stream.h" | 5 #include "net/socket_stream/socket_stream.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
281 MockHostResolver host_resolver; | 281 MockHostResolver host_resolver; |
282 | 282 |
283 scoped_refptr<SocketStream> socket_stream( | 283 scoped_refptr<SocketStream> socket_stream( |
284 new SocketStream(GURL("ws://example.com/demo"), delegate.get())); | 284 new SocketStream(GURL("ws://example.com/demo"), delegate.get())); |
285 | 285 |
286 socket_stream->set_context(new TestURLRequestContext()); | 286 socket_stream->set_context(new TestURLRequestContext()); |
287 socket_stream->SetHostResolver(&host_resolver); | 287 socket_stream->SetHostResolver(&host_resolver); |
288 | 288 |
289 MockWrite data_writes[] = { | 289 MockWrite data_writes[] = { |
290 MockWrite(SocketStreamTest::kWebSocketHandshakeRequest), | 290 MockWrite(SocketStreamTest::kWebSocketHandshakeRequest), |
291 MockWrite(true, "\0message1\xff", 10), | 291 MockWrite(ASYNC, "\0message1\xff", 10), |
292 MockWrite(true, "\0message2\xff", 10) | 292 MockWrite(ASYNC, "\0message2\xff", 10) |
293 }; | 293 }; |
294 MockRead data_reads[] = { | 294 MockRead data_reads[] = { |
295 MockRead(SocketStreamTest::kWebSocketHandshakeResponse), | 295 MockRead(SocketStreamTest::kWebSocketHandshakeResponse), |
296 // Server doesn't close the connection after handshake. | 296 // Server doesn't close the connection after handshake. |
297 MockRead(true, ERR_IO_PENDING) | 297 MockRead(ASYNC, ERR_IO_PENDING) |
298 }; | 298 }; |
299 AddWebSocketMessage("message1"); | 299 AddWebSocketMessage("message1"); |
300 AddWebSocketMessage("message2"); | 300 AddWebSocketMessage("message2"); |
301 | 301 |
302 scoped_ptr<DelayedSocketData> data_provider( | 302 scoped_ptr<DelayedSocketData> data_provider( |
303 new DelayedSocketData(1, | 303 new DelayedSocketData(1, |
304 data_reads, arraysize(data_reads), | 304 data_reads, arraysize(data_reads), |
305 data_writes, arraysize(data_writes))); | 305 data_writes, arraysize(data_writes))); |
306 | 306 |
307 MockClientSocketFactory* mock_socket_factory = | 307 MockClientSocketFactory* mock_socket_factory = |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
351 "Proxy-Connection: keep-alive\r\n" | 351 "Proxy-Connection: keep-alive\r\n" |
352 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), | 352 "Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"), |
353 }; | 353 }; |
354 MockRead data_reads2[] = { | 354 MockRead data_reads2[] = { |
355 MockRead("HTTP/1.1 200 Connection Established\r\n"), | 355 MockRead("HTTP/1.1 200 Connection Established\r\n"), |
356 MockRead("Proxy-agent: Apache/2.2.8\r\n"), | 356 MockRead("Proxy-agent: Apache/2.2.8\r\n"), |
357 MockRead("\r\n"), | 357 MockRead("\r\n"), |
358 // SocketStream::DoClose is run asynchronously. Socket can be read after | 358 // SocketStream::DoClose is run asynchronously. Socket can be read after |
359 // "\r\n". We have to give ERR_IO_PENDING to SocketStream then to indicate | 359 // "\r\n". We have to give ERR_IO_PENDING to SocketStream then to indicate |
360 // server doesn't close the connection. | 360 // server doesn't close the connection. |
361 MockRead(true, ERR_IO_PENDING) | 361 MockRead(ASYNC, ERR_IO_PENDING) |
362 }; | 362 }; |
363 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), | 363 StaticSocketDataProvider data2(data_reads2, arraysize(data_reads2), |
364 data_writes2, arraysize(data_writes2)); | 364 data_writes2, arraysize(data_writes2)); |
365 mock_socket_factory.AddSocketDataProvider(&data2); | 365 mock_socket_factory.AddSocketDataProvider(&data2); |
366 | 366 |
367 TestCompletionCallback test_callback; | 367 TestCompletionCallback test_callback; |
368 | 368 |
369 scoped_ptr<SocketStreamEventRecorder> delegate( | 369 scoped_ptr<SocketStreamEventRecorder> delegate( |
370 new SocketStreamEventRecorder(test_callback.callback())); | 370 new SocketStreamEventRecorder(test_callback.callback())); |
371 delegate->SetOnConnected(base::Bind(&SocketStreamEventRecorder::DoClose, | 371 delegate->SetOnConnected(base::Bind(&SocketStreamEventRecorder::DoClose, |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
418 MockHostResolver host_resolver; | 418 MockHostResolver host_resolver; |
419 | 419 |
420 scoped_refptr<SocketStream> socket_stream( | 420 scoped_refptr<SocketStream> socket_stream( |
421 new SocketStream(GURL("ws://example.com/demo"), delegate.get())); | 421 new SocketStream(GURL("ws://example.com/demo"), delegate.get())); |
422 | 422 |
423 socket_stream->set_context(new TestURLRequestContext()); | 423 socket_stream->set_context(new TestURLRequestContext()); |
424 socket_stream->SetHostResolver(&host_resolver); | 424 socket_stream->SetHostResolver(&host_resolver); |
425 | 425 |
426 MockWrite data_writes[] = { | 426 MockWrite data_writes[] = { |
427 MockWrite(SocketStreamTest::kWebSocketHandshakeRequest), | 427 MockWrite(SocketStreamTest::kWebSocketHandshakeRequest), |
428 MockWrite(true, "\0message1\xff", 10), | 428 MockWrite(ASYNC, "\0message1\xff", 10), |
429 MockWrite(true, "\0message2\xff", 10) | 429 MockWrite(ASYNC, "\0message2\xff", 10) |
430 }; | 430 }; |
431 MockRead data_reads[] = { | 431 MockRead data_reads[] = { |
432 MockRead(SocketStreamTest::kWebSocketHandshakeResponse), | 432 MockRead(SocketStreamTest::kWebSocketHandshakeResponse), |
433 // Server doesn't close the connection after handshake. | 433 // Server doesn't close the connection after handshake. |
434 MockRead(true, ERR_IO_PENDING) | 434 MockRead(ASYNC, ERR_IO_PENDING) |
435 }; | 435 }; |
436 AddWebSocketMessage("message1"); | 436 AddWebSocketMessage("message1"); |
437 AddWebSocketMessage("message2"); | 437 AddWebSocketMessage("message2"); |
438 | 438 |
439 scoped_ptr<DelayedSocketData> data_provider( | 439 scoped_ptr<DelayedSocketData> data_provider( |
440 new DelayedSocketData(1, | 440 new DelayedSocketData(1, |
441 data_reads, arraysize(data_reads), | 441 data_reads, arraysize(data_reads), |
442 data_writes, arraysize(data_writes))); | 442 data_writes, arraysize(data_writes))); |
443 | 443 |
444 MockClientSocketFactory* mock_socket_factory = | 444 MockClientSocketFactory* mock_socket_factory = |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
540 "Host: example.com\r\n" | 540 "Host: example.com\r\n" |
541 "Proxy-Connection: keep-alive\r\n\r\n") | 541 "Proxy-Connection: keep-alive\r\n\r\n") |
542 }; | 542 }; |
543 MockRead data_reads[] = { | 543 MockRead data_reads[] = { |
544 MockRead("HTTP/1.1 200 Connection Established\r\n"), | 544 MockRead("HTTP/1.1 200 Connection Established\r\n"), |
545 MockRead("Proxy-agent: Apache/2.2.8\r\n"), | 545 MockRead("Proxy-agent: Apache/2.2.8\r\n"), |
546 MockRead("\r\n"), | 546 MockRead("\r\n"), |
547 // SocketStream::DoClose is run asynchronously. Socket can be read after | 547 // SocketStream::DoClose is run asynchronously. Socket can be read after |
548 // "\r\n". We have to give ERR_IO_PENDING to SocketStream then to indicate | 548 // "\r\n". We have to give ERR_IO_PENDING to SocketStream then to indicate |
549 // server doesn't close the connection. | 549 // server doesn't close the connection. |
550 MockRead(true, ERR_IO_PENDING) | 550 MockRead(ASYNC, ERR_IO_PENDING) |
551 }; | 551 }; |
552 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 552 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
553 data_writes, arraysize(data_writes)); | 553 data_writes, arraysize(data_writes)); |
554 mock_socket_factory.AddSocketDataProvider(&data); | 554 mock_socket_factory.AddSocketDataProvider(&data); |
555 SSLSocketDataProvider ssl(false, ERR_SSL_PROTOCOL_ERROR); | 555 SSLSocketDataProvider ssl(SYNCHRONOUS, ERR_SSL_PROTOCOL_ERROR); |
556 mock_socket_factory.AddSSLSocketDataProvider(&ssl); | 556 mock_socket_factory.AddSSLSocketDataProvider(&ssl); |
557 | 557 |
558 TestCompletionCallback test_callback; | 558 TestCompletionCallback test_callback; |
559 | 559 |
560 scoped_ptr<SocketStreamEventRecorder> delegate( | 560 scoped_ptr<SocketStreamEventRecorder> delegate( |
561 new SocketStreamEventRecorder(test_callback.callback())); | 561 new SocketStreamEventRecorder(test_callback.callback())); |
562 delegate->SetOnConnected(base::Bind(&SocketStreamEventRecorder::DoClose, | 562 delegate->SetOnConnected(base::Bind(&SocketStreamEventRecorder::DoClose, |
563 base::Unretained(delegate.get()))); | 563 base::Unretained(delegate.get()))); |
564 | 564 |
565 scoped_refptr<SocketStream> socket_stream( | 565 scoped_refptr<SocketStream> socket_stream( |
(...skipping 26 matching lines...) Expand all Loading... |
592 "Host: example.com\r\n" | 592 "Host: example.com\r\n" |
593 "Proxy-Connection: keep-alive\r\n\r\n") | 593 "Proxy-Connection: keep-alive\r\n\r\n") |
594 }; | 594 }; |
595 MockRead data_reads[] = { | 595 MockRead data_reads[] = { |
596 MockRead("HTTP/1.1 200 Connection Established\r\n"), | 596 MockRead("HTTP/1.1 200 Connection Established\r\n"), |
597 MockRead("Proxy-agent: Apache/2.2.8\r\n"), | 597 MockRead("Proxy-agent: Apache/2.2.8\r\n"), |
598 MockRead("\r\n"), | 598 MockRead("\r\n"), |
599 // SocketStream::DoClose is run asynchronously. Socket can be read after | 599 // SocketStream::DoClose is run asynchronously. Socket can be read after |
600 // "\r\n". We have to give ERR_IO_PENDING to SocketStream then to indicate | 600 // "\r\n". We have to give ERR_IO_PENDING to SocketStream then to indicate |
601 // server doesn't close the connection. | 601 // server doesn't close the connection. |
602 MockRead(true, ERR_IO_PENDING) | 602 MockRead(ASYNC, ERR_IO_PENDING) |
603 }; | 603 }; |
604 StaticSocketDataProvider data(data_reads, arraysize(data_reads), | 604 StaticSocketDataProvider data(data_reads, arraysize(data_reads), |
605 data_writes, arraysize(data_writes)); | 605 data_writes, arraysize(data_writes)); |
606 mock_socket_factory.AddSocketDataProvider(&data); | 606 mock_socket_factory.AddSocketDataProvider(&data); |
607 SSLSocketDataProvider ssl(false, OK); | 607 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); |
608 mock_socket_factory.AddSSLSocketDataProvider(&ssl); | 608 mock_socket_factory.AddSSLSocketDataProvider(&ssl); |
609 | 609 |
610 TestCompletionCallback test_callback; | 610 TestCompletionCallback test_callback; |
611 | 611 |
612 scoped_ptr<SocketStreamEventRecorder> delegate( | 612 scoped_ptr<SocketStreamEventRecorder> delegate( |
613 new SocketStreamEventRecorder(test_callback.callback())); | 613 new SocketStreamEventRecorder(test_callback.callback())); |
614 delegate->SetOnConnected(base::Bind(&SocketStreamEventRecorder::DoClose, | 614 delegate->SetOnConnected(base::Bind(&SocketStreamEventRecorder::DoClose, |
615 base::Unretained(delegate.get()))); | 615 base::Unretained(delegate.get()))); |
616 | 616 |
617 scoped_refptr<SocketStream> socket_stream( | 617 scoped_refptr<SocketStream> socket_stream( |
(...skipping 13 matching lines...) Expand all Loading... |
631 | 631 |
632 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION, | 632 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION, |
633 events[0].event_type); | 633 events[0].event_type); |
634 EXPECT_EQ(SocketStreamEvent::EVENT_CONNECTED, events[1].event_type); | 634 EXPECT_EQ(SocketStreamEvent::EVENT_CONNECTED, events[1].event_type); |
635 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[2].event_type); | 635 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[2].event_type); |
636 EXPECT_EQ(net::ERR_ABORTED, events[2].error_code); | 636 EXPECT_EQ(net::ERR_ABORTED, events[2].error_code); |
637 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[3].event_type); | 637 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[3].event_type); |
638 } | 638 } |
639 | 639 |
640 } // namespace net | 640 } // namespace net |
OLD | NEW |