Chromium Code Reviews| 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, SetHeaderTwiceSamePrefix) { | |
|
willchan no longer on Chromium
2010/03/23 04:25:56
This is the new test.
| |
| 49 HttpRequestHeaders headers; | |
| 50 headers.SetHeader("FooBar", "smokes"); | |
| 51 headers.SetHeader("Foo", "crack"); | |
| 52 EXPECT_EQ("FooBar: smokes\r\nFoo: crack\r\n\r\n", headers.ToString()); | |
|
eroman
2010/03/23 04:47:51
hah!
| |
| 53 } | |
| 54 | |
| 55 TEST(HttpRequestHeaders, RemoveHeader) { | |
| 56 HttpRequestHeaders headers; | |
| 57 headers.SetHeader("Foo", "bar"); | |
| 58 headers.RemoveHeader("Foo"); | |
| 59 EXPECT_EQ("\r\n", headers.ToString()); | |
| 60 } | |
| 61 | |
| 62 TEST(HttpRequestHeaders, RemoveHeaderMissingHeader) { | |
| 63 HttpRequestHeaders headers; | |
| 64 headers.SetHeader("Foo", "bar"); | |
| 65 headers.RemoveHeader("Bar"); | |
| 66 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); | |
| 67 } | |
| 68 | |
| 69 TEST(HttpRequestHeaders, RemoveHeaderCaseInsensitive) { | |
| 70 HttpRequestHeaders headers; | |
| 71 headers.SetHeader("Foo", "bar"); | |
| 72 headers.SetHeader("All-Your-Base", "Belongs To Chrome"); | |
| 73 headers.RemoveHeader("foo"); | |
| 74 EXPECT_EQ("All-Your-Base: Belongs To Chrome\r\n\r\n", headers.ToString()); | |
| 75 } | |
| 76 | |
| 77 TEST(HttpRequestHeaders, AddHeaderFromString) { | |
| 78 HttpRequestHeaders headers; | |
| 79 headers.AddHeaderFromString("Foo: bar"); | |
| 80 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); | |
| 81 } | |
| 82 | |
| 83 TEST(HttpRequestHeaders, AddHeaderFromStringNoLeadingWhitespace) { | |
| 84 HttpRequestHeaders headers; | |
| 85 headers.AddHeaderFromString("Foo:bar"); | |
| 86 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); | |
| 87 } | |
| 88 | |
| 89 TEST(HttpRequestHeaders, AddHeaderFromStringMoreLeadingWhitespace) { | |
| 90 HttpRequestHeaders headers; | |
| 91 headers.AddHeaderFromString("Foo: \t \t bar"); | |
| 92 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); | |
| 93 } | |
| 94 | |
| 95 TEST(HttpRequestHeaders, AddHeaderFromStringTrailingWhitespace) { | |
| 96 HttpRequestHeaders headers; | |
| 97 headers.AddHeaderFromString("Foo: bar \t \t "); | |
| 98 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); | |
| 99 } | |
| 100 | |
| 101 TEST(HttpRequestHeaders, AddHeaderFromStringLeadingTrailingWhitespace) { | |
| 102 HttpRequestHeaders headers; | |
| 103 headers.AddHeaderFromString("Foo: \t bar\t "); | |
| 104 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); | |
| 105 } | |
| 106 | |
| 107 TEST(HttpRequestHeaders, AddHeaderFromStringWithEmptyValue) { | |
| 108 HttpRequestHeaders headers; | |
| 109 headers.AddHeaderFromString("Foo:"); | |
| 110 EXPECT_EQ("Foo:\r\n\r\n", headers.ToString()); | |
| 111 } | |
| 112 | |
| 113 TEST(HttpRequestHeaders, MergeFrom) { | |
| 114 HttpRequestHeaders headers; | |
| 115 headers.SetHeader("A", "A"); | |
| 116 headers.SetHeader("B", "B"); | |
| 117 | |
| 118 HttpRequestHeaders headers2; | |
| 119 headers2.SetHeader("B", "b"); | |
| 120 headers2.SetHeader("C", "c"); | |
| 121 headers.MergeFrom(headers2); | |
| 122 EXPECT_EQ("A: A\r\nB: b\r\nC: c\r\n\r\n", headers.ToString()); | |
| 123 } | |
| 124 | |
| 125 } // namespace | |
| 126 | |
| 127 } // namespace net | |
| OLD | NEW |