| Index: net/spdy/spdy_session_unittest.cc
|
| diff --git a/net/spdy/spdy_session_unittest.cc b/net/spdy/spdy_session_unittest.cc
|
| index 1fa5f2e92c4b0a18d5624e395b0cf0f9d8178525..bd195162ef78642da8a8b8de52f5c47d36f2a913 100644
|
| --- a/net/spdy/spdy_session_unittest.cc
|
| +++ b/net/spdy/spdy_session_unittest.cc
|
| @@ -4952,6 +4952,33 @@ TEST_P(SpdySessionTest, CancelReservedStreamOnHeadersReceived) {
|
| data.RunFor(2);
|
| }
|
|
|
| +TEST_P(SpdySessionTest, RejectInvalidUnknownFrames) {
|
| + session_deps_.host_resolver->set_synchronous_mode(true);
|
| +
|
| + MockRead reads[] = {
|
| + MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever.
|
| + };
|
| +
|
| + StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0);
|
| +
|
| + MockConnect connect_data(SYNCHRONOUS, OK);
|
| + data.set_connect_data(connect_data);
|
| + session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| +
|
| + CreateNetworkSession();
|
| + base::WeakPtr<SpdySession> session =
|
| + CreateInsecureSpdySession(http_session_, key_, BoundNetLog());
|
| +
|
| + session->stream_hi_water_mark_ = 5;
|
| + // Low client (odd) ids are fine.
|
| + EXPECT_TRUE(session->OnUnknownFrame(3, 0));
|
| + // Client id exceeding watermark.
|
| + EXPECT_FALSE(session->OnUnknownFrame(9, 0));
|
| + // Currently we do not keep track of server initiated (even) ids.
|
| + EXPECT_TRUE(session->OnUnknownFrame(2, 0));
|
| + EXPECT_TRUE(session->OnUnknownFrame(8, 0));
|
| +}
|
| +
|
| TEST(MapFramerErrorToProtocolError, MapsValues) {
|
| CHECK_EQ(
|
| SPDY_ERROR_INVALID_CONTROL_FRAME,
|
|
|