summaryrefslogtreecommitdiff
path: root/chromium/net/third_party/quiche/src/quic/core/qpack/qpack_encoder_stream_sender_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/third_party/quiche/src/quic/core/qpack/qpack_encoder_stream_sender_test.cc')
-rw-r--r--chromium/net/third_party/quiche/src/quic/core/qpack/qpack_encoder_stream_sender_test.cc54
1 files changed, 40 insertions, 14 deletions
diff --git a/chromium/net/third_party/quiche/src/quic/core/qpack/qpack_encoder_stream_sender_test.cc b/chromium/net/third_party/quiche/src/quic/core/qpack/qpack_encoder_stream_sender_test.cc
index b3fd5f9de6a..ea45acc1abd 100644
--- a/chromium/net/third_party/quiche/src/quic/core/qpack/qpack_encoder_stream_sender_test.cc
+++ b/chromium/net/third_party/quiche/src/quic/core/qpack/qpack_encoder_stream_sender_test.cc
@@ -27,24 +27,29 @@ class QpackEncoderStreamSenderTest : public QuicTest {
};
TEST_F(QpackEncoderStreamSenderTest, InsertWithNameReference) {
+ EXPECT_EQ(0u, stream_.BufferedByteCount());
+
// Static, index fits in prefix, empty value.
std::string expected_encoded_data =
quiche::QuicheTextUtils::HexDecode("c500");
EXPECT_CALL(delegate_, WriteStreamData(Eq(expected_encoded_data)));
stream_.SendInsertWithNameReference(true, 5, "");
- EXPECT_EQ(expected_encoded_data.size(), stream_.Flush());
+ EXPECT_EQ(expected_encoded_data.size(), stream_.BufferedByteCount());
+ stream_.Flush();
// Static, index fits in prefix, Huffman encoded value.
expected_encoded_data = quiche::QuicheTextUtils::HexDecode("c28294e7");
EXPECT_CALL(delegate_, WriteStreamData(Eq(expected_encoded_data)));
stream_.SendInsertWithNameReference(true, 2, "foo");
- EXPECT_EQ(expected_encoded_data.size(), stream_.Flush());
+ EXPECT_EQ(expected_encoded_data.size(), stream_.BufferedByteCount());
+ stream_.Flush();
// Not static, index does not fit in prefix, not Huffman encoded value.
expected_encoded_data = quiche::QuicheTextUtils::HexDecode("bf4a03626172");
EXPECT_CALL(delegate_, WriteStreamData(Eq(expected_encoded_data)));
stream_.SendInsertWithNameReference(false, 137, "bar");
- EXPECT_EQ(expected_encoded_data.size(), stream_.Flush());
+ EXPECT_EQ(expected_encoded_data.size(), stream_.BufferedByteCount());
+ stream_.Flush();
// Value length does not fit in prefix.
// 'Z' would be Huffman encoded to 8 bits, so no Huffman encoding is used.
@@ -55,29 +60,35 @@ TEST_F(QpackEncoderStreamSenderTest, InsertWithNameReference) {
"5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a");
EXPECT_CALL(delegate_, WriteStreamData(Eq(expected_encoded_data)));
stream_.SendInsertWithNameReference(false, 42, std::string(127, 'Z'));
- EXPECT_EQ(expected_encoded_data.size(), stream_.Flush());
+ EXPECT_EQ(expected_encoded_data.size(), stream_.BufferedByteCount());
+ stream_.Flush();
}
TEST_F(QpackEncoderStreamSenderTest, InsertWithoutNameReference) {
+ EXPECT_EQ(0u, stream_.BufferedByteCount());
+
// Empty name and value.
std::string expected_encoded_data =
quiche::QuicheTextUtils::HexDecode("4000");
EXPECT_CALL(delegate_, WriteStreamData(Eq(expected_encoded_data)));
stream_.SendInsertWithoutNameReference("", "");
- EXPECT_EQ(expected_encoded_data.size(), stream_.Flush());
+ EXPECT_EQ(expected_encoded_data.size(), stream_.BufferedByteCount());
+ stream_.Flush();
// Huffman encoded short strings.
expected_encoded_data = quiche::QuicheTextUtils::HexDecode("6294e78294e7");
EXPECT_CALL(delegate_, WriteStreamData(Eq(expected_encoded_data)));
stream_.SendInsertWithoutNameReference("foo", "foo");
- EXPECT_EQ(expected_encoded_data.size(), stream_.Flush());
+ EXPECT_EQ(expected_encoded_data.size(), stream_.BufferedByteCount());
+ stream_.Flush();
// Not Huffman encoded short strings.
expected_encoded_data =
quiche::QuicheTextUtils::HexDecode("4362617203626172");
EXPECT_CALL(delegate_, WriteStreamData(Eq(expected_encoded_data)));
stream_.SendInsertWithoutNameReference("bar", "bar");
- EXPECT_EQ(expected_encoded_data.size(), stream_.Flush());
+ EXPECT_EQ(expected_encoded_data.size(), stream_.BufferedByteCount());
+ stream_.Flush();
// Not Huffman encoded long strings; length does not fit on prefix.
// 'Z' would be Huffman encoded to 8 bits, so no Huffman encoding is used.
@@ -90,35 +101,46 @@ TEST_F(QpackEncoderStreamSenderTest, InsertWithoutNameReference) {
EXPECT_CALL(delegate_, WriteStreamData(Eq(expected_encoded_data)));
stream_.SendInsertWithoutNameReference(std::string(31, 'Z'),
std::string(127, 'Z'));
- EXPECT_EQ(expected_encoded_data.size(), stream_.Flush());
+ EXPECT_EQ(expected_encoded_data.size(), stream_.BufferedByteCount());
+ stream_.Flush();
}
TEST_F(QpackEncoderStreamSenderTest, Duplicate) {
+ EXPECT_EQ(0u, stream_.BufferedByteCount());
+
// Small index fits in prefix.
std::string expected_encoded_data = quiche::QuicheTextUtils::HexDecode("11");
EXPECT_CALL(delegate_, WriteStreamData(Eq(expected_encoded_data)));
stream_.SendDuplicate(17);
- EXPECT_EQ(expected_encoded_data.size(), stream_.Flush());
+ EXPECT_EQ(expected_encoded_data.size(), stream_.BufferedByteCount());
+ stream_.Flush();
// Large index requires two extension bytes.
expected_encoded_data = quiche::QuicheTextUtils::HexDecode("1fd503");
EXPECT_CALL(delegate_, WriteStreamData(Eq(expected_encoded_data)));
stream_.SendDuplicate(500);
- EXPECT_EQ(expected_encoded_data.size(), stream_.Flush());
+ EXPECT_EQ(expected_encoded_data.size(), stream_.BufferedByteCount());
+ stream_.Flush();
}
TEST_F(QpackEncoderStreamSenderTest, SetDynamicTableCapacity) {
+ EXPECT_EQ(0u, stream_.BufferedByteCount());
+
// Small capacity fits in prefix.
std::string expected_encoded_data = quiche::QuicheTextUtils::HexDecode("31");
EXPECT_CALL(delegate_, WriteStreamData(Eq(expected_encoded_data)));
stream_.SendSetDynamicTableCapacity(17);
- EXPECT_EQ(expected_encoded_data.size(), stream_.Flush());
+ EXPECT_EQ(expected_encoded_data.size(), stream_.BufferedByteCount());
+ stream_.Flush();
+ EXPECT_EQ(0u, stream_.BufferedByteCount());
// Large capacity requires two extension bytes.
expected_encoded_data = quiche::QuicheTextUtils::HexDecode("3fd503");
EXPECT_CALL(delegate_, WriteStreamData(Eq(expected_encoded_data)));
stream_.SendSetDynamicTableCapacity(500);
- EXPECT_EQ(expected_encoded_data.size(), stream_.Flush());
+ EXPECT_EQ(expected_encoded_data.size(), stream_.BufferedByteCount());
+ stream_.Flush();
+ EXPECT_EQ(0u, stream_.BufferedByteCount());
}
// No writes should happen until Flush is called.
@@ -142,13 +164,17 @@ TEST_F(QpackEncoderStreamSenderTest, Coalesce) {
"11"); // Duplicate entry.
EXPECT_CALL(delegate_, WriteStreamData(Eq(expected_encoded_data)));
- EXPECT_EQ(expected_encoded_data.size(), stream_.Flush());
+ EXPECT_EQ(expected_encoded_data.size(), stream_.BufferedByteCount());
+ stream_.Flush();
+ EXPECT_EQ(0u, stream_.BufferedByteCount());
}
// No writes should happen if QpackEncoderStreamSender::Flush() is called
// when the buffer is empty.
TEST_F(QpackEncoderStreamSenderTest, FlushEmpty) {
- EXPECT_EQ(0u, stream_.Flush());
+ EXPECT_EQ(0u, stream_.BufferedByteCount());
+ stream_.Flush();
+ EXPECT_EQ(0u, stream_.BufferedByteCount());
}
} // namespace