Index: net/quic/quic_session_test.cc |
diff --git a/net/quic/quic_session_test.cc b/net/quic/quic_session_test.cc |
index 8e2876455a5dafff65cb6ac81fc963f1b4642a4e..7c3520c4595a75ed34bd8d974cbaa5678d4d2b5b 100644 |
--- a/net/quic/quic_session_test.cc |
+++ b/net/quic/quic_session_test.cc |
@@ -457,6 +457,24 @@ TEST_F(QuicSessionTest, ZombieStreamConnectionClose) { |
EXPECT_EQ(0u, session.GetNumOpenStreams()); |
} |
+TEST_F(QuicSessionTest, RstStreamBeforeHeadersDecompressed) { |
+ // Send two bytes of payload. |
+ QuicStreamFrame data1(3, false, 0, MakeIOVector("HT")); |
+ vector<QuicStreamFrame> frames; |
+ frames.push_back(data1); |
+ EXPECT_TRUE(session_.OnStreamFrames(frames)); |
+ EXPECT_EQ(1u, session_.GetNumOpenStreams()); |
+ |
+ // Send a reset before the headers have been decompressed. This causes |
+ // an unrecoverable compression context state. |
+ EXPECT_CALL(*connection_, SendConnectionClose( |
+ QUIC_STREAM_RST_BEFORE_HEADERS_DECOMPRESSED)); |
+ |
+ QuicRstStreamFrame rst1(3, QUIC_STREAM_NO_ERROR); |
+ session_.OnRstStream(rst1); |
+ EXPECT_EQ(0u, session_.GetNumOpenStreams()); |
+} |
+ |
} // namespace |
} // namespace test |
} // namespace net |