Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(903)

Side by Side Diff: net/quic/quic_session_test.cc

Issue 111283004: Rename GetIncomingReliableStream to GetIncomingDataStream. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/quic/quic_session.cc ('k') | net/quic/test_tools/quic_session_peer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "net/quic/quic_session.h" 5 #include "net/quic/quic_session.h"
6 6
7 #include <set> 7 #include <set>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/containers/hash_tables.h" 10 #include "base/containers/hash_tables.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 } 107 }
108 108
109 virtual TestStream* CreateIncomingDataStream(QuicStreamId id) OVERRIDE { 109 virtual TestStream* CreateIncomingDataStream(QuicStreamId id) OVERRIDE {
110 return new TestStream(id, this); 110 return new TestStream(id, this);
111 } 111 }
112 112
113 bool IsClosedStream(QuicStreamId id) { 113 bool IsClosedStream(QuicStreamId id) {
114 return QuicSession::IsClosedStream(id); 114 return QuicSession::IsClosedStream(id);
115 } 115 }
116 116
117 QuicDataStream* GetIncomingReliableStream(QuicStreamId stream_id) { 117 QuicDataStream* GetIncomingDataStream(QuicStreamId stream_id) {
118 return QuicSession::GetIncomingReliableStream(stream_id); 118 return QuicSession::GetIncomingDataStream(stream_id);
119 } 119 }
120 120
121 TestCryptoStream crypto_stream_; 121 TestCryptoStream crypto_stream_;
122 }; 122 };
123 123
124 class QuicSessionTest : public ::testing::TestWithParam<QuicVersion> { 124 class QuicSessionTest : public ::testing::TestWithParam<QuicVersion> {
125 protected: 125 protected:
126 QuicSessionTest() 126 QuicSessionTest()
127 : connection_(new MockConnection(true, SupportedVersions(GetParam()))), 127 : connection_(new MockConnection(true, SupportedVersions(GetParam()))),
128 session_(connection_) { 128 session_(connection_) {
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 } 191 }
192 192
193 TEST_P(QuicSessionTest, IsClosedStreamDefault) { 193 TEST_P(QuicSessionTest, IsClosedStreamDefault) {
194 // Ensure that no streams are initially closed. 194 // Ensure that no streams are initially closed.
195 for (int i = kCryptoStreamId; i < 100; i++) { 195 for (int i = kCryptoStreamId; i < 100; i++) {
196 EXPECT_FALSE(session_.IsClosedStream(i)) << "stream id: " << i; 196 EXPECT_FALSE(session_.IsClosedStream(i)) << "stream id: " << i;
197 } 197 }
198 } 198 }
199 199
200 TEST_P(QuicSessionTest, ImplicitlyCreatedStreams) { 200 TEST_P(QuicSessionTest, ImplicitlyCreatedStreams) {
201 ASSERT_TRUE(session_.GetIncomingReliableStream(7) != NULL); 201 ASSERT_TRUE(session_.GetIncomingDataStream(7) != NULL);
202 // Both 3 and 5 should be implicitly created. 202 // Both 3 and 5 should be implicitly created.
203 EXPECT_FALSE(session_.IsClosedStream(3)); 203 EXPECT_FALSE(session_.IsClosedStream(3));
204 EXPECT_FALSE(session_.IsClosedStream(5)); 204 EXPECT_FALSE(session_.IsClosedStream(5));
205 ASSERT_TRUE(session_.GetIncomingReliableStream(5) != NULL); 205 ASSERT_TRUE(session_.GetIncomingDataStream(5) != NULL);
206 ASSERT_TRUE(session_.GetIncomingReliableStream(3) != NULL); 206 ASSERT_TRUE(session_.GetIncomingDataStream(3) != NULL);
207 } 207 }
208 208
209 TEST_P(QuicSessionTest, IsClosedStreamLocallyCreated) { 209 TEST_P(QuicSessionTest, IsClosedStreamLocallyCreated) {
210 TestStream* stream2 = session_.CreateOutgoingDataStream(); 210 TestStream* stream2 = session_.CreateOutgoingDataStream();
211 EXPECT_EQ(2u, stream2->id()); 211 EXPECT_EQ(2u, stream2->id());
212 TestStream* stream4 = session_.CreateOutgoingDataStream(); 212 TestStream* stream4 = session_.CreateOutgoingDataStream();
213 EXPECT_EQ(4u, stream4->id()); 213 EXPECT_EQ(4u, stream4->id());
214 if (GetParam() <= QUIC_VERSION_12) { 214 if (GetParam() <= QUIC_VERSION_12) {
215 QuicDataStreamPeer::SetHeadersDecompressed(stream2, true); 215 QuicDataStreamPeer::SetHeadersDecompressed(stream2, true);
216 QuicDataStreamPeer::SetHeadersDecompressed(stream4, true); 216 QuicDataStreamPeer::SetHeadersDecompressed(stream4, true);
217 } 217 }
218 218
219 CheckClosedStreams(); 219 CheckClosedStreams();
220 CloseStream(4); 220 CloseStream(4);
221 CheckClosedStreams(); 221 CheckClosedStreams();
222 CloseStream(2); 222 CloseStream(2);
223 CheckClosedStreams(); 223 CheckClosedStreams();
224 } 224 }
225 225
226 TEST_P(QuicSessionTest, IsClosedStreamPeerCreated) { 226 TEST_P(QuicSessionTest, IsClosedStreamPeerCreated) {
227 QuicStreamId stream_id1 = GetParam() > QUIC_VERSION_12 ? 5 : 3; 227 QuicStreamId stream_id1 = GetParam() > QUIC_VERSION_12 ? 5 : 3;
228 QuicStreamId stream_id2 = stream_id1 + 2; 228 QuicStreamId stream_id2 = stream_id1 + 2;
229 QuicDataStream* stream1 = session_.GetIncomingReliableStream(stream_id1); 229 QuicDataStream* stream1 = session_.GetIncomingDataStream(stream_id1);
230 QuicDataStreamPeer::SetHeadersDecompressed(stream1, true); 230 QuicDataStreamPeer::SetHeadersDecompressed(stream1, true);
231 QuicDataStream* stream2 = session_.GetIncomingReliableStream(stream_id2); 231 QuicDataStream* stream2 = session_.GetIncomingDataStream(stream_id2);
232 QuicDataStreamPeer::SetHeadersDecompressed(stream2, true); 232 QuicDataStreamPeer::SetHeadersDecompressed(stream2, true);
233 233
234 CheckClosedStreams(); 234 CheckClosedStreams();
235 CloseStream(stream_id1); 235 CloseStream(stream_id1);
236 CheckClosedStreams(); 236 CheckClosedStreams();
237 CloseStream(stream_id2); 237 CloseStream(stream_id2);
238 // Create a stream explicitly, and another implicitly. 238 // Create a stream explicitly, and another implicitly.
239 QuicDataStream* stream3 = session_.GetIncomingReliableStream(stream_id2 + 4); 239 QuicDataStream* stream3 = session_.GetIncomingDataStream(stream_id2 + 4);
240 QuicDataStreamPeer::SetHeadersDecompressed(stream3, true); 240 QuicDataStreamPeer::SetHeadersDecompressed(stream3, true);
241 CheckClosedStreams(); 241 CheckClosedStreams();
242 // Close one, but make sure the other is still not closed 242 // Close one, but make sure the other is still not closed
243 CloseStream(stream3->id()); 243 CloseStream(stream3->id());
244 CheckClosedStreams(); 244 CheckClosedStreams();
245 } 245 }
246 246
247 TEST_P(QuicSessionTest, StreamIdTooLarge) { 247 TEST_P(QuicSessionTest, StreamIdTooLarge) {
248 QuicStreamId stream_id = GetParam() > QUIC_VERSION_12 ? 5 : 3; 248 QuicStreamId stream_id = GetParam() > QUIC_VERSION_12 ? 5 : 3;
249 session_.GetIncomingReliableStream(stream_id); 249 session_.GetIncomingDataStream(stream_id);
250 EXPECT_CALL(*connection_, SendConnectionClose(QUIC_INVALID_STREAM_ID)); 250 EXPECT_CALL(*connection_, SendConnectionClose(QUIC_INVALID_STREAM_ID));
251 session_.GetIncomingReliableStream(stream_id + 102); 251 session_.GetIncomingDataStream(stream_id + 102);
252 } 252 }
253 253
254 TEST_P(QuicSessionTest, DecompressionError) { 254 TEST_P(QuicSessionTest, DecompressionError) {
255 if (GetParam() > QUIC_VERSION_12) { 255 if (GetParam() > QUIC_VERSION_12) {
256 QuicHeadersStream* stream = QuicSessionPeer::GetHeadersStream(&session_); 256 QuicHeadersStream* stream = QuicSessionPeer::GetHeadersStream(&session_);
257 const unsigned char data[] = { 257 const unsigned char data[] = {
258 0x80, 0x03, 0x00, 0x01, // SPDY/3 SYN_STREAM frame 258 0x80, 0x03, 0x00, 0x01, // SPDY/3 SYN_STREAM frame
259 0x00, 0x00, 0x00, 0x25, // flags/length 259 0x00, 0x00, 0x00, 0x25, // flags/length
260 0x00, 0x00, 0x00, 0x05, // stream id 260 0x00, 0x00, 0x00, 0x05, // stream id
261 0x00, 0x00, 0x00, 0x00, // associated stream id 261 0x00, 0x00, 0x00, 0x00, // associated stream id
262 0x00, 0x00, 262 0x00, 0x00,
263 'a', 'b', 'c', 'd' // invalid compressed data 263 'a', 'b', 'c', 'd' // invalid compressed data
264 }; 264 };
265 EXPECT_CALL(*connection_, 265 EXPECT_CALL(*connection_,
266 SendConnectionCloseWithDetails(QUIC_INVALID_HEADERS_STREAM_DATA, 266 SendConnectionCloseWithDetails(QUIC_INVALID_HEADERS_STREAM_DATA,
267 "SPDY framing error.")); 267 "SPDY framing error."));
268 stream->ProcessRawData(reinterpret_cast<const char*>(data), 268 stream->ProcessRawData(reinterpret_cast<const char*>(data),
269 arraysize(data)); 269 arraysize(data));
270 } else { 270 } else {
271 ReliableQuicStream* stream = session_.GetIncomingReliableStream(3); 271 ReliableQuicStream* stream = session_.GetIncomingDataStream(3);
272 const char data[] = 272 const char data[] =
273 "\0\0\0\0" // priority 273 "\0\0\0\0" // priority
274 "\1\0\0\0" // headers id 274 "\1\0\0\0" // headers id
275 "\0\0\0\4" // length 275 "\0\0\0\4" // length
276 "abcd"; // invalid compressed data 276 "abcd"; // invalid compressed data
277 EXPECT_CALL(*connection_, SendConnectionClose(QUIC_DECOMPRESSION_FAILURE)); 277 EXPECT_CALL(*connection_, SendConnectionClose(QUIC_DECOMPRESSION_FAILURE));
278 stream->ProcessRawData(data, arraysize(data)); 278 stream->ProcessRawData(data, arraysize(data));
279 } 279 }
280 } 280 }
281 281
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 399
400 TEST_P(QuicSessionTest, SendGoAway) { 400 TEST_P(QuicSessionTest, SendGoAway) {
401 // After sending a GoAway, ensure new incoming streams cannot be created and 401 // After sending a GoAway, ensure new incoming streams cannot be created and
402 // result in a RST being sent. 402 // result in a RST being sent.
403 EXPECT_CALL(*connection_, 403 EXPECT_CALL(*connection_,
404 SendGoAway(QUIC_PEER_GOING_AWAY, 0u, "Going Away.")); 404 SendGoAway(QUIC_PEER_GOING_AWAY, 0u, "Going Away."));
405 session_.SendGoAway(QUIC_PEER_GOING_AWAY, "Going Away."); 405 session_.SendGoAway(QUIC_PEER_GOING_AWAY, "Going Away.");
406 EXPECT_TRUE(session_.goaway_sent()); 406 EXPECT_TRUE(session_.goaway_sent());
407 407
408 EXPECT_CALL(*connection_, SendRstStream(3u, QUIC_STREAM_PEER_GOING_AWAY)); 408 EXPECT_CALL(*connection_, SendRstStream(3u, QUIC_STREAM_PEER_GOING_AWAY));
409 EXPECT_FALSE(session_.GetIncomingReliableStream(3u)); 409 EXPECT_FALSE(session_.GetIncomingDataStream(3u));
410 } 410 }
411 411
412 TEST_P(QuicSessionTest, IncreasedTimeoutAfterCryptoHandshake) { 412 TEST_P(QuicSessionTest, IncreasedTimeoutAfterCryptoHandshake) {
413 EXPECT_EQ(kDefaultInitialTimeoutSecs, 413 EXPECT_EQ(kDefaultInitialTimeoutSecs,
414 QuicConnectionPeer::GetNetworkTimeout(connection_).ToSeconds()); 414 QuicConnectionPeer::GetNetworkTimeout(connection_).ToSeconds());
415 CryptoHandshakeMessage msg; 415 CryptoHandshakeMessage msg;
416 session_.crypto_stream_.OnHandshakeMessage(msg); 416 session_.crypto_stream_.OnHandshakeMessage(msg);
417 EXPECT_EQ(kDefaultTimeoutSecs, 417 EXPECT_EQ(kDefaultTimeoutSecs,
418 QuicConnectionPeer::GetNetworkTimeout(connection_).ToSeconds()); 418 QuicConnectionPeer::GetNetworkTimeout(connection_).ToSeconds());
419 } 419 }
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 } 504 }
505 505
506 QuicRstStreamFrame rst1(stream_id1, QUIC_STREAM_NO_ERROR); 506 QuicRstStreamFrame rst1(stream_id1, QUIC_STREAM_NO_ERROR);
507 session_.OnRstStream(rst1); 507 session_.OnRstStream(rst1);
508 EXPECT_EQ(0u, session_.GetNumOpenStreams()); 508 EXPECT_EQ(0u, session_.GetNumOpenStreams());
509 } 509 }
510 510
511 } // namespace 511 } // namespace
512 } // namespace test 512 } // namespace test
513 } // namespace net 513 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_session.cc ('k') | net/quic/test_tools/quic_session_peer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698