| 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 |