Adds a unit test demonstrating that SpdyHeaderBlock can store header names containing uppercase characters. PiperOrigin-RevId: 282577211 Change-Id: I090e6483aa634837bda8501833a0361a20085afb
diff --git a/spdy/core/spdy_header_block_test.cc b/spdy/core/spdy_header_block_test.cc index c34b718..56facb4 100644 --- a/spdy/core/spdy_header_block_test.cc +++ b/spdy/core/spdy_header_block_test.cc
@@ -177,6 +177,21 @@ EXPECT_EQ("singleton", block["h4"]); } +// This test demonstrates that the SpdyHeaderBlock data structure does not place +// any limitations on the characters present in the header names. +TEST(SpdyHeaderBlockTest, UpperCaseNames) { + SpdyHeaderBlock block; + block["Foo"] = "foo"; + block.AppendValueOrAddHeader("Foo", "bar"); + EXPECT_EQ(block.end(), block.find("foo")); + EXPECT_EQ(Pair("Foo", std::string("foo\0bar", 7)), *block.find("Foo")); + + // The map is case sensitive, so both "Foo" and "foo" can be present. + block.AppendValueOrAddHeader("foo", "baz"); + EXPECT_THAT(block, ElementsAre(Pair("Foo", std::string("foo\0bar", 7)), + Pair("foo", "baz"))); +} + TEST(JoinTest, JoinEmpty) { std::vector<SpdyStringPiece> empty; SpdyStringPiece separator = ", ";