Index: net/http/http_util_unittest.cc |
diff --git a/net/http/http_util_unittest.cc b/net/http/http_util_unittest.cc |
index a5c984db66b1f5e46798036e8c1ac3758fab9f81..f1485e6ddedfdf3129e2159ff53d2a4cefad45b2 100644 |
--- a/net/http/http_util_unittest.cc |
+++ b/net/http/http_util_unittest.cc |
@@ -1178,4 +1178,27 @@ TEST(HttpUtilTest, NameValuePairsIteratorMissingEndQuote) { |
&parser, false, true, std::string(), std::string())); |
} |
+TEST(HttpUtilTest, IsValidHeaderValueRFC7230) { |
+ EXPECT_TRUE(HttpUtil::IsValidHeaderValueRFC7230("")); |
+ |
+ EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230(" ")); |
+ EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230(" q")); |
+ EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230("q ")); |
+ EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230("\t")); |
+ EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230("\tq")); |
+ EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230("q\t")); |
+ |
+ EXPECT_TRUE(HttpUtil::IsValidHeaderValueRFC7230("q q")); |
+ EXPECT_TRUE(HttpUtil::IsValidHeaderValueRFC7230("q\tq")); |
+ |
+ EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230(std::string("\0", 1))); |
+ EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230(std::string("q\0q", 3))); |
+ EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230("q\rq")); |
+ EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230("q\nq")); |
+ EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230("q\x01q")); |
+ EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230("q\x7fq")); |
+ |
+ EXPECT_TRUE(HttpUtil::IsValidHeaderValueRFC7230("q\x80q")); |
+} |
+ |
} // namespace net |