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

Side by Side Diff: net/quic/core/spdy_utils_test.cc

Issue 2740453006: Add QuicStringPiece which is actually StringPiece. (Closed)
Patch Set: fix compile error and rebase Created 3 years, 9 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
« no previous file with comments | « net/quic/core/spdy_utils.cc ('k') | net/quic/platform/api/quic_hostname_utils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #include "net/quic/core/spdy_utils.h" 4 #include "net/quic/core/spdy_utils.h"
5 5
6 #include "base/macros.h" 6 #include "base/macros.h"
7 #include "base/strings/string_piece.h" 7 #include "net/quic/platform/api/quic_string_piece.h"
8 #include "net/quic/platform/api/quic_text_utils.h" 8 #include "net/quic/platform/api/quic_text_utils.h"
9 #include "net/test/gtest_util.h" 9 #include "net/test/gtest_util.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 11
12 using base::StringPiece;
13 using std::string; 12 using std::string;
14 using testing::UnorderedElementsAre; 13 using testing::UnorderedElementsAre;
15 using testing::Pair; 14 using testing::Pair;
16 15
17 namespace net { 16 namespace net {
18 namespace test { 17 namespace test {
19 18
20 TEST(SpdyUtilsTest, SerializeAndParseHeaders) { 19 TEST(SpdyUtilsTest, SerializeAndParseHeaders) {
21 // Creates a SpdyHeaderBlock with some key->value pairs, serializes it, then 20 // Creates a SpdyHeaderBlock with some key->value pairs, serializes it, then
22 // parses the serialized output and verifies that the end result is the same 21 // parses the serialized output and verifies that the end result is the same
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 {"empty-joined", ""}, 177 {"empty-joined", ""},
179 {"empty-joined", ""}, 178 {"empty-joined", ""},
180 179
181 // Non-continguous cookie crumb. 180 // Non-continguous cookie crumb.
182 {"cookie", " fin!"}}); 181 {"cookie", " fin!"}});
183 182
184 int64_t content_length = -1; 183 int64_t content_length = -1;
185 SpdyHeaderBlock block; 184 SpdyHeaderBlock block;
186 ASSERT_TRUE( 185 ASSERT_TRUE(
187 SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block)); 186 SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block));
188 EXPECT_THAT(block, UnorderedElementsAre( 187 EXPECT_THAT(block,
189 Pair("cookie", " part 1; part 2 ; part3; fin!"), 188 UnorderedElementsAre(
190 Pair("passed-through", StringPiece("foo\0baz", 7)), 189 Pair("cookie", " part 1; part 2 ; part3; fin!"),
191 Pair("joined", StringPiece("value 1\0value 2", 15)), 190 Pair("passed-through", QuicStringPiece("foo\0baz", 7)),
192 Pair("empty", ""), 191 Pair("joined", QuicStringPiece("value 1\0value 2", 15)),
193 Pair("empty-joined", StringPiece("\0foo\0\0", 6)))); 192 Pair("empty", ""),
193 Pair("empty-joined", QuicStringPiece("\0foo\0\0", 6))));
194 EXPECT_EQ(-1, content_length); 194 EXPECT_EQ(-1, content_length);
195 } 195 }
196 196
197 TEST(SpdyUtilsTest, CopyAndValidateHeadersEmptyName) { 197 TEST(SpdyUtilsTest, CopyAndValidateHeadersEmptyName) {
198 auto headers = FromList({{"foo", "foovalue"}, {"", "barvalue"}, {"baz", ""}}); 198 auto headers = FromList({{"foo", "foovalue"}, {"", "barvalue"}, {"baz", ""}});
199 int64_t content_length = -1; 199 int64_t content_length = -1;
200 SpdyHeaderBlock block; 200 SpdyHeaderBlock block;
201 ASSERT_FALSE( 201 ASSERT_FALSE(
202 SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block)); 202 SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block));
203 } 203 }
(...skipping 12 matching lines...) Expand all
216 {"foo", "foovalue"}, 216 {"foo", "foovalue"},
217 {"content-length", "9"}, 217 {"content-length", "9"},
218 {"bar", "barvalue"}, 218 {"bar", "barvalue"},
219 {"baz", ""}}); 219 {"baz", ""}});
220 int64_t content_length = -1; 220 int64_t content_length = -1;
221 SpdyHeaderBlock block; 221 SpdyHeaderBlock block;
222 ASSERT_TRUE( 222 ASSERT_TRUE(
223 SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block)); 223 SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block));
224 EXPECT_THAT(block, UnorderedElementsAre( 224 EXPECT_THAT(block, UnorderedElementsAre(
225 Pair("foo", "foovalue"), Pair("bar", "barvalue"), 225 Pair("foo", "foovalue"), Pair("bar", "barvalue"),
226 Pair("content-length", StringPiece("9" 226 Pair("content-length", QuicStringPiece("9"
227 "\0" 227 "\0"
228 "9", 228 "9",
229 3)), 229 3)),
230 Pair("baz", ""))); 230 Pair("baz", "")));
231 EXPECT_EQ(9, content_length); 231 EXPECT_EQ(9, content_length);
232 } 232 }
233 233
234 TEST(SpdyUtilsTest, CopyAndValidateHeadersInconsistentContentLengths) { 234 TEST(SpdyUtilsTest, CopyAndValidateHeadersInconsistentContentLengths) {
235 auto headers = FromList({{"content-length", "9"}, 235 auto headers = FromList({{"content-length", "9"},
236 {"foo", "foovalue"}, 236 {"foo", "foovalue"},
237 {"content-length", "8"}, 237 {"content-length", "8"},
238 {"bar", "barvalue"}, 238 {"bar", "barvalue"},
239 {"baz", ""}}); 239 {"baz", ""}});
240 int64_t content_length = -1; 240 int64_t content_length = -1;
241 SpdyHeaderBlock block; 241 SpdyHeaderBlock block;
242 ASSERT_FALSE( 242 ASSERT_FALSE(
243 SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block)); 243 SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block));
244 } 244 }
245 245
246 TEST(SpdyUtilsTest, CopyAndValidateHeadersLargeContentLength) { 246 TEST(SpdyUtilsTest, CopyAndValidateHeadersLargeContentLength) {
247 auto headers = FromList({{"content-length", "9000000000"}, 247 auto headers = FromList({{"content-length", "9000000000"},
248 {"foo", "foovalue"}, 248 {"foo", "foovalue"},
249 {"bar", "barvalue"}, 249 {"bar", "barvalue"},
250 {"baz", ""}}); 250 {"baz", ""}});
251 int64_t content_length = -1; 251 int64_t content_length = -1;
252 SpdyHeaderBlock block; 252 SpdyHeaderBlock block;
253 ASSERT_TRUE( 253 ASSERT_TRUE(
254 SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block)); 254 SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block));
255 EXPECT_THAT(block, UnorderedElementsAre( 255 EXPECT_THAT(block, UnorderedElementsAre(
256 Pair("foo", "foovalue"), Pair("bar", "barvalue"), 256 Pair("foo", "foovalue"), Pair("bar", "barvalue"),
257 Pair("content-length", StringPiece("9000000000")), 257 Pair("content-length", QuicStringPiece("9000000000")),
258 Pair("baz", ""))); 258 Pair("baz", "")));
259 EXPECT_EQ(9000000000, content_length); 259 EXPECT_EQ(9000000000, content_length);
260 } 260 }
261 261
262 TEST(SpdyUtilsTest, CopyAndValidateHeadersMultipleValues) { 262 TEST(SpdyUtilsTest, CopyAndValidateHeadersMultipleValues) {
263 auto headers = FromList({{"foo", "foovalue"}, 263 auto headers = FromList({{"foo", "foovalue"},
264 {"bar", "barvalue"}, 264 {"bar", "barvalue"},
265 {"baz", ""}, 265 {"baz", ""},
266 {"foo", "boo"}, 266 {"foo", "boo"},
267 {"baz", "buzz"}}); 267 {"baz", "buzz"}});
268 int64_t content_length = -1; 268 int64_t content_length = -1;
269 SpdyHeaderBlock block; 269 SpdyHeaderBlock block;
270 ASSERT_TRUE( 270 ASSERT_TRUE(
271 SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block)); 271 SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block));
272 EXPECT_THAT( 272 EXPECT_THAT(block, UnorderedElementsAre(
273 block, UnorderedElementsAre(Pair("foo", StringPiece("foovalue\0boo", 12)), 273 Pair("foo", QuicStringPiece("foovalue\0boo", 12)),
274 Pair("bar", "barvalue"), 274 Pair("bar", "barvalue"),
275 Pair("baz", StringPiece("\0buzz", 5)))); 275 Pair("baz", QuicStringPiece("\0buzz", 5))));
276 EXPECT_EQ(-1, content_length); 276 EXPECT_EQ(-1, content_length);
277 } 277 }
278 278
279 TEST(SpdyUtilsTest, CopyAndValidateHeadersMoreThanTwoValues) { 279 TEST(SpdyUtilsTest, CopyAndValidateHeadersMoreThanTwoValues) {
280 auto headers = FromList({{"set-cookie", "value1"}, 280 auto headers = FromList({{"set-cookie", "value1"},
281 {"set-cookie", "value2"}, 281 {"set-cookie", "value2"},
282 {"set-cookie", "value3"}}); 282 {"set-cookie", "value3"}});
283 int64_t content_length = -1; 283 int64_t content_length = -1;
284 SpdyHeaderBlock block; 284 SpdyHeaderBlock block;
285 ASSERT_TRUE( 285 ASSERT_TRUE(
286 SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block)); 286 SpdyUtils::CopyAndValidateHeaders(*headers, &content_length, &block));
287 EXPECT_THAT(block, 287 EXPECT_THAT(
288 UnorderedElementsAre(Pair( 288 block, UnorderedElementsAre(Pair(
289 "set-cookie", StringPiece("value1\0value2\0value3", 20)))); 289 "set-cookie", QuicStringPiece("value1\0value2\0value3", 20))));
290 EXPECT_EQ(-1, content_length); 290 EXPECT_EQ(-1, content_length);
291 } 291 }
292 292
293 TEST(SpdyUtilsTest, CopyAndValidateHeadersCookie) { 293 TEST(SpdyUtilsTest, CopyAndValidateHeadersCookie) {
294 auto headers = FromList({{"foo", "foovalue"}, 294 auto headers = FromList({{"foo", "foovalue"},
295 {"bar", "barvalue"}, 295 {"bar", "barvalue"},
296 {"cookie", "value1"}, 296 {"cookie", "value1"},
297 {"baz", ""}}); 297 {"baz", ""}});
298 int64_t content_length = -1; 298 int64_t content_length = -1;
299 SpdyHeaderBlock block; 299 SpdyHeaderBlock block;
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 TEST(SpdyUtilsTest, PopulateHeaderBlockFromUrlFails) { 378 TEST(SpdyUtilsTest, PopulateHeaderBlockFromUrlFails) {
379 SpdyHeaderBlock headers; 379 SpdyHeaderBlock headers;
380 EXPECT_FALSE(SpdyUtils::PopulateHeaderBlockFromUrl("/", &headers)); 380 EXPECT_FALSE(SpdyUtils::PopulateHeaderBlockFromUrl("/", &headers));
381 EXPECT_FALSE(SpdyUtils::PopulateHeaderBlockFromUrl("/index.html", &headers)); 381 EXPECT_FALSE(SpdyUtils::PopulateHeaderBlockFromUrl("/index.html", &headers));
382 EXPECT_FALSE( 382 EXPECT_FALSE(
383 SpdyUtils::PopulateHeaderBlockFromUrl("www.google.com/", &headers)); 383 SpdyUtils::PopulateHeaderBlockFromUrl("www.google.com/", &headers));
384 } 384 }
385 385
386 } // namespace test 386 } // namespace test
387 } // namespace net 387 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/core/spdy_utils.cc ('k') | net/quic/platform/api/quic_hostname_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698