| 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 |