| 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/quic/quic_headers_stream.h" | 5 #include "net/quic/quic_headers_stream.h" |
| 6 | 6 |
| 7 #include "net/quic/quic_utils.h" | 7 #include "net/quic/quic_utils.h" |
| 8 #include "net/quic/spdy_utils.h" | 8 #include "net/quic/spdy_utils.h" |
| 9 #include "net/quic/test_tools/quic_connection_peer.h" | 9 #include "net/quic/test_tools/quic_connection_peer.h" |
| 10 #include "net/quic/test_tools/quic_spdy_session_peer.h" | 10 #include "net/quic/test_tools/quic_spdy_session_peer.h" |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 }; | 108 }; |
| 109 | 109 |
| 110 // Constructs various test permutations. | 110 // Constructs various test permutations. |
| 111 vector<TestParams> GetTestParams() { | 111 vector<TestParams> GetTestParams() { |
| 112 vector<TestParams> params; | 112 vector<TestParams> params; |
| 113 QuicVersionVector all_supported_versions = QuicSupportedVersions(); | 113 QuicVersionVector all_supported_versions = QuicSupportedVersions(); |
| 114 for (const QuicVersion version : all_supported_versions) { | 114 for (const QuicVersion version : all_supported_versions) { |
| 115 params.push_back(TestParams(version, Perspective::IS_CLIENT)); | 115 params.push_back(TestParams(version, Perspective::IS_CLIENT)); |
| 116 params.push_back(TestParams(version, Perspective::IS_SERVER)); | 116 params.push_back(TestParams(version, Perspective::IS_SERVER)); |
| 117 } | 117 } |
| 118 FLAGS_quic_supports_push_promise = true; |
| 118 return params; | 119 return params; |
| 119 } | 120 } |
| 120 | 121 |
| 121 class QuicHeadersStreamTest : public ::testing::TestWithParam<TestParams> { | 122 class QuicHeadersStreamTest : public ::testing::TestWithParam<TestParams> { |
| 122 public: | 123 public: |
| 123 QuicHeadersStreamTest() | 124 QuicHeadersStreamTest() |
| 124 : connection_(new StrictMock<MockConnection>(&helper_, | 125 : connection_(new StrictMock<MockConnection>(&helper_, |
| 125 perspective(), | 126 perspective(), |
| 126 GetVersion())), | 127 GetVersion())), |
| 127 session_(connection_), | 128 session_(connection_), |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 stream_frame_.frame_length = frame->size(); | 333 stream_frame_.frame_length = frame->size(); |
| 333 headers_stream_->OnStreamFrame(stream_frame_); | 334 headers_stream_->OnStreamFrame(stream_frame_); |
| 334 stream_frame_.offset += frame->size(); | 335 stream_frame_.offset += frame->size(); |
| 335 CheckHeaders(); | 336 CheckHeaders(); |
| 336 } | 337 } |
| 337 } | 338 } |
| 338 } | 339 } |
| 339 } | 340 } |
| 340 | 341 |
| 341 TEST_P(QuicHeadersStreamTest, ProcessPushPromise) { | 342 TEST_P(QuicHeadersStreamTest, ProcessPushPromise) { |
| 342 FLAGS_quic_supports_push_promise = true; | 343 if (perspective() == Perspective::IS_SERVER) |
| 344 return; |
| 343 for (QuicStreamId stream_id = kClientDataStreamId1; | 345 for (QuicStreamId stream_id = kClientDataStreamId1; |
| 344 stream_id < kClientDataStreamId3; stream_id += 2) { | 346 stream_id < kClientDataStreamId3; stream_id += 2) { |
| 345 QuicStreamId promised_stream_id = NextPromisedStreamId(); | 347 QuicStreamId promised_stream_id = NextPromisedStreamId(); |
| 346 scoped_ptr<SpdySerializedFrame> frame; | 348 scoped_ptr<SpdySerializedFrame> frame; |
| 347 SpdyPushPromiseIR push_promise(stream_id, promised_stream_id); | 349 SpdyPushPromiseIR push_promise(stream_id, promised_stream_id); |
| 348 push_promise.set_header_block(headers_); | 350 push_promise.set_header_block(headers_); |
| 349 frame.reset(framer_.SerializeFrame(push_promise)); | 351 frame.reset(framer_.SerializeFrame(push_promise)); |
| 350 if (perspective() == Perspective::IS_SERVER) { | 352 if (perspective() == Perspective::IS_SERVER) { |
| 351 EXPECT_CALL(*connection_, SendConnectionCloseWithDetails( | 353 EXPECT_CALL(*connection_, SendConnectionCloseWithDetails( |
| 352 QUIC_INVALID_HEADERS_STREAM_DATA, | 354 QUIC_INVALID_HEADERS_STREAM_DATA, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 364 stream_frame_.frame_length = frame->size(); | 366 stream_frame_.frame_length = frame->size(); |
| 365 headers_stream_->OnStreamFrame(stream_frame_); | 367 headers_stream_->OnStreamFrame(stream_frame_); |
| 366 if (perspective() == Perspective::IS_CLIENT) { | 368 if (perspective() == Perspective::IS_CLIENT) { |
| 367 stream_frame_.offset += frame->size(); | 369 stream_frame_.offset += frame->size(); |
| 368 CheckHeaders(); | 370 CheckHeaders(); |
| 369 } | 371 } |
| 370 } | 372 } |
| 371 } | 373 } |
| 372 | 374 |
| 373 TEST_P(QuicHeadersStreamTest, PushPromiseOutOfOrder) { | 375 TEST_P(QuicHeadersStreamTest, PushPromiseOutOfOrder) { |
| 374 FLAGS_quic_supports_push_promise = true; | 376 if (perspective() == Perspective::IS_SERVER) |
| 375 if (perspective() == Perspective::IS_SERVER) { | |
| 376 return; | 377 return; |
| 377 } | |
| 378 | 378 |
| 379 QuicStreamId promised_stream_id = NextPromisedStreamId(); | 379 QuicStreamId promised_stream_id = NextPromisedStreamId(); |
| 380 QuicStreamId stream_id = kClientDataStreamId1; | 380 QuicStreamId stream_id = kClientDataStreamId1; |
| 381 | 381 |
| 382 scoped_ptr<SpdySerializedFrame> frame; | 382 scoped_ptr<SpdySerializedFrame> frame; |
| 383 SpdyPushPromiseIR push_promise(stream_id, promised_stream_id); | 383 SpdyPushPromiseIR push_promise(stream_id, promised_stream_id); |
| 384 push_promise.set_header_block(headers_); | 384 push_promise.set_header_block(headers_); |
| 385 frame.reset(framer_.SerializeFrame(push_promise)); | 385 frame.reset(framer_.SerializeFrame(push_promise)); |
| 386 EXPECT_CALL(session_, OnPromiseHeaders(stream_id, _)) | 386 EXPECT_CALL(session_, OnPromiseHeaders(stream_id, _)) |
| 387 .WillRepeatedly(WithArgs<1>( | 387 .WillRepeatedly(WithArgs<1>( |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 625 } | 625 } |
| 626 | 626 |
| 627 TEST_P(QuicHeadersStreamTest, NoConnectionLevelFlowControl) { | 627 TEST_P(QuicHeadersStreamTest, NoConnectionLevelFlowControl) { |
| 628 EXPECT_FALSE(ReliableQuicStreamPeer::StreamContributesToConnectionFlowControl( | 628 EXPECT_FALSE(ReliableQuicStreamPeer::StreamContributesToConnectionFlowControl( |
| 629 headers_stream_)); | 629 headers_stream_)); |
| 630 } | 630 } |
| 631 | 631 |
| 632 } // namespace | 632 } // namespace |
| 633 } // namespace test | 633 } // namespace test |
| 634 } // namespace net | 634 } // namespace net |
| OLD | NEW |