OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "net/http/http_request_headers.h" |
| 6 |
| 7 #include "testing/gtest/include/gtest/gtest.h" |
| 8 |
| 9 namespace net { |
| 10 |
| 11 namespace { |
| 12 |
| 13 TEST(HttpRequestHeaders, SetRequestLine) { |
| 14 HttpRequestHeaders headers; |
| 15 headers.SetRequestLine( |
| 16 HttpRequestHeaders::kGetMethod, "/foo", "1.1"); |
| 17 EXPECT_EQ("GET /foo HTTP/1.1\r\n\r\n", headers.ToString()); |
| 18 } |
| 19 |
| 20 TEST(HttpRequestHeaders, SetHeader) { |
| 21 HttpRequestHeaders headers; |
| 22 headers.SetHeader("Foo", "bar"); |
| 23 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); |
| 24 } |
| 25 |
| 26 TEST(HttpRequestHeaders, SetMultipleHeaders) { |
| 27 HttpRequestHeaders headers; |
| 28 headers.SetHeader("Cookie-Monster", "Nom nom nom"); |
| 29 headers.SetHeader("Domo-Kun", "Loves Chrome"); |
| 30 EXPECT_EQ("Cookie-Monster: Nom nom nom\r\nDomo-Kun: Loves Chrome\r\n\r\n", |
| 31 headers.ToString()); |
| 32 } |
| 33 |
| 34 TEST(HttpRequestHeaders, SetHeaderTwice) { |
| 35 HttpRequestHeaders headers; |
| 36 headers.SetHeader("Foo", "bar"); |
| 37 headers.SetHeader("Foo", "bar"); |
| 38 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); |
| 39 } |
| 40 |
| 41 TEST(HttpRequestHeaders, SetHeaderTwiceCaseInsensitive) { |
| 42 HttpRequestHeaders headers; |
| 43 headers.SetHeader("Foo", "bar"); |
| 44 headers.SetHeader("FoO", "Bar"); |
| 45 EXPECT_EQ("Foo: Bar\r\n\r\n", headers.ToString()); |
| 46 } |
| 47 |
| 48 TEST(HttpRequestHeaders, RemoveHeader) { |
| 49 HttpRequestHeaders headers; |
| 50 headers.SetHeader("Foo", "bar"); |
| 51 headers.RemoveHeader("Foo"); |
| 52 EXPECT_EQ("\r\n", headers.ToString()); |
| 53 } |
| 54 |
| 55 TEST(HttpRequestHeaders, RemoveHeaderMissingHeader) { |
| 56 HttpRequestHeaders headers; |
| 57 headers.SetHeader("Foo", "bar"); |
| 58 headers.RemoveHeader("Bar"); |
| 59 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); |
| 60 } |
| 61 |
| 62 TEST(HttpRequestHeaders, RemoveHeaderCaseInsensitive) { |
| 63 HttpRequestHeaders headers; |
| 64 headers.SetHeader("Foo", "bar"); |
| 65 headers.SetHeader("All-Your-Base", "Belongs To Chrome"); |
| 66 headers.RemoveHeader("foo"); |
| 67 EXPECT_EQ("All-Your-Base: Belongs To Chrome\r\n\r\n", headers.ToString()); |
| 68 } |
| 69 |
| 70 TEST(HttpRequestHeaders, AddHeaderFromString) { |
| 71 HttpRequestHeaders headers; |
| 72 headers.AddHeaderFromString("Foo: bar"); |
| 73 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); |
| 74 } |
| 75 |
| 76 TEST(HttpRequestHeaders, AddHeaderFromStringNoLeadingWhitespace) { |
| 77 HttpRequestHeaders headers; |
| 78 headers.AddHeaderFromString("Foo:bar"); |
| 79 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); |
| 80 } |
| 81 |
| 82 TEST(HttpRequestHeaders, AddHeaderFromStringMoreLeadingWhitespace) { |
| 83 HttpRequestHeaders headers; |
| 84 headers.AddHeaderFromString("Foo: \t \t bar"); |
| 85 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); |
| 86 } |
| 87 |
| 88 TEST(HttpRequestHeaders, AddHeaderFromStringTrailingWhitespace) { |
| 89 HttpRequestHeaders headers; |
| 90 headers.AddHeaderFromString("Foo: bar \t \t "); |
| 91 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); |
| 92 } |
| 93 |
| 94 TEST(HttpRequestHeaders, AddHeaderFromStringLeadingTrailingWhitespace) { |
| 95 HttpRequestHeaders headers; |
| 96 headers.AddHeaderFromString("Foo: \t bar\t "); |
| 97 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); |
| 98 } |
| 99 |
| 100 TEST(HttpRequestHeaders, AddHeaderFromStringWithEmptyValue) { |
| 101 HttpRequestHeaders headers; |
| 102 headers.AddHeaderFromString("Foo:"); |
| 103 EXPECT_EQ("Foo:\r\n\r\n", headers.ToString()); |
| 104 } |
| 105 |
| 106 TEST(HttpRequestHeaders, MergeFrom) { |
| 107 HttpRequestHeaders headers; |
| 108 headers.SetHeader("A", "A"); |
| 109 headers.SetHeader("B", "B"); |
| 110 |
| 111 HttpRequestHeaders headers2; |
| 112 headers2.SetHeader("B", "b"); |
| 113 headers2.SetHeader("C", "c"); |
| 114 headers.MergeFrom(headers2); |
| 115 EXPECT_EQ("A: A\r\nB: b\r\nC: c\r\n\r\n", headers.ToString()); |
| 116 } |
| 117 |
| 118 } // namespace |
| 119 |
| 120 } // namespace net |
OLD | NEW |