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

Side by Side Diff: third_party/WebKit/Source/platform/network/HTTPParsersTest.cpp

Issue 1460883003: Drop unused functions in HTTPParsers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 1 month 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
« no previous file with comments | « third_party/WebKit/Source/platform/network/HTTPParsers.cpp ('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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "config.h" 5 #include "config.h"
6 #include "platform/network/HTTPParsers.h" 6 #include "platform/network/HTTPParsers.h"
7 7
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "wtf/MathExtras.h" 9 #include "wtf/MathExtras.h"
10 #include "wtf/text/AtomicString.h" 10 #include "wtf/text/AtomicString.h"
11 11
12 namespace blink { 12 namespace blink {
13 13
14 namespace {
15
16 size_t parseHTTPHeader(const char* data, String& failureReason, AtomicString& na meStr, AtomicString& valueStr)
17 {
18 return blink::parseHTTPHeader(data, strlen(data), failureReason, nameStr, va lueStr);
19 }
20
21 } // namespace
22
23 TEST(HTTPParsersTest, ParseCacheControl) 14 TEST(HTTPParsersTest, ParseCacheControl)
24 { 15 {
25 CacheControlHeader header; 16 CacheControlHeader header;
26 17
27 header = parseCacheControlDirectives("no-cache", AtomicString()); 18 header = parseCacheControlDirectives("no-cache", AtomicString());
28 EXPECT_TRUE(header.parsed); 19 EXPECT_TRUE(header.parsed);
29 EXPECT_TRUE(header.containsNoCache); 20 EXPECT_TRUE(header.containsNoCache);
30 EXPECT_FALSE(header.containsNoStore); 21 EXPECT_FALSE(header.containsNoStore);
31 EXPECT_FALSE(header.containsMustRevalidate); 22 EXPECT_FALSE(header.containsMustRevalidate);
32 EXPECT_TRUE(std::isnan(header.maxAge)); 23 EXPECT_TRUE(std::isnan(header.maxAge));
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 EXPECT_TRUE(std::isnan(header.maxAge)); 86 EXPECT_TRUE(std::isnan(header.maxAge));
96 87
97 header = parseCacheControlDirectives(AtomicString(), "no-cache"); 88 header = parseCacheControlDirectives(AtomicString(), "no-cache");
98 EXPECT_TRUE(header.parsed); 89 EXPECT_TRUE(header.parsed);
99 EXPECT_TRUE(header.containsNoCache); 90 EXPECT_TRUE(header.containsNoCache);
100 EXPECT_FALSE(header.containsNoStore); 91 EXPECT_FALSE(header.containsNoStore);
101 EXPECT_FALSE(header.containsMustRevalidate); 92 EXPECT_FALSE(header.containsMustRevalidate);
102 EXPECT_TRUE(std::isnan(header.maxAge)); 93 EXPECT_TRUE(std::isnan(header.maxAge));
103 } 94 }
104 95
105 TEST(HTTPParsersTest, parseHTTPHeaderSimple)
106 {
107 String failureReason;
108 AtomicString name, value;
109 EXPECT_EQ(12u, parseHTTPHeader("foo: bar\r\notherdata", failureReason, nam e, value));
110 EXPECT_TRUE(failureReason.isEmpty());
111 EXPECT_EQ("foo", name.string());
112 EXPECT_EQ("bar", value.string());
113 }
114
115 TEST(HTTPParsersTest, parseHTTPHeaderEmptyName)
116 {
117 String failureReason;
118 AtomicString name, value;
119 EXPECT_EQ(0u, parseHTTPHeader(": bar\r\notherdata", failureReason, name, val ue));
120 EXPECT_EQ("Header name is missing", failureReason);
121 }
122
123 TEST(HTTPParsersTest, parseHTTPHeaderEmptyValue)
124 {
125 String failureReason;
126 AtomicString name, value;
127 EXPECT_EQ(7u, parseHTTPHeader("foo: \r\notherdata", failureReason, name, val ue));
128 EXPECT_TRUE(failureReason.isEmpty());
129 EXPECT_EQ("foo", name.string());
130 EXPECT_TRUE(value.isEmpty());
131 }
132
133 TEST(HTTPParsersTest, parseHTTPHeaderInvalidName)
134 {
135 String failureReason;
136 AtomicString name, value;
137 EXPECT_EQ(0u, parseHTTPHeader("\xfa: \r\notherdata", failureReason, name, va lue));
138 EXPECT_EQ("Invalid UTF-8 sequence in header name", failureReason);
139 }
140
141 TEST(HTTPParsersTest, parseHTTPHeaderInvalidValue)
142 {
143 String failureReason;
144 AtomicString name, value;
145 EXPECT_EQ(0u, parseHTTPHeader("foo: \xfa\r\notherdata", failureReason, name, value));
146 EXPECT_EQ("Invalid UTF-8 sequence in header value", failureReason);
147 }
148
149 TEST(HTTPParsersTest, parseHTTPHeaderEmpty)
150 {
151 String failureReason;
152 AtomicString name, value;
153 EXPECT_EQ(0u, parseHTTPHeader("", failureReason, name, value));
154 EXPECT_EQ("Unterminated header name", failureReason);
155 }
156
157 TEST(HTTPParsersTest, parseHTTPHeaderEmptyLine)
158 {
159 String failureReason;
160 AtomicString name, value;
161 EXPECT_EQ(2u, parseHTTPHeader("\r\notherdata", failureReason, name, value));
162 EXPECT_TRUE(failureReason.isEmpty());
163 EXPECT_TRUE(name.isNull());
164 EXPECT_TRUE(value.isNull());
165 }
166
167 TEST(HTTPParsersTest, parseHTTPHeaderUnexpectedCRinName)
168 {
169 String failureReason;
170 AtomicString name, value;
171 EXPECT_EQ(0u, parseHTTPHeader("foo\rotherdata\n", failureReason, name, value ));
172 EXPECT_EQ("Unexpected CR in name at foo", failureReason);
173 }
174
175 TEST(HTTPParsersTest, parseHTTPHeaderUnexpectedLFinName)
176 {
177 String failureReason;
178 AtomicString name, value;
179 EXPECT_EQ(0u, parseHTTPHeader("foo\notherdata\n", failureReason, name, value ));
180 EXPECT_EQ("Unexpected LF in name at foo", failureReason);
181 }
182
183 TEST(HTTPParsersTest, parseHTTPHeaderUnexpectedLFinValue)
184 {
185 String failureReason;
186 AtomicString name, value;
187 EXPECT_EQ(0u, parseHTTPHeader("foo: bar\notherdata\n", failureReason, name, value));
188 EXPECT_EQ("Unexpected LF in value at bar", failureReason);
189 }
190
191 TEST(HTTPParsersTest, parseHTTPHeaderNoLFAtEndOfLine)
192 {
193 String failureReason;
194 AtomicString name, value;
195 EXPECT_EQ(0u, parseHTTPHeader("foo: bar\r", failureReason, name, value));
196 EXPECT_EQ("LF doesn't follow CR after value at ", failureReason);
197 }
198
199 TEST(HTTPParsersTest, parseHTTPHeaderNoLF)
200 {
201 String failureReason;
202 AtomicString name, value;
203 EXPECT_EQ(0u, parseHTTPHeader("foo: bar\rhoge\r\n", failureReason, name, val ue));
204 EXPECT_EQ("LF doesn't follow CR after value at hoge\r\n", failureReason);
205 }
206
207 TEST(HTTPParsersTest, parseHTTPHeaderTwoLines)
208 {
209 const char data[] = "foo: bar\r\nhoge: fuga\r\nxxx";
210 String failureReason;
211 AtomicString name, value;
212
213 EXPECT_EQ(10u, parseHTTPHeader(data, failureReason, name, value));
214 EXPECT_TRUE(failureReason.isEmpty());
215 EXPECT_EQ("foo", name.string());
216 EXPECT_EQ("bar", value.string());
217
218 EXPECT_EQ(12u, parseHTTPHeader(data + 10, failureReason, name, value));
219 EXPECT_TRUE(failureReason.isEmpty());
220 EXPECT_EQ("hoge", name.string());
221 EXPECT_EQ("fuga", value.string());
222 }
223
224 TEST(HTTPParsersTest, CommaDelimitedHeaderSet) 96 TEST(HTTPParsersTest, CommaDelimitedHeaderSet)
225 { 97 {
226 CommaDelimitedHeaderSet set1; 98 CommaDelimitedHeaderSet set1;
227 CommaDelimitedHeaderSet set2; 99 CommaDelimitedHeaderSet set2;
228 parseCommaDelimitedHeader("dpr, rw, whatever", set1); 100 parseCommaDelimitedHeader("dpr, rw, whatever", set1);
229 EXPECT_TRUE(set1.contains("dpr")); 101 EXPECT_TRUE(set1.contains("dpr"));
230 EXPECT_TRUE(set1.contains("rw")); 102 EXPECT_TRUE(set1.contains("rw"));
231 EXPECT_TRUE(set1.contains("whatever")); 103 EXPECT_TRUE(set1.contains("whatever"));
232 parseCommaDelimitedHeader("dprw\t , fo\to", set2); 104 parseCommaDelimitedHeader("dprw\t , fo\to", set2);
233 EXPECT_FALSE(set2.contains("dpr")); 105 EXPECT_FALSE(set2.contains("dpr"));
(...skipping 22 matching lines...) Expand all
256 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230("t ")); 128 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230("t "));
257 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String("t\0t", 3))); 129 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String("t\0t", 3)));
258 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String("\0", 1))); 130 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String("\0", 1)));
259 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String("test \0, 6"))); 131 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String("test \0, 6")));
260 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String("test "))); 132 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String("test ")));
261 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230("test\r\n data")); 133 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230("test\r\n data"));
262 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String(hiraganaA))); 134 EXPECT_FALSE(blink::isValidHTTPFieldContentRFC7230(String(hiraganaA)));
263 } 135 }
264 136
265 } // namespace blink 137 } // namespace blink
266
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/network/HTTPParsers.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698