Index: net/spdy/hpack_encoder_test.cc |
diff --git a/net/spdy/hpack_encoder_test.cc b/net/spdy/hpack_encoder_test.cc |
index 316952edd0dcbd4fe4e91f628b5e3b0cb59ffc46..da9bff5a7c4a5444ad4aea29e2e39f2d121ca9de 100644 |
--- a/net/spdy/hpack_encoder_test.cc |
+++ b/net/spdy/hpack_encoder_test.cc |
@@ -23,6 +23,9 @@ class HpackEncoderPeer { |
explicit HpackEncoderPeer(HpackEncoder* encoder) |
: encoder_(encoder) {} |
+ void UpdateCharacterCounts(StringPiece str) { |
+ encoder_->UpdateCharacterCounts(str); |
+ } |
void set_max_string_literal_size(uint32 size) { |
encoder_->max_string_literal_size_ = size; |
} |
@@ -112,6 +115,30 @@ TEST(HpackEncoderTest, HeaderTooLarge) { |
EXPECT_FALSE(encoder.EncodeHeaderSet(header_set, &encoded_header_set)); |
} |
+TEST(HpackEncoderTest, UpdateCharacterCounts) { |
+ HpackEncoder encoder; |
+ test::HpackEncoderPeer peer(&encoder); |
+ |
+ std::vector<size_t> counts(256, 0); |
+ size_t total_counts = 0; |
+ encoder.SetCharCountsStorage(&counts, &total_counts); |
+ |
+ char kTestString[] = "foo\0\1\xff""boo"; |
+ peer.UpdateCharacterCounts( |
+ StringPiece(kTestString, arraysize(kTestString) - 1)); |
+ |
+ std::vector<size_t> expect(256, 0); |
+ expect[static_cast<uint8>('f')] = 1; |
+ expect[static_cast<uint8>('o')] = 4; |
+ expect[static_cast<uint8>('\0')] = 1; |
+ expect[static_cast<uint8>('\1')] = 1; |
+ expect[static_cast<uint8>('\xff')] = 1; |
+ expect[static_cast<uint8>('b')] = 1; |
+ |
+ EXPECT_EQ(expect, counts); |
+ EXPECT_EQ(9u, total_counts); |
+} |
+ |
} // namespace |
} // namespace net |