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

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

Issue 314083002: parseHTTPHeaders should return the number of consumed bytes. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@async-initializer
Patch Set: Created 6 years, 6 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
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 "HTTPParsers.h" 6 #include "HTTPParsers.h"
7 7
8 #include "wtf/MathExtras.h" 8 #include "wtf/MathExtras.h"
9 #include "wtf/testing/WTFTestHelpers.h" 9 #include "wtf/testing/WTFTestHelpers.h"
10 #include "wtf/text/AtomicString.h" 10 #include "wtf/text/AtomicString.h"
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 EXPECT_TRUE(header.containsNoCache); 101 EXPECT_TRUE(header.containsNoCache);
102 EXPECT_FALSE(header.containsNoStore); 102 EXPECT_FALSE(header.containsNoStore);
103 EXPECT_FALSE(header.containsMustRevalidate); 103 EXPECT_FALSE(header.containsMustRevalidate);
104 EXPECT_TRUE(std::isnan(header.maxAge)); 104 EXPECT_TRUE(std::isnan(header.maxAge));
105 } 105 }
106 106
107 TEST(HTTPParsersTest, parseHTTPHeaderSimple) 107 TEST(HTTPParsersTest, parseHTTPHeaderSimple)
108 { 108 {
109 String failureReason; 109 String failureReason;
110 AtomicString name, value; 110 AtomicString name, value;
111 EXPECT_EQ(11u, parseHTTPHeader("foo: bar\r\notherdata", failureReason, nam e, value)); 111 EXPECT_EQ(12u, parseHTTPHeader("foo: bar\r\notherdata", failureReason, nam e, value));
112 EXPECT_TRUE(failureReason.isEmpty()); 112 EXPECT_TRUE(failureReason.isEmpty());
113 EXPECT_EQ("foo", name.string()); 113 EXPECT_EQ("foo", name.string());
114 EXPECT_EQ("bar", value.string()); 114 EXPECT_EQ("bar", value.string());
115 } 115 }
116 116
117 TEST(HTTPParsersTest, parseHTTPHeaderEmptyName) 117 TEST(HTTPParsersTest, parseHTTPHeaderEmptyName)
118 { 118 {
119 String failureReason; 119 String failureReason;
120 AtomicString name, value; 120 AtomicString name, value;
121 EXPECT_EQ(0u, parseHTTPHeader(": bar\r\notherdata", failureReason, name, val ue)); 121 EXPECT_EQ(0u, parseHTTPHeader(": bar\r\notherdata", failureReason, name, val ue));
122 EXPECT_EQ("Header name is missing", failureReason); 122 EXPECT_EQ("Header name is missing", failureReason);
123 } 123 }
124 124
125 TEST(HTTPParsersTest, parseHTTPHeaderEmptyValue) 125 TEST(HTTPParsersTest, parseHTTPHeaderEmptyValue)
126 { 126 {
127 String failureReason; 127 String failureReason;
128 AtomicString name, value; 128 AtomicString name, value;
129 EXPECT_EQ(6u, parseHTTPHeader("foo: \r\notherdata", failureReason, name, val ue)); 129 EXPECT_EQ(7u, parseHTTPHeader("foo: \r\notherdata", failureReason, name, val ue));
130 EXPECT_TRUE(failureReason.isEmpty()); 130 EXPECT_TRUE(failureReason.isEmpty());
131 EXPECT_EQ("foo", name.string()); 131 EXPECT_EQ("foo", name.string());
132 EXPECT_TRUE(value.isEmpty()); 132 EXPECT_TRUE(value.isEmpty());
133 } 133 }
134 134
135 TEST(HTTPParsersTest, parseHTTPHeaderInvalidName) 135 TEST(HTTPParsersTest, parseHTTPHeaderInvalidName)
136 { 136 {
137 String failureReason; 137 String failureReason;
138 AtomicString name, value; 138 AtomicString name, value;
139 EXPECT_EQ(0u, parseHTTPHeader("\xfa: \r\notherdata", failureReason, name, va lue)); 139 EXPECT_EQ(0u, parseHTTPHeader("\xfa: \r\notherdata", failureReason, name, va lue));
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 EXPECT_EQ(0u, parseHTTPHeader("foo: bar\rhoge\r\n", failureReason, name, val ue)); 205 EXPECT_EQ(0u, parseHTTPHeader("foo: bar\rhoge\r\n", failureReason, name, val ue));
206 EXPECT_EQ("LF doesn't follow CR after value at hoge\r\n", failureReason); 206 EXPECT_EQ("LF doesn't follow CR after value at hoge\r\n", failureReason);
207 } 207 }
208 208
209 TEST(HTTPParsersTest, parseHTTPHeaderTwoLines) 209 TEST(HTTPParsersTest, parseHTTPHeaderTwoLines)
210 { 210 {
211 const char data[] = "foo: bar\r\nhoge: fuga\r\nxxx"; 211 const char data[] = "foo: bar\r\nhoge: fuga\r\nxxx";
212 String failureReason; 212 String failureReason;
213 AtomicString name, value; 213 AtomicString name, value;
214 214
215 EXPECT_EQ(9u, parseHTTPHeader(data, failureReason, name, value)); 215 EXPECT_EQ(10u, parseHTTPHeader(data, failureReason, name, value));
216 EXPECT_TRUE(failureReason.isEmpty()); 216 EXPECT_TRUE(failureReason.isEmpty());
217 EXPECT_EQ("foo", name.string()); 217 EXPECT_EQ("foo", name.string());
218 EXPECT_EQ("bar", value.string()); 218 EXPECT_EQ("bar", value.string());
219 219
220 EXPECT_EQ(11u, parseHTTPHeader(data + 10, failureReason, name, value)); 220 EXPECT_EQ(12u, parseHTTPHeader(data + 10, failureReason, name, value));
221 EXPECT_TRUE(failureReason.isEmpty()); 221 EXPECT_TRUE(failureReason.isEmpty());
222 EXPECT_EQ("hoge", name.string()); 222 EXPECT_EQ("hoge", name.string());
223 EXPECT_EQ("fuga", value.string()); 223 EXPECT_EQ("fuga", value.string());
224 } 224 }
225 225
226 } // namespace WebCore 226 } // namespace WebCore
227 227
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698