| 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/tools/quic/quic_simple_server_session.h" | 5 #include "net/tools/quic/quic_simple_server_session.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 const SpdyHeaderBlock& headers, | 76 const SpdyHeaderBlock& headers, |
| 77 bool fin, | 77 bool fin, |
| 78 SpdyPriority priority, | 78 SpdyPriority priority, |
| 79 QuicAckListenerInterface* ack_listener)); | 79 QuicAckListenerInterface* ack_listener)); |
| 80 }; | 80 }; |
| 81 | 81 |
| 82 class MockQuicCryptoServerStream : public QuicCryptoServerStream { | 82 class MockQuicCryptoServerStream : public QuicCryptoServerStream { |
| 83 public: | 83 public: |
| 84 explicit MockQuicCryptoServerStream( | 84 explicit MockQuicCryptoServerStream( |
| 85 const QuicCryptoServerConfig* crypto_config, | 85 const QuicCryptoServerConfig* crypto_config, |
| 86 QuicCompressedCertsCache* compressed_certs_cache, |
| 86 QuicSession* session) | 87 QuicSession* session) |
| 87 : QuicCryptoServerStream(crypto_config, | 88 : QuicCryptoServerStream(crypto_config, |
| 89 compressed_certs_cache, |
| 88 FLAGS_enable_quic_stateless_reject_support, | 90 FLAGS_enable_quic_stateless_reject_support, |
| 89 session) {} | 91 session) {} |
| 90 ~MockQuicCryptoServerStream() override {} | 92 ~MockQuicCryptoServerStream() override {} |
| 91 | 93 |
| 92 MOCK_METHOD1(SendServerConfigUpdate, | 94 MOCK_METHOD1(SendServerConfigUpdate, |
| 93 void(const CachedNetworkParameters* cached_network_parameters)); | 95 void(const CachedNetworkParameters* cached_network_parameters)); |
| 94 | 96 |
| 95 void set_encryption_established(bool has_established) { | 97 void set_encryption_established(bool has_established) { |
| 96 encryption_established_ = has_established; | 98 encryption_established_ = has_established; |
| 97 } | 99 } |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 // stream allowed, creation should fail. | 323 // stream allowed, creation should fail. |
| 322 | 324 |
| 323 // Receive some data to initiate a incoming stream which should not effect | 325 // Receive some data to initiate a incoming stream which should not effect |
| 324 // creating outgoing streams. | 326 // creating outgoing streams. |
| 325 QuicStreamFrame data1(kClientDataStreamId1, false, 0, StringPiece("HT")); | 327 QuicStreamFrame data1(kClientDataStreamId1, false, 0, StringPiece("HT")); |
| 326 session_->OnStreamFrame(data1); | 328 session_->OnStreamFrame(data1); |
| 327 EXPECT_EQ(1u, session_->GetNumOpenIncomingStreams()); | 329 EXPECT_EQ(1u, session_->GetNumOpenIncomingStreams()); |
| 328 EXPECT_EQ(0u, session_->GetNumOpenOutgoingStreams()); | 330 EXPECT_EQ(0u, session_->GetNumOpenOutgoingStreams()); |
| 329 | 331 |
| 330 // Assume encryption already established. | 332 // Assume encryption already established. |
| 331 MockQuicCryptoServerStream* crypto_stream = | 333 MockQuicCryptoServerStream* crypto_stream = new MockQuicCryptoServerStream( |
| 332 new MockQuicCryptoServerStream(&crypto_config_, session_.get()); | 334 &crypto_config_, &compressed_certs_cache_, session_.get()); |
| 333 crypto_stream->set_encryption_established(true); | 335 crypto_stream->set_encryption_established(true); |
| 334 QuicSimpleServerSessionPeer::SetCryptoStream(session_.get(), crypto_stream); | 336 QuicSimpleServerSessionPeer::SetCryptoStream(session_.get(), crypto_stream); |
| 335 | 337 |
| 336 // Create push streams till reaching the upper limit of allowed open streams. | 338 // Create push streams till reaching the upper limit of allowed open streams. |
| 337 for (size_t i = 0; i < kMaxStreamsForTest; ++i) { | 339 for (size_t i = 0; i < kMaxStreamsForTest; ++i) { |
| 338 QuicSpdyStream* created_stream = | 340 QuicSpdyStream* created_stream = |
| 339 QuicSimpleServerSessionPeer::CreateOutgoingDynamicStream( | 341 QuicSimpleServerSessionPeer::CreateOutgoingDynamicStream( |
| 340 session_.get(), kDefaultPriority); | 342 session_.get(), kDefaultPriority); |
| 341 EXPECT_EQ(2 * (i + 1), created_stream->id()); | 343 EXPECT_EQ(2 * (i + 1), created_stream->id()); |
| 342 EXPECT_EQ(i + 1, session_->GetNumOpenOutgoingStreams()); | 344 EXPECT_EQ(i + 1, session_->GetNumOpenOutgoingStreams()); |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 407 &compressed_certs_cache_)); | 409 &compressed_certs_cache_)); |
| 408 session_->Initialize(); | 410 session_->Initialize(); |
| 409 // Needed to make new session flow control window work. | 411 // Needed to make new session flow control window work. |
| 410 session_->OnConfigNegotiated(); | 412 session_->OnConfigNegotiated(); |
| 411 | 413 |
| 412 visitor_ = QuicConnectionPeer::GetVisitor(connection_); | 414 visitor_ = QuicConnectionPeer::GetVisitor(connection_); |
| 413 headers_stream_ = new MockQuicHeadersStream(session_.get()); | 415 headers_stream_ = new MockQuicHeadersStream(session_.get()); |
| 414 QuicSpdySessionPeer::SetHeadersStream(session_.get(), headers_stream_); | 416 QuicSpdySessionPeer::SetHeadersStream(session_.get(), headers_stream_); |
| 415 | 417 |
| 416 // Assume encryption already established. | 418 // Assume encryption already established. |
| 417 MockQuicCryptoServerStream* crypto_stream = | 419 MockQuicCryptoServerStream* crypto_stream = new MockQuicCryptoServerStream( |
| 418 new MockQuicCryptoServerStream(&crypto_config_, session_.get()); | 420 &crypto_config_, &compressed_certs_cache_, session_.get()); |
| 419 crypto_stream->set_encryption_established(true); | 421 crypto_stream->set_encryption_established(true); |
| 420 QuicSimpleServerSessionPeer::SetCryptoStream(session_.get(), crypto_stream); | 422 QuicSimpleServerSessionPeer::SetCryptoStream(session_.get(), crypto_stream); |
| 421 } | 423 } |
| 422 | 424 |
| 423 // Given |num_resources|, create this number of fake push resources and push | 425 // Given |num_resources|, create this number of fake push resources and push |
| 424 // them by sending PUSH_PROMISE for all and sending push responses for as much | 426 // them by sending PUSH_PROMISE for all and sending push responses for as much |
| 425 // as possible(limited by kMaxStreamsForTest). | 427 // as possible(limited by kMaxStreamsForTest). |
| 426 // If |num_resources| > kMaxStreamsForTest, the left over will be queued. | 428 // If |num_resources| > kMaxStreamsForTest, the left over will be queued. |
| 427 void PromisePushResources(size_t num_resources) { | 429 void PromisePushResources(size_t num_resources) { |
| 428 // To prevent push streams from being closed the response need to be larger | 430 // To prevent push streams from being closed the response need to be larger |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 563 .WillOnce(Return(QuicConsumedData(kStreamFlowControlWindowSize, false))); | 565 .WillOnce(Return(QuicConsumedData(kStreamFlowControlWindowSize, false))); |
| 564 | 566 |
| 565 EXPECT_CALL(*connection_, SendBlocked(stream_to_open)); | 567 EXPECT_CALL(*connection_, SendBlocked(stream_to_open)); |
| 566 QuicRstStreamFrame rst(stream_got_reset, QUIC_STREAM_CANCELLED, 0); | 568 QuicRstStreamFrame rst(stream_got_reset, QUIC_STREAM_CANCELLED, 0); |
| 567 visitor_->OnRstStream(rst); | 569 visitor_->OnRstStream(rst); |
| 568 } | 570 } |
| 569 | 571 |
| 570 } // namespace | 572 } // namespace |
| 571 } // namespace test | 573 } // namespace test |
| 572 } // namespace net | 574 } // namespace net |
| OLD | NEW |