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

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

Issue 1039001: HttpRequestHeaders refactor. (Closed)
Patch Set: Fix bugs, add tests. Created 10 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/net.gyp » ('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) 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
OLDNEW
« no previous file with comments | « net/http/http_request_headers.cc ('k') | net/net.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698