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

Side by Side Diff: net/server/http_server_unittest.cc

Issue 885443002: Roll Chrome into Mojo. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Rebase to ToT mojo Created 5 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
« no previous file with comments | « net/quic/test_tools/quic_sent_packet_manager_peer.cc ('k') | net/socket/socket_test_util.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include <utility> 6 #include <utility>
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 ASSERT_EQ("", GetRequest(0).data); 271 ASSERT_EQ("", GetRequest(0).data);
272 ASSERT_EQ(0u, GetRequest(0).headers.size()); 272 ASSERT_EQ(0u, GetRequest(0).headers.size());
273 ASSERT_TRUE(StartsWithASCII(GetRequest(0).peer.ToString(), 273 ASSERT_TRUE(StartsWithASCII(GetRequest(0).peer.ToString(),
274 "127.0.0.1", 274 "127.0.0.1",
275 true)); 275 true));
276 } 276 }
277 277
278 TEST_F(HttpServerTest, RequestWithHeaders) { 278 TEST_F(HttpServerTest, RequestWithHeaders) {
279 TestHttpClient client; 279 TestHttpClient client;
280 ASSERT_EQ(OK, client.ConnectAndWait(server_address_)); 280 ASSERT_EQ(OK, client.ConnectAndWait(server_address_));
281 const char* kHeaders[][3] = { 281 const char* const kHeaders[][3] = {
282 {"Header", ": ", "1"}, 282 {"Header", ": ", "1"},
283 {"HeaderWithNoWhitespace", ":", "1"}, 283 {"HeaderWithNoWhitespace", ":", "1"},
284 {"HeaderWithWhitespace", " : \t ", "1 1 1 \t "}, 284 {"HeaderWithWhitespace", " : \t ", "1 1 1 \t "},
285 {"HeaderWithColon", ": ", "1:1"}, 285 {"HeaderWithColon", ": ", "1:1"},
286 {"EmptyHeader", ":", ""}, 286 {"EmptyHeader", ":", ""},
287 {"EmptyHeaderWithWhitespace", ": \t ", ""}, 287 {"EmptyHeaderWithWhitespace", ": \t ", ""},
288 {"HeaderWithNonASCII", ": ", "\xf7"}, 288 {"HeaderWithNonASCII", ": ", "\xf7"},
289 }; 289 };
290 std::string headers; 290 std::string headers;
291 for (size_t i = 0; i < arraysize(kHeaders); ++i) { 291 for (size_t i = 0; i < arraysize(kHeaders); ++i) {
292 headers += 292 headers +=
293 std::string(kHeaders[i][0]) + kHeaders[i][1] + kHeaders[i][2] + "\r\n"; 293 std::string(kHeaders[i][0]) + kHeaders[i][1] + kHeaders[i][2] + "\r\n";
294 } 294 }
295 295
296 client.Send("GET /test HTTP/1.1\r\n" + headers + "\r\n"); 296 client.Send("GET /test HTTP/1.1\r\n" + headers + "\r\n");
297 ASSERT_TRUE(RunUntilRequestsReceived(1)); 297 ASSERT_TRUE(RunUntilRequestsReceived(1));
298 ASSERT_EQ("", GetRequest(0).data); 298 ASSERT_EQ("", GetRequest(0).data);
299 299
300 for (size_t i = 0; i < arraysize(kHeaders); ++i) { 300 for (size_t i = 0; i < arraysize(kHeaders); ++i) {
301 std::string field = base::StringToLowerASCII(std::string(kHeaders[i][0])); 301 std::string field = base::StringToLowerASCII(std::string(kHeaders[i][0]));
302 std::string value = kHeaders[i][2]; 302 std::string value = kHeaders[i][2];
303 ASSERT_EQ(1u, GetRequest(0).headers.count(field)) << field; 303 ASSERT_EQ(1u, GetRequest(0).headers.count(field)) << field;
304 ASSERT_EQ(value, GetRequest(0).headers[field]) << kHeaders[i][0]; 304 ASSERT_EQ(value, GetRequest(0).headers[field]) << kHeaders[i][0];
305 } 305 }
306 } 306 }
307 307
308 TEST_F(HttpServerTest, RequestWithDuplicateHeaders) { 308 TEST_F(HttpServerTest, RequestWithDuplicateHeaders) {
309 TestHttpClient client; 309 TestHttpClient client;
310 ASSERT_EQ(OK, client.ConnectAndWait(server_address_)); 310 ASSERT_EQ(OK, client.ConnectAndWait(server_address_));
311 const char* kHeaders[][3] = { 311 const char* const kHeaders[][3] = {
312 {"FirstHeader", ": ", "1"}, 312 {"FirstHeader", ": ", "1"},
313 {"DuplicateHeader", ": ", "2"}, 313 {"DuplicateHeader", ": ", "2"},
314 {"MiddleHeader", ": ", "3"}, 314 {"MiddleHeader", ": ", "3"},
315 {"DuplicateHeader", ": ", "4"}, 315 {"DuplicateHeader", ": ", "4"},
316 {"LastHeader", ": ", "5"}, 316 {"LastHeader", ": ", "5"},
317 }; 317 };
318 std::string headers; 318 std::string headers;
319 for (size_t i = 0; i < arraysize(kHeaders); ++i) { 319 for (size_t i = 0; i < arraysize(kHeaders); ++i) {
320 headers += 320 headers +=
321 std::string(kHeaders[i][0]) + kHeaders[i][1] + kHeaders[i][2] + "\r\n"; 321 std::string(kHeaders[i][0]) + kHeaders[i][1] + kHeaders[i][2] + "\r\n";
322 } 322 }
323 323
324 client.Send("GET /test HTTP/1.1\r\n" + headers + "\r\n"); 324 client.Send("GET /test HTTP/1.1\r\n" + headers + "\r\n");
325 ASSERT_TRUE(RunUntilRequestsReceived(1)); 325 ASSERT_TRUE(RunUntilRequestsReceived(1));
326 ASSERT_EQ("", GetRequest(0).data); 326 ASSERT_EQ("", GetRequest(0).data);
327 327
328 for (size_t i = 0; i < arraysize(kHeaders); ++i) { 328 for (size_t i = 0; i < arraysize(kHeaders); ++i) {
329 std::string field = base::StringToLowerASCII(std::string(kHeaders[i][0])); 329 std::string field = base::StringToLowerASCII(std::string(kHeaders[i][0]));
330 std::string value = (field == "duplicateheader") ? "2,4" : kHeaders[i][2]; 330 std::string value = (field == "duplicateheader") ? "2,4" : kHeaders[i][2];
331 ASSERT_EQ(1u, GetRequest(0).headers.count(field)) << field; 331 ASSERT_EQ(1u, GetRequest(0).headers.count(field)) << field;
332 ASSERT_EQ(value, GetRequest(0).headers[field]) << kHeaders[i][0]; 332 ASSERT_EQ(value, GetRequest(0).headers[field]) << kHeaders[i][0];
333 } 333 }
334 } 334 }
335 335
336 TEST_F(HttpServerTest, HasHeaderValueTest) { 336 TEST_F(HttpServerTest, HasHeaderValueTest) {
337 TestHttpClient client; 337 TestHttpClient client;
338 ASSERT_EQ(OK, client.ConnectAndWait(server_address_)); 338 ASSERT_EQ(OK, client.ConnectAndWait(server_address_));
339 const char* kHeaders[] = { 339 const char* const kHeaders[] = {
340 "Header: Abcd", 340 "Header: Abcd",
341 "HeaderWithNoWhitespace:E", 341 "HeaderWithNoWhitespace:E",
342 "HeaderWithWhitespace : \t f \t ", 342 "HeaderWithWhitespace : \t f \t ",
343 "DuplicateHeader: g", 343 "DuplicateHeader: g",
344 "HeaderWithComma: h, i ,j", 344 "HeaderWithComma: h, i ,j",
345 "DuplicateHeader: k", 345 "DuplicateHeader: k",
346 "EmptyHeader:", 346 "EmptyHeader:",
347 "EmptyHeaderWithWhitespace: \t ", 347 "EmptyHeaderWithWhitespace: \t ",
348 "HeaderWithNonASCII: \xf7", 348 "HeaderWithNonASCII: \xf7",
349 }; 349 };
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
629 ASSERT_EQ(OK, client.ConnectAndWait(server_address_)); 629 ASSERT_EQ(OK, client.ConnectAndWait(server_address_));
630 client.Send("GET / HTTP/1.1\r\n\r\n"); 630 client.Send("GET / HTTP/1.1\r\n\r\n");
631 ASSERT_FALSE(RunUntilRequestsReceived(1)); 631 ASSERT_FALSE(RunUntilRequestsReceived(1));
632 ASSERT_EQ(1ul, connection_ids_.size()); 632 ASSERT_EQ(1ul, connection_ids_.size());
633 ASSERT_EQ(0ul, requests_.size()); 633 ASSERT_EQ(0ul, requests_.size());
634 } 634 }
635 635
636 } // namespace 636 } // namespace
637 637
638 } // namespace net 638 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/test_tools/quic_sent_packet_manager_peer.cc ('k') | net/socket/socket_test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698