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

Side by Side Diff: net/http/http_request_headers_unittest.cc

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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/http/http_request_headers.cc ('k') | net/http/http_request_info.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012 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 "base/memory/scoped_ptr.h"
8 #include "base/values.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 namespace net {
12
13 namespace {
14
15 TEST(HttpRequestHeaders, HasHeader) {
16 HttpRequestHeaders headers;
17 headers.SetHeader("Foo", "bar");
18 EXPECT_TRUE(headers.HasHeader("foo"));
19 EXPECT_TRUE(headers.HasHeader("Foo"));
20 EXPECT_FALSE(headers.HasHeader("Fo"));
21
22 const HttpRequestHeaders& headers_ref = headers;
23 EXPECT_TRUE(headers_ref.HasHeader("foo"));
24 EXPECT_TRUE(headers_ref.HasHeader("Foo"));
25 EXPECT_FALSE(headers_ref.HasHeader("Fo"));
26 }
27
28 TEST(HttpRequestHeaders, SetHeader) {
29 HttpRequestHeaders headers;
30 headers.SetHeader("Foo", "bar");
31 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString());
32 }
33
34 TEST(HttpRequestHeaders, SetMultipleHeaders) {
35 HttpRequestHeaders headers;
36 headers.SetHeader("Cookie-Monster", "Nom nom nom");
37 headers.SetHeader("Domo-Kun", "Loves Chrome");
38 EXPECT_EQ("Cookie-Monster: Nom nom nom\r\nDomo-Kun: Loves Chrome\r\n\r\n",
39 headers.ToString());
40 }
41
42 TEST(HttpRequestHeaders, SetHeaderTwice) {
43 HttpRequestHeaders headers;
44 headers.SetHeader("Foo", "bar");
45 headers.SetHeader("Foo", "bar");
46 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString());
47 }
48
49 TEST(HttpRequestHeaders, SetHeaderTwiceCaseInsensitive) {
50 HttpRequestHeaders headers;
51 headers.SetHeader("Foo", "bar");
52 headers.SetHeader("FoO", "Bar");
53 EXPECT_EQ("Foo: Bar\r\n\r\n", headers.ToString());
54 }
55
56 TEST(HttpRequestHeaders, SetHeaderTwiceSamePrefix) {
57 HttpRequestHeaders headers;
58 headers.SetHeader("FooBar", "smokes");
59 headers.SetHeader("Foo", "crack");
60 EXPECT_EQ("FooBar: smokes\r\nFoo: crack\r\n\r\n", headers.ToString());
61 const HttpRequestHeaders& headers_ref = headers;
62 EXPECT_EQ("FooBar: smokes\r\nFoo: crack\r\n\r\n", headers_ref.ToString());
63 }
64
65 TEST(HttpRequestHeaders, SetEmptyHeader) {
66 HttpRequestHeaders headers;
67 headers.SetHeader("Foo", "Bar");
68 headers.SetHeader("Bar", "");
69 EXPECT_EQ("Foo: Bar\r\nBar:\r\n\r\n", headers.ToString());
70 }
71
72 TEST(HttpRequestHeaders, SetHeaderIfMissing) {
73 HttpRequestHeaders headers;
74 headers.SetHeaderIfMissing("Foo", "Bar");
75 EXPECT_EQ("Foo: Bar\r\n\r\n", headers.ToString());
76 headers.SetHeaderIfMissing("Foo", "Baz");
77 EXPECT_EQ("Foo: Bar\r\n\r\n", headers.ToString());
78 }
79
80 TEST(HttpRequestHeaders, RemoveHeader) {
81 HttpRequestHeaders headers;
82 headers.SetHeader("Foo", "bar");
83 headers.RemoveHeader("Foo");
84 EXPECT_EQ("\r\n", headers.ToString());
85 }
86
87 TEST(HttpRequestHeaders, RemoveHeaderMissingHeader) {
88 HttpRequestHeaders headers;
89 headers.SetHeader("Foo", "bar");
90 headers.RemoveHeader("Bar");
91 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString());
92 }
93
94 TEST(HttpRequestHeaders, RemoveHeaderCaseInsensitive) {
95 HttpRequestHeaders headers;
96 headers.SetHeader("Foo", "bar");
97 headers.SetHeader("All-Your-Base", "Belongs To Chrome");
98 headers.RemoveHeader("foo");
99 EXPECT_EQ("All-Your-Base: Belongs To Chrome\r\n\r\n", headers.ToString());
100 }
101
102 TEST(HttpRequestHeaders, AddHeaderFromString) {
103 HttpRequestHeaders headers;
104 headers.AddHeaderFromString("Foo: bar");
105 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString());
106 }
107
108 TEST(HttpRequestHeaders, AddHeaderFromStringNoLeadingWhitespace) {
109 HttpRequestHeaders headers;
110 headers.AddHeaderFromString("Foo:bar");
111 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString());
112 }
113
114 TEST(HttpRequestHeaders, AddHeaderFromStringMoreLeadingWhitespace) {
115 HttpRequestHeaders headers;
116 headers.AddHeaderFromString("Foo: \t \t bar");
117 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString());
118 }
119
120 TEST(HttpRequestHeaders, AddHeaderFromStringTrailingWhitespace) {
121 HttpRequestHeaders headers;
122 headers.AddHeaderFromString("Foo: bar \t \t ");
123 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString());
124 }
125
126 TEST(HttpRequestHeaders, AddHeaderFromStringLeadingTrailingWhitespace) {
127 HttpRequestHeaders headers;
128 headers.AddHeaderFromString("Foo: \t bar\t ");
129 EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString());
130 }
131
132 TEST(HttpRequestHeaders, AddHeaderFromStringWithEmptyValue) {
133 HttpRequestHeaders headers;
134 headers.AddHeaderFromString("Foo:");
135 EXPECT_EQ("Foo:\r\n\r\n", headers.ToString());
136 }
137
138 TEST(HttpRequestHeaders, AddHeaderFromStringWithWhitespaceValue) {
139 HttpRequestHeaders headers;
140 headers.AddHeaderFromString("Foo: ");
141 EXPECT_EQ("Foo:\r\n\r\n", headers.ToString());
142 }
143
144 TEST(HttpRequestHeaders, MergeFrom) {
145 HttpRequestHeaders headers;
146 headers.SetHeader("A", "A");
147 headers.SetHeader("B", "B");
148
149 HttpRequestHeaders headers2;
150 headers2.SetHeader("B", "b");
151 headers2.SetHeader("C", "c");
152 headers.MergeFrom(headers2);
153 EXPECT_EQ("A: A\r\nB: b\r\nC: c\r\n\r\n", headers.ToString());
154 }
155
156 TEST(HttpRequestHeaders, CopyFrom) {
157 HttpRequestHeaders headers;
158 headers.SetHeader("A", "A");
159 headers.SetHeader("B", "B");
160
161 HttpRequestHeaders headers2;
162 headers2.SetHeader("B", "b");
163 headers2.SetHeader("C", "c");
164 headers.CopyFrom(headers2);
165 EXPECT_EQ("B: b\r\nC: c\r\n\r\n", headers.ToString());
166 }
167
168 TEST(HttpRequestHeaders, ToNetLogParamAndBackAgain) {
169 HttpRequestHeaders headers;
170 headers.SetHeader("B", "b");
171 headers.SetHeader("A", "a");
172 std::string request_line("GET /stuff");
173
174 scoped_ptr<base::Value> event_param(
175 headers.NetLogCallback(&request_line, NetLog::LOG_ALL_BUT_BYTES));
176 HttpRequestHeaders headers2;
177 std::string request_line2;
178
179 ASSERT_TRUE(HttpRequestHeaders::FromNetLogParam(event_param.get(),
180 &headers2,
181 &request_line2));
182 EXPECT_EQ(request_line, request_line2);
183 EXPECT_EQ("B: b\r\nA: a\r\n\r\n", headers2.ToString());
184 }
185
186 } // namespace
187
188 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_request_headers.cc ('k') | net/http/http_request_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698