Add test to ensure that a push promise on a control stream closes the connection.
PiperOrigin-RevId: 254464587
Change-Id: Ie60521fb0e5a040635ed59db907a755703bb14b5
diff --git a/quic/core/http/quic_receive_control_stream_test.cc b/quic/core/http/quic_receive_control_stream_test.cc
index e0acf89..94456a9 100644
--- a/quic/core/http/quic_receive_control_stream_test.cc
+++ b/quic/core/http/quic_receive_control_stream_test.cc
@@ -13,6 +13,7 @@
namespace {
using ::testing::_;
+using ::testing::AtLeast;
using ::testing::StrictMock;
struct TestParams {
@@ -154,6 +155,22 @@
receive_control_stream_->OnStreamFrame(frame);
}
+TEST_P(QuicReceiveControlStreamTest, PushPromiseOnControlStreamShouldClose) {
+ PushPromiseFrame push_promise;
+ push_promise.push_id = 0x01;
+ push_promise.headers = "Headers";
+ std::unique_ptr<char[]> buffer;
+ HttpEncoder encoder;
+ uint64_t length =
+ encoder.SerializePushPromiseFrameWithOnlyPushId(push_promise, &buffer);
+ QuicStreamFrame frame(receive_control_stream_->id(), false, 0, buffer.get(),
+ length);
+ // TODO(lassey) Check for HTTP_WRONG_STREAM error code.
+ EXPECT_CALL(*connection_, CloseConnection(QUIC_HTTP_DECODER_ERROR, _, _))
+ .Times(AtLeast(1));
+ receive_control_stream_->OnStreamFrame(frame);
+}
+
} // namespace
} // namespace test
} // namespace quic