Call BlockingManager methods from QpackEncoder when decoder stream instructions arrive.
gfe-relnote: n/a, change to QUIC v99-only code. Protected by existing disabled gfe2_reloadable_flag_quic_enable_version_99.
PiperOrigin-RevId: 263348337
Change-Id: I038980c82747e7b25e1af273697531519ca6fac8
diff --git a/quic/core/qpack/qpack_encoder_test.cc b/quic/core/qpack/qpack_encoder_test.cc
index bf5116e..56cfe84 100644
--- a/quic/core/qpack/qpack_encoder_test.cc
+++ b/quic/core/qpack/qpack_encoder_test.cc
@@ -152,6 +152,34 @@
output);
}
+TEST_F(QpackEncoderTest, ZeroInsertCountIncrement) {
+ // Encoder receives insert count increment with forbidden value 0.
+ EXPECT_CALL(decoder_stream_error_delegate_,
+ OnDecoderStreamError(Eq("Invalid increment value 0.")));
+ encoder_.OnInsertCountIncrement(0);
+}
+
+TEST_F(QpackEncoderTest, TooLargeInsertCountIncrement) {
+ // Encoder receives insert count increment with value that increases Known
+ // Received Count to a value (one) which is larger than the number of dynamic
+ // table insertions sent (zero).
+ EXPECT_CALL(
+ decoder_stream_error_delegate_,
+ OnDecoderStreamError(Eq("Increment value 1 raises known received count "
+ "to 1 exceeding inserted entry count 0")));
+ encoder_.OnInsertCountIncrement(1);
+}
+
+TEST_F(QpackEncoderTest, InvalidHeaderAcknowledgement) {
+ // Encoder receives header acknowledgement for a stream on which no header
+ // block with dynamic table entries was ever sent.
+ EXPECT_CALL(
+ decoder_stream_error_delegate_,
+ OnDecoderStreamError(Eq("Header Acknowledgement received for stream 0 "
+ "with no outstanding header blocks.")));
+ encoder_.OnHeaderAcknowledgement(/* stream_id = */ 0);
+}
+
} // namespace
} // namespace test
} // namespace quic