| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 318 | 318 |
| 319 // TODO(toyoshim): Replace old framing data to new one, then use HEADERS and | 319 // TODO(toyoshim): Replace old framing data to new one, then use HEADERS and |
| 320 // data frames. | 320 // data frames. |
| 321 const char SpdyWebSocketStreamTest::kMessageFrame[] = "\x81\x05hello"; | 321 const char SpdyWebSocketStreamTest::kMessageFrame[] = "\x81\x05hello"; |
| 322 const char SpdyWebSocketStreamTest::kClosingFrame[] = "\x88\0"; | 322 const char SpdyWebSocketStreamTest::kClosingFrame[] = "\x88\0"; |
| 323 const size_t SpdyWebSocketStreamTest::kMessageFrameLength = | 323 const size_t SpdyWebSocketStreamTest::kMessageFrameLength = |
| 324 arraysize(SpdyWebSocketStreamTest::kMessageFrame) - 1; | 324 arraysize(SpdyWebSocketStreamTest::kMessageFrame) - 1; |
| 325 const size_t SpdyWebSocketStreamTest::kClosingFrameLength = | 325 const size_t SpdyWebSocketStreamTest::kClosingFrameLength = |
| 326 arraysize(SpdyWebSocketStreamTest::kClosingFrame) - 1; | 326 arraysize(SpdyWebSocketStreamTest::kClosingFrame) - 1; |
| 327 | 327 |
| 328 // TODO(akalin): Don't early-exit in the tests below for values > | |
| 329 // kProtoSPDY3. | |
| 330 | |
| 331 TEST_P(SpdyWebSocketStreamTest, Basic) { | 328 TEST_P(SpdyWebSocketStreamTest, Basic) { |
| 332 if (GetParam() > kProtoSPDY3) | |
| 333 return; | |
| 334 | |
| 335 Prepare(1); | 329 Prepare(1); |
| 336 MockWrite writes[] = { | 330 MockWrite writes[] = { |
| 337 CreateMockWrite(*request_frame_.get(), 1), | 331 CreateMockWrite(*request_frame_.get(), 1), |
| 338 CreateMockWrite(*message_frame_.get(), 3), | 332 CreateMockWrite(*message_frame_.get(), 3), |
| 339 CreateMockWrite(*closing_frame_.get(), 5) | 333 CreateMockWrite(*closing_frame_.get(), 5) |
| 340 }; | 334 }; |
| 341 | 335 |
| 342 MockRead reads[] = { | 336 MockRead reads[] = { |
| 343 CreateMockRead(*response_frame_.get(), 2), | 337 CreateMockRead(*response_frame_.get(), 2), |
| 344 CreateMockRead(*message_frame_.get(), 4), | 338 CreateMockRead(*message_frame_.get(), 4), |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 401 EXPECT_EQ(OK, events[6].result); | 395 EXPECT_EQ(OK, events[6].result); |
| 402 | 396 |
| 403 // EOF close SPDY session. | 397 // EOF close SPDY session. |
| 404 EXPECT_TRUE(!http_session_->spdy_session_pool()->HasSession( | 398 EXPECT_TRUE(!http_session_->spdy_session_pool()->HasSession( |
| 405 spdy_session_key_)); | 399 spdy_session_key_)); |
| 406 EXPECT_TRUE(data()->at_read_eof()); | 400 EXPECT_TRUE(data()->at_read_eof()); |
| 407 EXPECT_TRUE(data()->at_write_eof()); | 401 EXPECT_TRUE(data()->at_write_eof()); |
| 408 } | 402 } |
| 409 | 403 |
| 410 TEST_P(SpdyWebSocketStreamTest, DestructionBeforeClose) { | 404 TEST_P(SpdyWebSocketStreamTest, DestructionBeforeClose) { |
| 411 if (GetParam() > kProtoSPDY3) | |
| 412 return; | |
| 413 | |
| 414 Prepare(1); | 405 Prepare(1); |
| 415 MockWrite writes[] = { | 406 MockWrite writes[] = { |
| 416 CreateMockWrite(*request_frame_.get(), 1), | 407 CreateMockWrite(*request_frame_.get(), 1), |
| 417 CreateMockWrite(*message_frame_.get(), 3) | 408 CreateMockWrite(*message_frame_.get(), 3) |
| 418 }; | 409 }; |
| 419 | 410 |
| 420 MockRead reads[] = { | 411 MockRead reads[] = { |
| 421 CreateMockRead(*response_frame_.get(), 2), | 412 CreateMockRead(*response_frame_.get(), 2), |
| 422 CreateMockRead(*message_frame_.get(), 4), | 413 CreateMockRead(*message_frame_.get(), 4), |
| 423 MockRead(ASYNC, ERR_IO_PENDING, 5) | 414 MockRead(ASYNC, ERR_IO_PENDING, 5) |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 466 events[3].event_type); | 457 events[3].event_type); |
| 467 EXPECT_EQ(static_cast<int>(kMessageFrameLength), events[3].result); | 458 EXPECT_EQ(static_cast<int>(kMessageFrameLength), events[3].result); |
| 468 | 459 |
| 469 EXPECT_TRUE(http_session_->spdy_session_pool()->HasSession( | 460 EXPECT_TRUE(http_session_->spdy_session_pool()->HasSession( |
| 470 spdy_session_key_)); | 461 spdy_session_key_)); |
| 471 EXPECT_TRUE(data()->at_read_eof()); | 462 EXPECT_TRUE(data()->at_read_eof()); |
| 472 EXPECT_TRUE(data()->at_write_eof()); | 463 EXPECT_TRUE(data()->at_write_eof()); |
| 473 } | 464 } |
| 474 | 465 |
| 475 TEST_P(SpdyWebSocketStreamTest, DestructionAfterExplicitClose) { | 466 TEST_P(SpdyWebSocketStreamTest, DestructionAfterExplicitClose) { |
| 476 if (GetParam() > kProtoSPDY3) | |
| 477 return; | |
| 478 | |
| 479 Prepare(1); | 467 Prepare(1); |
| 480 MockWrite writes[] = { | 468 MockWrite writes[] = { |
| 481 CreateMockWrite(*request_frame_.get(), 1), | 469 CreateMockWrite(*request_frame_.get(), 1), |
| 482 CreateMockWrite(*message_frame_.get(), 3), | 470 CreateMockWrite(*message_frame_.get(), 3), |
| 483 CreateMockWrite(*closing_frame_.get(), 5) | 471 CreateMockWrite(*closing_frame_.get(), 5) |
| 484 }; | 472 }; |
| 485 | 473 |
| 486 MockRead reads[] = { | 474 MockRead reads[] = { |
| 487 CreateMockRead(*response_frame_.get(), 2), | 475 CreateMockRead(*response_frame_.get(), 2), |
| 488 CreateMockRead(*message_frame_.get(), 4), | 476 CreateMockRead(*message_frame_.get(), 4), |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 530 EXPECT_EQ(SpdyWebSocketStreamEvent::EVENT_RECEIVED_DATA, | 518 EXPECT_EQ(SpdyWebSocketStreamEvent::EVENT_RECEIVED_DATA, |
| 531 events[3].event_type); | 519 events[3].event_type); |
| 532 EXPECT_EQ(static_cast<int>(kMessageFrameLength), events[3].result); | 520 EXPECT_EQ(static_cast<int>(kMessageFrameLength), events[3].result); |
| 533 EXPECT_EQ(SpdyWebSocketStreamEvent::EVENT_CLOSE, events[4].event_type); | 521 EXPECT_EQ(SpdyWebSocketStreamEvent::EVENT_CLOSE, events[4].event_type); |
| 534 | 522 |
| 535 EXPECT_TRUE(http_session_->spdy_session_pool()->HasSession( | 523 EXPECT_TRUE(http_session_->spdy_session_pool()->HasSession( |
| 536 spdy_session_key_)); | 524 spdy_session_key_)); |
| 537 } | 525 } |
| 538 | 526 |
| 539 TEST_P(SpdyWebSocketStreamTest, IOPending) { | 527 TEST_P(SpdyWebSocketStreamTest, IOPending) { |
| 540 if (GetParam() > kProtoSPDY3) | |
| 541 return; | |
| 542 | |
| 543 Prepare(1); | 528 Prepare(1); |
| 544 scoped_ptr<SpdyFrame> settings_frame( | 529 scoped_ptr<SpdyFrame> settings_frame( |
| 545 spdy_util_.ConstructSpdySettings(spdy_settings_to_send_)); | 530 spdy_util_.ConstructSpdySettings(spdy_settings_to_send_)); |
| 546 MockWrite writes[] = { | 531 MockWrite writes[] = { |
| 547 // Setting throttling make SpdySession send settings frame automatically. | 532 // Setting throttling make SpdySession send settings frame automatically. |
| 548 CreateMockWrite(*settings_frame.get(), 1), | 533 CreateMockWrite(*settings_frame.get(), 1), |
| 549 CreateMockWrite(*request_frame_.get(), 3), | 534 CreateMockWrite(*request_frame_.get(), 3), |
| 550 CreateMockWrite(*message_frame_.get(), 6), | 535 CreateMockWrite(*message_frame_.get(), 6), |
| 551 CreateMockWrite(*closing_frame_.get(), 9) | 536 CreateMockWrite(*closing_frame_.get(), 9) |
| 552 }; | 537 }; |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 636 EXPECT_EQ(OK, events[7].result); | 621 EXPECT_EQ(OK, events[7].result); |
| 637 | 622 |
| 638 // EOF close SPDY session. | 623 // EOF close SPDY session. |
| 639 EXPECT_TRUE(!http_session_->spdy_session_pool()->HasSession( | 624 EXPECT_TRUE(!http_session_->spdy_session_pool()->HasSession( |
| 640 spdy_session_key_)); | 625 spdy_session_key_)); |
| 641 EXPECT_TRUE(data()->at_read_eof()); | 626 EXPECT_TRUE(data()->at_read_eof()); |
| 642 EXPECT_TRUE(data()->at_write_eof()); | 627 EXPECT_TRUE(data()->at_write_eof()); |
| 643 } | 628 } |
| 644 | 629 |
| 645 } // namespace net | 630 } // namespace net |
| OLD | NEW |