Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <algorithm> | 5 #include <algorithm> |
| 6 | 6 |
| 7 #include "base/strings/string_util.h" | 7 #include "base/strings/string_util.h" |
| 8 #include "net/http/http_util.h" | 8 #include "net/http/http_util.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 10 |
| (...skipping 1182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1193 EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230(std::string("\0", 1))); | 1193 EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230(std::string("\0", 1))); |
| 1194 EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230(std::string("q\0q", 3))); | 1194 EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230(std::string("q\0q", 3))); |
| 1195 EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230("q\rq")); | 1195 EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230("q\rq")); |
| 1196 EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230("q\nq")); | 1196 EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230("q\nq")); |
| 1197 EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230("q\x01q")); | 1197 EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230("q\x01q")); |
| 1198 EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230("q\x7fq")); | 1198 EXPECT_FALSE(HttpUtil::IsValidHeaderValueRFC7230("q\x7fq")); |
| 1199 | 1199 |
| 1200 EXPECT_TRUE(HttpUtil::IsValidHeaderValueRFC7230("q\x80q")); | 1200 EXPECT_TRUE(HttpUtil::IsValidHeaderValueRFC7230("q\x80q")); |
| 1201 } | 1201 } |
| 1202 | 1202 |
| 1203 TEST(HttpUtilTest, HasValidators) { | |
| 1204 const char* const kEmpty = ""; | |
| 1205 const char* const kEtagStrong = "\"strong\""; | |
| 1206 const char* const kEtagWeak = "W/\"weak\""; | |
| 1207 const char* const kLastModified = "Tue, 15 Nov 1994 12:45:26 GMT"; | |
| 1208 const char* const kLastModifiedInvalid = "invalid"; | |
| 1209 | |
| 1210 const HttpVersion v0_9 = HttpVersion(0, 9); | |
| 1211 EXPECT_FALSE(HttpUtil::HasValidators(v0_9, kEmpty, kEmpty)); | |
| 1212 EXPECT_FALSE(HttpUtil::HasValidators(v0_9, kEtagStrong, kEmpty)); | |
| 1213 EXPECT_FALSE(HttpUtil::HasValidators(v0_9, kEtagWeak, kEmpty)); | |
| 1214 | |
| 1215 EXPECT_FALSE(HttpUtil::HasValidators(v0_9, kEmpty, kLastModified)); | |
| 1216 EXPECT_FALSE(HttpUtil::HasValidators(v0_9, kEtagStrong, kLastModified)); | |
| 1217 EXPECT_FALSE(HttpUtil::HasValidators(v0_9, kEtagWeak, kLastModified)); | |
| 1218 | |
| 1219 EXPECT_FALSE(HttpUtil::HasValidators(v0_9, kEmpty, kLastModifiedInvalid)); | |
| 1220 EXPECT_FALSE( | |
| 1221 HttpUtil::HasValidators(v0_9, kEtagStrong, kLastModifiedInvalid)); | |
| 1222 EXPECT_FALSE(HttpUtil::HasValidators(v0_9, kEtagWeak, kLastModifiedInvalid)); | |
| 1223 | |
| 1224 const HttpVersion v1_0 = HttpVersion(1, 0); | |
| 1225 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
| |
| 1226 EXPECT_FALSE(HttpUtil::HasValidators(v1_0, kEtagStrong, kEmpty)); | |
| 1227 EXPECT_FALSE(HttpUtil::HasValidators(v1_0, kEtagWeak, kEmpty)); | |
| 1228 | |
| 1229 EXPECT_TRUE(HttpUtil::HasValidators(v1_0, kEmpty, kLastModified)); | |
| 1230 EXPECT_TRUE(HttpUtil::HasValidators(v1_0, kEtagStrong, kLastModified)); | |
| 1231 EXPECT_TRUE(HttpUtil::HasValidators(v1_0, kEtagWeak, kLastModified)); | |
| 1232 | |
| 1233 EXPECT_FALSE(HttpUtil::HasValidators(v1_0, kEmpty, kLastModifiedInvalid)); | |
| 1234 EXPECT_FALSE( | |
| 1235 HttpUtil::HasValidators(v1_0, kEtagStrong, kLastModifiedInvalid)); | |
| 1236 EXPECT_FALSE(HttpUtil::HasValidators(v1_0, kEtagWeak, kLastModifiedInvalid)); | |
| 1237 | |
| 1238 const HttpVersion v1_1 = HttpVersion(1, 1); | |
| 1239 EXPECT_FALSE(HttpUtil::HasValidators(v1_1, kEmpty, kEmpty)); | |
| 1240 EXPECT_TRUE(HttpUtil::HasValidators(v1_1, kEtagStrong, kEmpty)); | |
| 1241 EXPECT_TRUE(HttpUtil::HasValidators(v1_1, kEtagWeak, kEmpty)); | |
| 1242 | |
| 1243 EXPECT_TRUE(HttpUtil::HasValidators(v1_1, kEmpty, kLastModified)); | |
| 1244 EXPECT_TRUE(HttpUtil::HasValidators(v1_1, kEtagStrong, kLastModified)); | |
| 1245 EXPECT_TRUE(HttpUtil::HasValidators(v1_1, kEtagWeak, kLastModified)); | |
| 1246 | |
| 1247 EXPECT_FALSE(HttpUtil::HasValidators(v1_1, kEmpty, kLastModifiedInvalid)); | |
| 1248 EXPECT_TRUE(HttpUtil::HasValidators(v1_1, kEtagStrong, kLastModifiedInvalid)); | |
| 1249 EXPECT_TRUE(HttpUtil::HasValidators(v1_1, kEtagWeak, kLastModifiedInvalid)); | |
| 1250 } | |
| 1251 | |
| 1203 } // namespace net | 1252 } // namespace net |
| OLD | NEW |