| 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/memory/ref_counted.h" | 6 #include "base/memory/ref_counted.h" |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/memory/weak_ptr.h" | 8 #include "base/memory/weak_ptr.h" |
| 9 #include "base/strings/string_piece.h" | 9 #include "base/strings/string_piece.h" |
| 10 #include "net/base/completion_callback.h" | 10 #include "net/base/completion_callback.h" |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 MockConnect connect_data(SYNCHRONOUS, OK); | 120 MockConnect connect_data(SYNCHRONOUS, OK); |
| 121 data.set_connect_data(connect_data); | 121 data.set_connect_data(connect_data); |
| 122 | 122 |
| 123 session_deps_.socket_factory->AddSocketDataProvider(&data); | 123 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 124 | 124 |
| 125 scoped_refptr<SpdySession> session(CreateSpdySession()); | 125 scoped_refptr<SpdySession> session(CreateSpdySession()); |
| 126 | 126 |
| 127 InitializeSpdySession(session, host_port_pair_); | 127 InitializeSpdySession(session, host_port_pair_); |
| 128 | 128 |
| 129 base::WeakPtr<SpdyStream> stream = | 129 base::WeakPtr<SpdyStream> stream = |
| 130 CreateStreamSynchronously(session, url, LOWEST, BoundNetLog()); | 130 CreateStreamSynchronously( |
| 131 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, BoundNetLog()); |
| 131 ASSERT_TRUE(stream.get() != NULL); | 132 ASSERT_TRUE(stream.get() != NULL); |
| 132 | 133 |
| 133 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); | 134 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); |
| 134 stream->SetDelegate(&delegate); | 135 stream->SetDelegate(&delegate); |
| 135 | 136 |
| 136 EXPECT_FALSE(stream->HasUrl()); | 137 EXPECT_FALSE(stream->HasUrl()); |
| 137 | 138 |
| 138 scoped_ptr<SpdyHeaderBlock> headers( | 139 scoped_ptr<SpdyHeaderBlock> headers( |
| 139 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); | 140 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); |
| 140 EXPECT_EQ(ERR_IO_PENDING, | 141 EXPECT_EQ(ERR_IO_PENDING, |
| (...skipping 22 matching lines...) Expand all Loading... |
| 163 OrderedSocketData data(reads, arraysize(reads), NULL, 0); | 164 OrderedSocketData data(reads, arraysize(reads), NULL, 0); |
| 164 MockConnect connect_data(SYNCHRONOUS, OK); | 165 MockConnect connect_data(SYNCHRONOUS, OK); |
| 165 data.set_connect_data(connect_data); | 166 data.set_connect_data(connect_data); |
| 166 | 167 |
| 167 session_deps_.socket_factory->AddSocketDataProvider(&data); | 168 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 168 | 169 |
| 169 InitializeSpdySession(spdy_session, host_port_pair_); | 170 InitializeSpdySession(spdy_session, host_port_pair_); |
| 170 BoundNetLog net_log; | 171 BoundNetLog net_log; |
| 171 | 172 |
| 172 // Conjure up a stream. | 173 // Conjure up a stream. |
| 173 SpdyStream stream(spdy_session, | 174 SpdyStream stream(SPDY_PUSH_STREAM, |
| 175 spdy_session, |
| 174 std::string(), | 176 std::string(), |
| 175 DEFAULT_PRIORITY, | 177 DEFAULT_PRIORITY, |
| 176 kSpdyStreamInitialWindowSize, | 178 kSpdyStreamInitialWindowSize, |
| 177 kSpdyStreamInitialWindowSize, | 179 kSpdyStreamInitialWindowSize, |
| 178 true, | |
| 179 net_log); | 180 net_log); |
| 180 stream.set_stream_id(2); | 181 stream.set_stream_id(2); |
| 181 EXPECT_FALSE(stream.response_received()); | 182 EXPECT_FALSE(stream.response_received()); |
| 182 EXPECT_FALSE(stream.HasUrl()); | 183 EXPECT_FALSE(stream.HasUrl()); |
| 183 | 184 |
| 184 // Set a couple of headers. | 185 // Set a couple of headers. |
| 185 SpdyHeaderBlock response; | 186 SpdyHeaderBlock response; |
| 186 GURL url(kStreamUrl); | 187 GURL url(kStreamUrl); |
| 187 response[":host"] = url.host(); | 188 response[":host"] = url.host(); |
| 188 response[":scheme"] = url.scheme(); | 189 response[":scheme"] = url.scheme(); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 236 MockConnect connect_data(SYNCHRONOUS, OK); | 237 MockConnect connect_data(SYNCHRONOUS, OK); |
| 237 data.set_connect_data(connect_data); | 238 data.set_connect_data(connect_data); |
| 238 | 239 |
| 239 session_deps_.socket_factory->AddSocketDataProvider(&data); | 240 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 240 | 241 |
| 241 scoped_refptr<SpdySession> session(CreateSpdySession()); | 242 scoped_refptr<SpdySession> session(CreateSpdySession()); |
| 242 | 243 |
| 243 InitializeSpdySession(session, host_port_pair_); | 244 InitializeSpdySession(session, host_port_pair_); |
| 244 | 245 |
| 245 base::WeakPtr<SpdyStream> stream = | 246 base::WeakPtr<SpdyStream> stream = |
| 246 CreateStreamSynchronously(session, url, LOWEST, log.bound()); | 247 CreateStreamSynchronously( |
| 248 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, log.bound()); |
| 247 ASSERT_TRUE(stream.get() != NULL); | 249 ASSERT_TRUE(stream.get() != NULL); |
| 248 | 250 |
| 249 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); | 251 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); |
| 250 stream->SetDelegate(&delegate); | 252 stream->SetDelegate(&delegate); |
| 251 | 253 |
| 252 EXPECT_FALSE(stream->HasUrl()); | 254 EXPECT_FALSE(stream->HasUrl()); |
| 253 | 255 |
| 254 scoped_ptr<SpdyHeaderBlock> headers( | 256 scoped_ptr<SpdyHeaderBlock> headers( |
| 255 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); | 257 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); |
| 256 EXPECT_EQ(ERR_IO_PENDING, | 258 EXPECT_EQ(ERR_IO_PENDING, |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 319 MockConnect connect_data(SYNCHRONOUS, OK); | 321 MockConnect connect_data(SYNCHRONOUS, OK); |
| 320 data.set_connect_data(connect_data); | 322 data.set_connect_data(connect_data); |
| 321 | 323 |
| 322 session_deps_.socket_factory->AddSocketDataProvider(&data); | 324 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 323 | 325 |
| 324 scoped_refptr<SpdySession> session(CreateSpdySession()); | 326 scoped_refptr<SpdySession> session(CreateSpdySession()); |
| 325 | 327 |
| 326 InitializeSpdySession(session, host_port_pair_); | 328 InitializeSpdySession(session, host_port_pair_); |
| 327 | 329 |
| 328 base::WeakPtr<SpdyStream> stream = | 330 base::WeakPtr<SpdyStream> stream = |
| 329 CreateStreamSynchronously(session, url, LOWEST, BoundNetLog()); | 331 CreateStreamSynchronously( |
| 332 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); |
| 330 ASSERT_TRUE(stream.get() != NULL); | 333 ASSERT_TRUE(stream.get() != NULL); |
| 331 | 334 |
| 332 std::string body_data(3 * kMaxSpdyFrameChunkSize, 'x'); | 335 std::string body_data(3 * kMaxSpdyFrameChunkSize, 'x'); |
| 333 StreamDelegateWithBody delegate(stream, body_data); | 336 StreamDelegateWithBody delegate(stream, body_data); |
| 334 stream->SetDelegate(&delegate); | 337 stream->SetDelegate(&delegate); |
| 335 | 338 |
| 336 EXPECT_FALSE(stream->HasUrl()); | 339 EXPECT_FALSE(stream->HasUrl()); |
| 337 | 340 |
| 338 scoped_ptr<SpdyHeaderBlock> headers( | 341 scoped_ptr<SpdyHeaderBlock> headers( |
| 339 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); | 342 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 MockConnect connect_data(SYNCHRONOUS, OK); | 385 MockConnect connect_data(SYNCHRONOUS, OK); |
| 383 data.set_connect_data(connect_data); | 386 data.set_connect_data(connect_data); |
| 384 | 387 |
| 385 session_deps_.socket_factory->AddSocketDataProvider(&data); | 388 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 386 | 389 |
| 387 scoped_refptr<SpdySession> session(CreateSpdySession()); | 390 scoped_refptr<SpdySession> session(CreateSpdySession()); |
| 388 | 391 |
| 389 InitializeSpdySession(session, host_port_pair_); | 392 InitializeSpdySession(session, host_port_pair_); |
| 390 | 393 |
| 391 base::WeakPtr<SpdyStream> stream = | 394 base::WeakPtr<SpdyStream> stream = |
| 392 CreateStreamSynchronously(session, url, LOWEST, BoundNetLog()); | 395 CreateStreamSynchronously( |
| 396 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, BoundNetLog()); |
| 393 ASSERT_TRUE(stream.get() != NULL); | 397 ASSERT_TRUE(stream.get() != NULL); |
| 394 | 398 |
| 395 std::string body_data(3 * kMaxSpdyFrameChunkSize, 'x'); | 399 std::string body_data(3 * kMaxSpdyFrameChunkSize, 'x'); |
| 396 StreamDelegateSendImmediate delegate(stream, body_data); | 400 StreamDelegateSendImmediate delegate(stream, body_data); |
| 397 stream->SetDelegate(&delegate); | 401 stream->SetDelegate(&delegate); |
| 398 | 402 |
| 399 EXPECT_FALSE(stream->HasUrl()); | 403 EXPECT_FALSE(stream->HasUrl()); |
| 400 | 404 |
| 401 scoped_ptr<SpdyHeaderBlock> headers( | 405 scoped_ptr<SpdyHeaderBlock> headers( |
| 402 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); | 406 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 444 data.set_connect_data(connect_data); | 448 data.set_connect_data(connect_data); |
| 445 | 449 |
| 446 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 450 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 447 | 451 |
| 448 scoped_refptr<SpdySession> session(CreateSpdySession()); | 452 scoped_refptr<SpdySession> session(CreateSpdySession()); |
| 449 GURL url(kStreamUrl); | 453 GURL url(kStreamUrl); |
| 450 | 454 |
| 451 InitializeSpdySession(session, host_port_pair_); | 455 InitializeSpdySession(session, host_port_pair_); |
| 452 | 456 |
| 453 base::WeakPtr<SpdyStream> stream = | 457 base::WeakPtr<SpdyStream> stream = |
| 454 CreateStreamSynchronously(session, url, LOWEST, log.bound()); | 458 CreateStreamSynchronously( |
| 459 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, log.bound()); |
| 455 ASSERT_TRUE(stream.get() != NULL); | 460 ASSERT_TRUE(stream.get() != NULL); |
| 456 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); | 461 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); |
| 457 stream->SetDelegate(&delegate); | 462 stream->SetDelegate(&delegate); |
| 458 | 463 |
| 459 scoped_ptr<SpdyHeaderBlock> headers( | 464 scoped_ptr<SpdyHeaderBlock> headers( |
| 460 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); | 465 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); |
| 461 EXPECT_EQ(ERR_IO_PENDING, | 466 EXPECT_EQ(ERR_IO_PENDING, |
| 462 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); | 467 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); |
| 463 EXPECT_TRUE(stream->HasUrl()); | 468 EXPECT_TRUE(stream->HasUrl()); |
| 464 EXPECT_EQ(kStreamUrl, stream->GetUrl().spec()); | 469 EXPECT_EQ(kStreamUrl, stream->GetUrl().spec()); |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 536 MockConnect connect_data(SYNCHRONOUS, OK); | 541 MockConnect connect_data(SYNCHRONOUS, OK); |
| 537 data.set_connect_data(connect_data); | 542 data.set_connect_data(connect_data); |
| 538 | 543 |
| 539 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 544 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 540 | 545 |
| 541 scoped_refptr<SpdySession> session(CreateSpdySession()); | 546 scoped_refptr<SpdySession> session(CreateSpdySession()); |
| 542 | 547 |
| 543 InitializeSpdySession(session, host_port_pair_); | 548 InitializeSpdySession(session, host_port_pair_); |
| 544 | 549 |
| 545 base::WeakPtr<SpdyStream> stream = | 550 base::WeakPtr<SpdyStream> stream = |
| 546 CreateStreamSynchronously(session, url, LOWEST, BoundNetLog()); | 551 CreateStreamSynchronously( |
| 552 SPDY_REQUEST_RESPONSE_STREAM, session, url, LOWEST, BoundNetLog()); |
| 547 ASSERT_TRUE(stream.get() != NULL); | 553 ASSERT_TRUE(stream.get() != NULL); |
| 548 | 554 |
| 549 StreamDelegateWithBody delegate(stream, kPostBodyStringPiece); | 555 StreamDelegateWithBody delegate(stream, kPostBodyStringPiece); |
| 550 stream->SetDelegate(&delegate); | 556 stream->SetDelegate(&delegate); |
| 551 | 557 |
| 552 EXPECT_FALSE(stream->HasUrl()); | 558 EXPECT_FALSE(stream->HasUrl()); |
| 553 EXPECT_FALSE(stream->send_stalled_by_flow_control()); | 559 EXPECT_FALSE(stream->send_stalled_by_flow_control()); |
| 554 | 560 |
| 555 scoped_ptr<SpdyHeaderBlock> headers( | 561 scoped_ptr<SpdyHeaderBlock> headers( |
| 556 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); | 562 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 623 MockConnect connect_data(SYNCHRONOUS, OK); | 629 MockConnect connect_data(SYNCHRONOUS, OK); |
| 624 data.set_connect_data(connect_data); | 630 data.set_connect_data(connect_data); |
| 625 | 631 |
| 626 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); | 632 session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data); |
| 627 | 633 |
| 628 scoped_refptr<SpdySession> session(CreateSpdySession()); | 634 scoped_refptr<SpdySession> session(CreateSpdySession()); |
| 629 | 635 |
| 630 InitializeSpdySession(session, host_port_pair_); | 636 InitializeSpdySession(session, host_port_pair_); |
| 631 | 637 |
| 632 base::WeakPtr<SpdyStream> stream = | 638 base::WeakPtr<SpdyStream> stream = |
| 633 CreateStreamSynchronously(session, url, LOWEST, BoundNetLog()); | 639 CreateStreamSynchronously( |
| 640 SPDY_BIDIRECTIONAL_STREAM, session, url, LOWEST, BoundNetLog()); |
| 634 ASSERT_TRUE(stream.get() != NULL); | 641 ASSERT_TRUE(stream.get() != NULL); |
| 635 | 642 |
| 636 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); | 643 StreamDelegateSendImmediate delegate(stream, kPostBodyStringPiece); |
| 637 stream->SetDelegate(&delegate); | 644 stream->SetDelegate(&delegate); |
| 638 | 645 |
| 639 EXPECT_FALSE(stream->HasUrl()); | 646 EXPECT_FALSE(stream->HasUrl()); |
| 640 | 647 |
| 641 scoped_ptr<SpdyHeaderBlock> headers( | 648 scoped_ptr<SpdyHeaderBlock> headers( |
| 642 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); | 649 spdy_util_.ConstructPostHeaderBlock(kStreamUrl, kPostBodyLength)); |
| 643 EXPECT_EQ(ERR_IO_PENDING, | 650 EXPECT_EQ(ERR_IO_PENDING, |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 679 TEST_F(SpdyStreamSpdy3Test, ResumeAfterSendWindowSizeAdjustBidirectional) { | 686 TEST_F(SpdyStreamSpdy3Test, ResumeAfterSendWindowSizeAdjustBidirectional) { |
| 680 RunResumeAfterUnstallBidirectionalTest( | 687 RunResumeAfterUnstallBidirectionalTest( |
| 681 base::Bind(&AdjustStreamSendWindowSize)); | 688 base::Bind(&AdjustStreamSendWindowSize)); |
| 682 } | 689 } |
| 683 | 690 |
| 684 } // namespace | 691 } // namespace |
| 685 | 692 |
| 686 } // namespace test | 693 } // namespace test |
| 687 | 694 |
| 688 } // namespace net | 695 } // namespace net |
| OLD | NEW |