Chromium Code Reviews| Index: net/http/http_util_unittest.cc |
| diff --git a/net/http/http_util_unittest.cc b/net/http/http_util_unittest.cc |
| index e83f6b9916362a4a65391e39e2f1ee4594d380ac..276fef9d89fc00e1d5bac73939fa9a289b4000a8 100644 |
| --- a/net/http/http_util_unittest.cc |
| +++ b/net/http/http_util_unittest.cc |
| @@ -1200,4 +1200,53 @@ TEST(HttpUtilTest, IsValidHeaderValueRFC7230) { |
| EXPECT_TRUE(HttpUtil::IsValidHeaderValueRFC7230("q\x80q")); |
| } |
| +TEST(HttpUtilTest, HasValidators) { |
| + const char* const kEmpty = ""; |
| + const char* const kEtagStrong = "\"strong\""; |
| + const char* const kEtagWeak = "W/\"weak\""; |
| + const char* const kLastModified = "Tue, 15 Nov 1994 12:45:26 GMT"; |
| + const char* const kLastModifiedInvalid = "invalid"; |
| + |
| + const HttpVersion v0_9 = HttpVersion(0, 9); |
| + EXPECT_FALSE(HttpUtil::HasValidators(v0_9, kEmpty, kEmpty)); |
| + EXPECT_FALSE(HttpUtil::HasValidators(v0_9, kEtagStrong, kEmpty)); |
| + EXPECT_FALSE(HttpUtil::HasValidators(v0_9, kEtagWeak, kEmpty)); |
| + |
| + EXPECT_FALSE(HttpUtil::HasValidators(v0_9, kEmpty, kLastModified)); |
| + EXPECT_FALSE(HttpUtil::HasValidators(v0_9, kEtagStrong, kLastModified)); |
| + EXPECT_FALSE(HttpUtil::HasValidators(v0_9, kEtagWeak, kLastModified)); |
| + |
| + EXPECT_FALSE(HttpUtil::HasValidators(v0_9, kEmpty, kLastModifiedInvalid)); |
| + EXPECT_FALSE( |
| + HttpUtil::HasValidators(v0_9, kEtagStrong, kLastModifiedInvalid)); |
| + EXPECT_FALSE(HttpUtil::HasValidators(v0_9, kEtagWeak, kLastModifiedInvalid)); |
| + |
| + const HttpVersion v1_0 = HttpVersion(1, 0); |
| + EXPECT_FALSE(HttpUtil::HasValidators(v1_0, kEmpty, kEmpty)); |
|
gavinp
2016/02/25 18:56:20
Is an empty ETag the same as a not-present ETag fo
jamartin
2016/02/26 14:47:50
Good question. This is a tricky one that took me s
|
| + EXPECT_FALSE(HttpUtil::HasValidators(v1_0, kEtagStrong, kEmpty)); |
| + EXPECT_FALSE(HttpUtil::HasValidators(v1_0, kEtagWeak, kEmpty)); |
| + |
| + EXPECT_TRUE(HttpUtil::HasValidators(v1_0, kEmpty, kLastModified)); |
| + EXPECT_TRUE(HttpUtil::HasValidators(v1_0, kEtagStrong, kLastModified)); |
| + EXPECT_TRUE(HttpUtil::HasValidators(v1_0, kEtagWeak, kLastModified)); |
| + |
| + EXPECT_FALSE(HttpUtil::HasValidators(v1_0, kEmpty, kLastModifiedInvalid)); |
| + EXPECT_FALSE( |
| + HttpUtil::HasValidators(v1_0, kEtagStrong, kLastModifiedInvalid)); |
| + EXPECT_FALSE(HttpUtil::HasValidators(v1_0, kEtagWeak, kLastModifiedInvalid)); |
| + |
| + const HttpVersion v1_1 = HttpVersion(1, 1); |
| + EXPECT_FALSE(HttpUtil::HasValidators(v1_1, kEmpty, kEmpty)); |
| + EXPECT_TRUE(HttpUtil::HasValidators(v1_1, kEtagStrong, kEmpty)); |
| + EXPECT_TRUE(HttpUtil::HasValidators(v1_1, kEtagWeak, kEmpty)); |
| + |
| + EXPECT_TRUE(HttpUtil::HasValidators(v1_1, kEmpty, kLastModified)); |
| + EXPECT_TRUE(HttpUtil::HasValidators(v1_1, kEtagStrong, kLastModified)); |
| + EXPECT_TRUE(HttpUtil::HasValidators(v1_1, kEtagWeak, kLastModified)); |
| + |
| + EXPECT_FALSE(HttpUtil::HasValidators(v1_1, kEmpty, kLastModifiedInvalid)); |
| + EXPECT_TRUE(HttpUtil::HasValidators(v1_1, kEtagStrong, kLastModifiedInvalid)); |
| + EXPECT_TRUE(HttpUtil::HasValidators(v1_1, kEtagWeak, kLastModifiedInvalid)); |
| +} |
| + |
| } // namespace net |