Add a test to ensure that a push promise to the server closes the connection. PiperOrigin-RevId: 255077482 Change-Id: I95b80cc5733030d3a71740231db60a98d9127a76
diff --git a/quic/core/http/quic_headers_stream_test.cc b/quic/core/http/quic_headers_stream_test.cc index 68d32de..3b536ef 100644 --- a/quic/core/http/quic_headers_stream_test.cc +++ b/quic/core/http/quic_headers_stream_test.cc
@@ -1005,6 +1005,22 @@ EXPECT_EQ(17u, newly_acked_length); } +TEST_P(QuicHeadersStreamTest, CloseOnPushPromiseToServer) { + if (perspective() == Perspective::IS_CLIENT) { + return; + } + QuicStreamId promised_id = 1; + SpdyPushPromiseIR push_promise(client_id_1_, promised_id, headers_.Clone()); + SpdySerializedFrame frame = framer_->SerializeFrame(push_promise); + stream_frame_.data_buffer = frame.data(); + stream_frame_.data_length = frame.size(); + EXPECT_CALL(session_, OnStreamHeaderList(_, _, _, _)); + // TODO(lassey): Check for HTTP_WRONG_STREAM error code. + EXPECT_CALL(*connection_, CloseConnection(QUIC_INVALID_HEADERS_STREAM_DATA, + "PUSH_PROMISE not supported.", _)); + headers_stream_->OnStreamFrame(stream_frame_); +} + } // namespace } // namespace test } // namespace quic