Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Side by Side Diff: net/http/http_util_unittest.cc

Issue 1481143002: Added HttpUtils::HasValidators and HttpResponse::HasValidators (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed loops from the test cases Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« net/http/http_util.cc ('K') | « net/http/http_util.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
OLDNEW
« net/http/http_util.cc ('K') | « net/http/http_util.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698