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 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 encryption_established_ = has_established; | 98 encryption_established_ = has_established; |
99 } | 99 } |
100 | 100 |
101 private: | 101 private: |
102 DISALLOW_COPY_AND_ASSIGN(MockQuicCryptoServerStream); | 102 DISALLOW_COPY_AND_ASSIGN(MockQuicCryptoServerStream); |
103 }; | 103 }; |
104 | 104 |
105 class MockConnectionWithSendStreamData : public MockConnection { | 105 class MockConnectionWithSendStreamData : public MockConnection { |
106 public: | 106 public: |
107 MockConnectionWithSendStreamData(MockConnectionHelper* helper, | 107 MockConnectionWithSendStreamData(MockConnectionHelper* helper, |
| 108 MockAlarmFactory* alarm_factory, |
108 Perspective perspective, | 109 Perspective perspective, |
109 const QuicVersionVector& supported_versions) | 110 const QuicVersionVector& supported_versions) |
110 : MockConnection(helper, perspective, supported_versions) {} | 111 : MockConnection(helper, alarm_factory, perspective, supported_versions) { |
| 112 } |
111 | 113 |
112 MOCK_METHOD5(SendStreamData, | 114 MOCK_METHOD5(SendStreamData, |
113 QuicConsumedData(QuicStreamId id, | 115 QuicConsumedData(QuicStreamId id, |
114 QuicIOVector iov, | 116 QuicIOVector iov, |
115 QuicStreamOffset offset, | 117 QuicStreamOffset offset, |
116 bool fin, | 118 bool fin, |
117 QuicAckListenerInterface* listern)); | 119 QuicAckListenerInterface* listern)); |
118 }; | 120 }; |
119 | 121 |
120 class QuicSimpleServerSessionPeer { | 122 class QuicSimpleServerSessionPeer { |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 compressed_certs_cache_( | 162 compressed_certs_cache_( |
161 QuicCompressedCertsCache::kQuicCompressedCertsCacheSize) { | 163 QuicCompressedCertsCache::kQuicCompressedCertsCacheSize) { |
162 FLAGS_quic_always_log_bugs_for_tests = true; | 164 FLAGS_quic_always_log_bugs_for_tests = true; |
163 config_.SetMaxStreamsPerConnection(kMaxStreamsForTest, kMaxStreamsForTest); | 165 config_.SetMaxStreamsPerConnection(kMaxStreamsForTest, kMaxStreamsForTest); |
164 config_.SetInitialStreamFlowControlWindowToSend( | 166 config_.SetInitialStreamFlowControlWindowToSend( |
165 kInitialStreamFlowControlWindowForTest); | 167 kInitialStreamFlowControlWindowForTest); |
166 config_.SetInitialSessionFlowControlWindowToSend( | 168 config_.SetInitialSessionFlowControlWindowToSend( |
167 kInitialSessionFlowControlWindowForTest); | 169 kInitialSessionFlowControlWindowForTest); |
168 | 170 |
169 connection_ = new StrictMock<MockConnectionWithSendStreamData>( | 171 connection_ = new StrictMock<MockConnectionWithSendStreamData>( |
170 &helper_, Perspective::IS_SERVER, SupportedVersions(GetParam())); | 172 &helper_, &alarm_factory_, Perspective::IS_SERVER, |
| 173 SupportedVersions(GetParam())); |
171 session_.reset(new QuicSimpleServerSession(config_, connection_, &owner_, | 174 session_.reset(new QuicSimpleServerSession(config_, connection_, &owner_, |
172 &crypto_config_, | 175 &crypto_config_, |
173 &compressed_certs_cache_)); | 176 &compressed_certs_cache_)); |
174 MockClock clock; | 177 MockClock clock; |
175 handshake_message_.reset(crypto_config_.AddDefaultConfig( | 178 handshake_message_.reset(crypto_config_.AddDefaultConfig( |
176 QuicRandom::GetInstance(), &clock, | 179 QuicRandom::GetInstance(), &clock, |
177 QuicCryptoServerConfig::ConfigOptions())); | 180 QuicCryptoServerConfig::ConfigOptions())); |
178 session_->Initialize(); | 181 session_->Initialize(); |
179 visitor_ = QuicConnectionPeer::GetVisitor(connection_); | 182 visitor_ = QuicConnectionPeer::GetVisitor(connection_); |
180 headers_stream_ = new MockQuicHeadersStream(session_.get()); | 183 headers_stream_ = new MockQuicHeadersStream(session_.get()); |
181 QuicSpdySessionPeer::SetHeadersStream(session_.get(), headers_stream_); | 184 QuicSpdySessionPeer::SetHeadersStream(session_.get(), headers_stream_); |
182 // TODO(jri): Remove this line once tests pass. | 185 // TODO(jri): Remove this line once tests pass. |
183 FLAGS_quic_cede_correctly = false; | 186 FLAGS_quic_cede_correctly = false; |
184 } | 187 } |
185 | 188 |
186 StrictMock<MockQuicServerSessionVisitor> owner_; | 189 StrictMock<MockQuicServerSessionVisitor> owner_; |
187 MockConnectionHelper helper_; | 190 MockConnectionHelper helper_; |
| 191 MockAlarmFactory alarm_factory_; |
188 StrictMock<MockConnectionWithSendStreamData>* connection_; | 192 StrictMock<MockConnectionWithSendStreamData>* connection_; |
189 QuicConfig config_; | 193 QuicConfig config_; |
190 QuicCryptoServerConfig crypto_config_; | 194 QuicCryptoServerConfig crypto_config_; |
191 QuicCompressedCertsCache compressed_certs_cache_; | 195 QuicCompressedCertsCache compressed_certs_cache_; |
192 scoped_ptr<QuicSimpleServerSession> session_; | 196 scoped_ptr<QuicSimpleServerSession> session_; |
193 scoped_ptr<CryptoHandshakeMessage> handshake_message_; | 197 scoped_ptr<CryptoHandshakeMessage> handshake_message_; |
194 QuicConnectionVisitorInterface* visitor_; | 198 QuicConnectionVisitorInterface* visitor_; |
195 MockQuicHeadersStream* headers_stream_; | 199 MockQuicHeadersStream* headers_stream_; |
196 }; | 200 }; |
197 | 201 |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 // enough that it won't block any stream to write before stream level flow | 399 // enough that it won't block any stream to write before stream level flow |
396 // control blocks it. | 400 // control blocks it. |
397 QuicConfigPeer::SetReceivedInitialSessionFlowControlWindow( | 401 QuicConfigPeer::SetReceivedInitialSessionFlowControlWindow( |
398 &config_, kInitialSessionFlowControlWindowForTest); | 402 &config_, kInitialSessionFlowControlWindowForTest); |
399 // Enable server push. | 403 // Enable server push. |
400 QuicTagVector copt; | 404 QuicTagVector copt; |
401 copt.push_back(kSPSH); | 405 copt.push_back(kSPSH); |
402 QuicConfigPeer::SetReceivedConnectionOptions(&config_, copt); | 406 QuicConfigPeer::SetReceivedConnectionOptions(&config_, copt); |
403 | 407 |
404 connection_ = new StrictMock<MockConnectionWithSendStreamData>( | 408 connection_ = new StrictMock<MockConnectionWithSendStreamData>( |
405 &helper_, Perspective::IS_SERVER, SupportedVersions(GetParam())); | 409 &helper_, &alarm_factory_, Perspective::IS_SERVER, |
| 410 SupportedVersions(GetParam())); |
406 session_.reset(new QuicSimpleServerSession(config_, connection_, &owner_, | 411 session_.reset(new QuicSimpleServerSession(config_, connection_, &owner_, |
407 &crypto_config_, | 412 &crypto_config_, |
408 &compressed_certs_cache_)); | 413 &compressed_certs_cache_)); |
409 session_->Initialize(); | 414 session_->Initialize(); |
410 // Needed to make new session flow control window and server push work. | 415 // Needed to make new session flow control window and server push work. |
411 session_->OnConfigNegotiated(); | 416 session_->OnConfigNegotiated(); |
412 | 417 |
413 visitor_ = QuicConnectionPeer::GetVisitor(connection_); | 418 visitor_ = QuicConnectionPeer::GetVisitor(connection_); |
414 headers_stream_ = new MockQuicHeadersStream(session_.get()); | 419 headers_stream_ = new MockQuicHeadersStream(session_.get()); |
415 QuicSpdySessionPeer::SetHeadersStream(session_.get(), headers_stream_); | 420 QuicSpdySessionPeer::SetHeadersStream(session_.get(), headers_stream_); |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
564 .WillOnce(Return(QuicConsumedData(kStreamFlowControlWindowSize, false))); | 569 .WillOnce(Return(QuicConsumedData(kStreamFlowControlWindowSize, false))); |
565 | 570 |
566 EXPECT_CALL(*connection_, SendBlocked(stream_to_open)); | 571 EXPECT_CALL(*connection_, SendBlocked(stream_to_open)); |
567 QuicRstStreamFrame rst(stream_got_reset, QUIC_STREAM_CANCELLED, 0); | 572 QuicRstStreamFrame rst(stream_got_reset, QUIC_STREAM_CANCELLED, 0); |
568 visitor_->OnRstStream(rst); | 573 visitor_->OnRstStream(rst); |
569 } | 574 } |
570 | 575 |
571 } // namespace | 576 } // namespace |
572 } // namespace test | 577 } // namespace test |
573 } // namespace net | 578 } // namespace net |
OLD | NEW |