OLD | NEW |
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 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
290 for (size_t i = 0; i < arraysize(kHeaders); ++i) { | 290 for (size_t i = 0; i < arraysize(kHeaders); ++i) { |
291 headers += | 291 headers += |
292 std::string(kHeaders[i][0]) + kHeaders[i][1] + kHeaders[i][2] + "\r\n"; | 292 std::string(kHeaders[i][0]) + kHeaders[i][1] + kHeaders[i][2] + "\r\n"; |
293 } | 293 } |
294 | 294 |
295 client.Send("GET /test HTTP/1.1\r\n" + headers + "\r\n"); | 295 client.Send("GET /test HTTP/1.1\r\n" + headers + "\r\n"); |
296 ASSERT_TRUE(RunUntilRequestsReceived(1)); | 296 ASSERT_TRUE(RunUntilRequestsReceived(1)); |
297 ASSERT_EQ("", GetRequest(0).data); | 297 ASSERT_EQ("", GetRequest(0).data); |
298 | 298 |
299 for (size_t i = 0; i < arraysize(kHeaders); ++i) { | 299 for (size_t i = 0; i < arraysize(kHeaders); ++i) { |
300 std::string field = base::StringToLowerASCII(std::string(kHeaders[i][0])); | 300 std::string field = base::ToLowerASCII(std::string(kHeaders[i][0])); |
301 std::string value = kHeaders[i][2]; | 301 std::string value = kHeaders[i][2]; |
302 ASSERT_EQ(1u, GetRequest(0).headers.count(field)) << field; | 302 ASSERT_EQ(1u, GetRequest(0).headers.count(field)) << field; |
303 ASSERT_EQ(value, GetRequest(0).headers[field]) << kHeaders[i][0]; | 303 ASSERT_EQ(value, GetRequest(0).headers[field]) << kHeaders[i][0]; |
304 } | 304 } |
305 } | 305 } |
306 | 306 |
307 TEST_F(HttpServerTest, RequestWithDuplicateHeaders) { | 307 TEST_F(HttpServerTest, RequestWithDuplicateHeaders) { |
308 TestHttpClient client; | 308 TestHttpClient client; |
309 ASSERT_EQ(OK, client.ConnectAndWait(server_address_)); | 309 ASSERT_EQ(OK, client.ConnectAndWait(server_address_)); |
310 const char* const kHeaders[][3] = { | 310 const char* const kHeaders[][3] = { |
311 {"FirstHeader", ": ", "1"}, | 311 {"FirstHeader", ": ", "1"}, |
312 {"DuplicateHeader", ": ", "2"}, | 312 {"DuplicateHeader", ": ", "2"}, |
313 {"MiddleHeader", ": ", "3"}, | 313 {"MiddleHeader", ": ", "3"}, |
314 {"DuplicateHeader", ": ", "4"}, | 314 {"DuplicateHeader", ": ", "4"}, |
315 {"LastHeader", ": ", "5"}, | 315 {"LastHeader", ": ", "5"}, |
316 }; | 316 }; |
317 std::string headers; | 317 std::string headers; |
318 for (size_t i = 0; i < arraysize(kHeaders); ++i) { | 318 for (size_t i = 0; i < arraysize(kHeaders); ++i) { |
319 headers += | 319 headers += |
320 std::string(kHeaders[i][0]) + kHeaders[i][1] + kHeaders[i][2] + "\r\n"; | 320 std::string(kHeaders[i][0]) + kHeaders[i][1] + kHeaders[i][2] + "\r\n"; |
321 } | 321 } |
322 | 322 |
323 client.Send("GET /test HTTP/1.1\r\n" + headers + "\r\n"); | 323 client.Send("GET /test HTTP/1.1\r\n" + headers + "\r\n"); |
324 ASSERT_TRUE(RunUntilRequestsReceived(1)); | 324 ASSERT_TRUE(RunUntilRequestsReceived(1)); |
325 ASSERT_EQ("", GetRequest(0).data); | 325 ASSERT_EQ("", GetRequest(0).data); |
326 | 326 |
327 for (size_t i = 0; i < arraysize(kHeaders); ++i) { | 327 for (size_t i = 0; i < arraysize(kHeaders); ++i) { |
328 std::string field = base::StringToLowerASCII(std::string(kHeaders[i][0])); | 328 std::string field = base::ToLowerASCII(std::string(kHeaders[i][0])); |
329 std::string value = (field == "duplicateheader") ? "2,4" : kHeaders[i][2]; | 329 std::string value = (field == "duplicateheader") ? "2,4" : kHeaders[i][2]; |
330 ASSERT_EQ(1u, GetRequest(0).headers.count(field)) << field; | 330 ASSERT_EQ(1u, GetRequest(0).headers.count(field)) << field; |
331 ASSERT_EQ(value, GetRequest(0).headers[field]) << kHeaders[i][0]; | 331 ASSERT_EQ(value, GetRequest(0).headers[field]) << kHeaders[i][0]; |
332 } | 332 } |
333 } | 333 } |
334 | 334 |
335 TEST_F(HttpServerTest, HasHeaderValueTest) { | 335 TEST_F(HttpServerTest, HasHeaderValueTest) { |
336 TestHttpClient client; | 336 TestHttpClient client; |
337 ASSERT_EQ(OK, client.ConnectAndWait(server_address_)); | 337 ASSERT_EQ(OK, client.ConnectAndWait(server_address_)); |
338 const char* const kHeaders[] = { | 338 const char* const kHeaders[] = { |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
639 ASSERT_EQ(OK, client.ConnectAndWait(server_address_)); | 639 ASSERT_EQ(OK, client.ConnectAndWait(server_address_)); |
640 client.Send("GET / HTTP/1.1\r\n\r\n"); | 640 client.Send("GET / HTTP/1.1\r\n\r\n"); |
641 ASSERT_FALSE(RunUntilRequestsReceived(1)); | 641 ASSERT_FALSE(RunUntilRequestsReceived(1)); |
642 ASSERT_EQ(1ul, connection_ids_.size()); | 642 ASSERT_EQ(1ul, connection_ids_.size()); |
643 ASSERT_EQ(0ul, requests_.size()); | 643 ASSERT_EQ(0ul, requests_.size()); |
644 } | 644 } |
645 | 645 |
646 } // namespace | 646 } // namespace |
647 | 647 |
648 } // namespace net | 648 } // namespace net |
OLD | NEW |