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/spdy/spdy_websocket_stream.h" | 5 #include "net/spdy/spdy_websocket_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 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
342 writes, arraysize(writes), false)); | 342 writes, arraysize(writes), false)); |
343 | 343 |
344 SpdyWebSocketStreamEventRecorder delegate(completion_callback_.callback()); | 344 SpdyWebSocketStreamEventRecorder delegate(completion_callback_.callback()); |
345 delegate.SetOnReceivedHeader( | 345 delegate.SetOnReceivedHeader( |
346 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSendHelloFrame, | 346 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSendHelloFrame, |
347 base::Unretained(this))); | 347 base::Unretained(this))); |
348 delegate.SetOnReceivedData( | 348 delegate.SetOnReceivedData( |
349 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSendClosingFrame, | 349 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSendClosingFrame, |
350 base::Unretained(this))); | 350 base::Unretained(this))); |
351 | 351 |
352 websocket_stream_.reset(new SpdyWebSocketStream(session_, &delegate)); | 352 websocket_stream_.reset(new SpdyWebSocketStream(session_.get(), &delegate)); |
353 | 353 |
354 BoundNetLog net_log; | 354 BoundNetLog net_log; |
355 GURL url("ws://example.com/echo"); | 355 GURL url("ws://example.com/echo"); |
356 ASSERT_EQ(OK, websocket_stream_->InitializeStream(url, HIGHEST, net_log)); | 356 ASSERT_EQ(OK, websocket_stream_->InitializeStream(url, HIGHEST, net_log)); |
357 | 357 |
358 ASSERT_TRUE(websocket_stream_->stream_); | 358 ASSERT_TRUE(websocket_stream_->stream_); |
359 | 359 |
360 SendRequest(); | 360 SendRequest(); |
361 | 361 |
362 completion_callback_.WaitForResult(); | 362 completion_callback_.WaitForResult(); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 writes, arraysize(writes), false)); | 415 writes, arraysize(writes), false)); |
416 | 416 |
417 SpdyWebSocketStreamEventRecorder delegate(completion_callback_.callback()); | 417 SpdyWebSocketStreamEventRecorder delegate(completion_callback_.callback()); |
418 delegate.SetOnReceivedHeader( | 418 delegate.SetOnReceivedHeader( |
419 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSendHelloFrame, | 419 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSendHelloFrame, |
420 base::Unretained(this))); | 420 base::Unretained(this))); |
421 delegate.SetOnReceivedData( | 421 delegate.SetOnReceivedData( |
422 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSync, | 422 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSync, |
423 base::Unretained(this))); | 423 base::Unretained(this))); |
424 | 424 |
425 websocket_stream_.reset(new SpdyWebSocketStream(session_, &delegate)); | 425 websocket_stream_.reset(new SpdyWebSocketStream(session_.get(), &delegate)); |
426 | 426 |
427 BoundNetLog net_log; | 427 BoundNetLog net_log; |
428 GURL url("ws://example.com/echo"); | 428 GURL url("ws://example.com/echo"); |
429 ASSERT_EQ(OK, websocket_stream_->InitializeStream(url, HIGHEST, net_log)); | 429 ASSERT_EQ(OK, websocket_stream_->InitializeStream(url, HIGHEST, net_log)); |
430 | 430 |
431 SendRequest(); | 431 SendRequest(); |
432 | 432 |
433 sync_callback_.WaitForResult(); | 433 sync_callback_.WaitForResult(); |
434 | 434 |
435 // WebSocketStream destruction remove its SPDY stream from the session. | 435 // WebSocketStream destruction remove its SPDY stream from the session. |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
478 writes, arraysize(writes), false)); | 478 writes, arraysize(writes), false)); |
479 | 479 |
480 SpdyWebSocketStreamEventRecorder delegate(completion_callback_.callback()); | 480 SpdyWebSocketStreamEventRecorder delegate(completion_callback_.callback()); |
481 delegate.SetOnReceivedHeader( | 481 delegate.SetOnReceivedHeader( |
482 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSendHelloFrame, | 482 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSendHelloFrame, |
483 base::Unretained(this))); | 483 base::Unretained(this))); |
484 delegate.SetOnReceivedData( | 484 delegate.SetOnReceivedData( |
485 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoClose, | 485 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoClose, |
486 base::Unretained(this))); | 486 base::Unretained(this))); |
487 | 487 |
488 websocket_stream_.reset(new SpdyWebSocketStream(session_, &delegate)); | 488 websocket_stream_.reset(new SpdyWebSocketStream(session_.get(), &delegate)); |
489 | 489 |
490 BoundNetLog net_log; | 490 BoundNetLog net_log; |
491 GURL url("ws://example.com/echo"); | 491 GURL url("ws://example.com/echo"); |
492 ASSERT_EQ(OK, websocket_stream_->InitializeStream(url, HIGHEST, net_log)); | 492 ASSERT_EQ(OK, websocket_stream_->InitializeStream(url, HIGHEST, net_log)); |
493 | 493 |
494 SendRequest(); | 494 SendRequest(); |
495 | 495 |
496 completion_callback_.WaitForResult(); | 496 completion_callback_.WaitForResult(); |
497 | 497 |
498 // SPDY stream has already been removed from the session by Close(). | 498 // SPDY stream has already been removed from the session by Close(). |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
544 }; | 544 }; |
545 | 545 |
546 EXPECT_EQ(OK, InitSession(reads, arraysize(reads), | 546 EXPECT_EQ(OK, InitSession(reads, arraysize(reads), |
547 writes, arraysize(writes), true)); | 547 writes, arraysize(writes), true)); |
548 | 548 |
549 // Create a dummy WebSocketStream which cause ERR_IO_PENDING to another | 549 // Create a dummy WebSocketStream which cause ERR_IO_PENDING to another |
550 // WebSocketStream under test. | 550 // WebSocketStream under test. |
551 SpdyWebSocketStreamEventRecorder block_delegate((CompletionCallback())); | 551 SpdyWebSocketStreamEventRecorder block_delegate((CompletionCallback())); |
552 | 552 |
553 scoped_ptr<SpdyWebSocketStream> block_stream( | 553 scoped_ptr<SpdyWebSocketStream> block_stream( |
554 new SpdyWebSocketStream(session_, &block_delegate)); | 554 new SpdyWebSocketStream(session_.get(), &block_delegate)); |
555 BoundNetLog block_net_log; | 555 BoundNetLog block_net_log; |
556 GURL block_url("ws://example.com/block"); | 556 GURL block_url("ws://example.com/block"); |
557 ASSERT_EQ(OK, | 557 ASSERT_EQ(OK, |
558 block_stream->InitializeStream(block_url, HIGHEST, block_net_log)); | 558 block_stream->InitializeStream(block_url, HIGHEST, block_net_log)); |
559 | 559 |
560 // Create a WebSocketStream under test. | 560 // Create a WebSocketStream under test. |
561 SpdyWebSocketStreamEventRecorder delegate(completion_callback_.callback()); | 561 SpdyWebSocketStreamEventRecorder delegate(completion_callback_.callback()); |
562 delegate.SetOnCreated( | 562 delegate.SetOnCreated( |
563 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSync, | 563 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSync, |
564 base::Unretained(this))); | 564 base::Unretained(this))); |
565 delegate.SetOnReceivedHeader( | 565 delegate.SetOnReceivedHeader( |
566 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSendHelloFrame, | 566 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSendHelloFrame, |
567 base::Unretained(this))); | 567 base::Unretained(this))); |
568 delegate.SetOnReceivedData( | 568 delegate.SetOnReceivedData( |
569 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSendClosingFrame, | 569 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSendClosingFrame, |
570 base::Unretained(this))); | 570 base::Unretained(this))); |
571 | 571 |
572 websocket_stream_.reset(new SpdyWebSocketStream(session_, &delegate)); | 572 websocket_stream_.reset(new SpdyWebSocketStream(session_.get(), &delegate)); |
573 BoundNetLog net_log; | 573 BoundNetLog net_log; |
574 GURL url("ws://example.com/echo"); | 574 GURL url("ws://example.com/echo"); |
575 ASSERT_EQ(ERR_IO_PENDING, websocket_stream_->InitializeStream( | 575 ASSERT_EQ(ERR_IO_PENDING, websocket_stream_->InitializeStream( |
576 url, HIGHEST, net_log)); | 576 url, HIGHEST, net_log)); |
577 | 577 |
578 // Delete the first stream to allow create the second stream. | 578 // Delete the first stream to allow create the second stream. |
579 block_stream.reset(); | 579 block_stream.reset(); |
580 ASSERT_EQ(OK, sync_callback_.WaitForResult()); | 580 ASSERT_EQ(OK, sync_callback_.WaitForResult()); |
581 | 581 |
582 SendRequest(); | 582 SendRequest(); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
618 EXPECT_EQ(OK, events[7].result); | 618 EXPECT_EQ(OK, events[7].result); |
619 | 619 |
620 // EOF close SPDY session. | 620 // EOF close SPDY session. |
621 EXPECT_TRUE(!http_session_->spdy_session_pool()->HasSession( | 621 EXPECT_TRUE(!http_session_->spdy_session_pool()->HasSession( |
622 spdy_session_key_)); | 622 spdy_session_key_)); |
623 EXPECT_TRUE(data()->at_read_eof()); | 623 EXPECT_TRUE(data()->at_read_eof()); |
624 EXPECT_TRUE(data()->at_write_eof()); | 624 EXPECT_TRUE(data()->at_write_eof()); |
625 } | 625 } |
626 | 626 |
627 } // namespace net | 627 } // namespace net |
OLD | NEW |