Index: net/http/http_request_headers_unittest.cc |
diff --git a/net/http/http_request_headers_unittest.cc b/net/http/http_request_headers_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e7e03a9984b428de072f5c55db2d213969ba7fe8 |
--- /dev/null |
+++ b/net/http/http_request_headers_unittest.cc |
@@ -0,0 +1,120 @@ |
+// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "net/http/http_request_headers.h" |
+ |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace net { |
+ |
+namespace { |
+ |
+TEST(HttpRequestHeaders, SetRequestLine) { |
+ HttpRequestHeaders headers; |
+ headers.SetRequestLine( |
+ HttpRequestHeaders::kGetMethod, "/foo", "1.1"); |
+ EXPECT_EQ("GET /foo HTTP/1.1\r\n\r\n", headers.ToString()); |
+} |
+ |
+TEST(HttpRequestHeaders, SetHeader) { |
+ HttpRequestHeaders headers; |
+ headers.SetHeader("Foo", "bar"); |
+ EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); |
+} |
+ |
+TEST(HttpRequestHeaders, SetMultipleHeaders) { |
+ HttpRequestHeaders headers; |
+ headers.SetHeader("Cookie-Monster", "Nom nom nom"); |
+ headers.SetHeader("Domo-Kun", "Loves Chrome"); |
+ EXPECT_EQ("Cookie-Monster: Nom nom nom\r\nDomo-Kun: Loves Chrome\r\n\r\n", |
+ headers.ToString()); |
+} |
+ |
+TEST(HttpRequestHeaders, SetHeaderTwice) { |
+ HttpRequestHeaders headers; |
+ headers.SetHeader("Foo", "bar"); |
+ headers.SetHeader("Foo", "bar"); |
+ EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); |
+} |
+ |
+TEST(HttpRequestHeaders, SetHeaderTwiceCaseInsensitive) { |
+ HttpRequestHeaders headers; |
+ headers.SetHeader("Foo", "bar"); |
+ headers.SetHeader("FoO", "Bar"); |
+ EXPECT_EQ("Foo: Bar\r\n\r\n", headers.ToString()); |
+} |
+ |
+TEST(HttpRequestHeaders, RemoveHeader) { |
+ HttpRequestHeaders headers; |
+ headers.SetHeader("Foo", "bar"); |
+ headers.RemoveHeader("Foo"); |
+ EXPECT_EQ("\r\n", headers.ToString()); |
+} |
+ |
+TEST(HttpRequestHeaders, RemoveHeaderMissingHeader) { |
+ HttpRequestHeaders headers; |
+ headers.SetHeader("Foo", "bar"); |
+ headers.RemoveHeader("Bar"); |
+ EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); |
+} |
+ |
+TEST(HttpRequestHeaders, RemoveHeaderCaseInsensitive) { |
+ HttpRequestHeaders headers; |
+ headers.SetHeader("Foo", "bar"); |
+ headers.SetHeader("All-Your-Base", "Belongs To Chrome"); |
+ headers.RemoveHeader("foo"); |
+ EXPECT_EQ("All-Your-Base: Belongs To Chrome\r\n\r\n", headers.ToString()); |
+} |
+ |
+TEST(HttpRequestHeaders, AddHeaderFromString) { |
+ HttpRequestHeaders headers; |
+ headers.AddHeaderFromString("Foo: bar"); |
+ EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); |
+} |
+ |
+TEST(HttpRequestHeaders, AddHeaderFromStringNoLeadingWhitespace) { |
+ HttpRequestHeaders headers; |
+ headers.AddHeaderFromString("Foo:bar"); |
+ EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); |
+} |
+ |
+TEST(HttpRequestHeaders, AddHeaderFromStringMoreLeadingWhitespace) { |
+ HttpRequestHeaders headers; |
+ headers.AddHeaderFromString("Foo: \t \t bar"); |
+ EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); |
+} |
+ |
+TEST(HttpRequestHeaders, AddHeaderFromStringTrailingWhitespace) { |
+ HttpRequestHeaders headers; |
+ headers.AddHeaderFromString("Foo: bar \t \t "); |
+ EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); |
+} |
+ |
+TEST(HttpRequestHeaders, AddHeaderFromStringLeadingTrailingWhitespace) { |
+ HttpRequestHeaders headers; |
+ headers.AddHeaderFromString("Foo: \t bar\t "); |
+ EXPECT_EQ("Foo: bar\r\n\r\n", headers.ToString()); |
+} |
+ |
+TEST(HttpRequestHeaders, AddHeaderFromStringWithEmptyValue) { |
+ HttpRequestHeaders headers; |
+ headers.AddHeaderFromString("Foo:"); |
+ EXPECT_EQ("Foo:\r\n\r\n", headers.ToString()); |
+} |
+ |
+TEST(HttpRequestHeaders, MergeFrom) { |
+ HttpRequestHeaders headers; |
+ headers.SetHeader("A", "A"); |
+ headers.SetHeader("B", "B"); |
+ |
+ HttpRequestHeaders headers2; |
+ headers2.SetHeader("B", "b"); |
+ headers2.SetHeader("C", "c"); |
+ headers.MergeFrom(headers2); |
+ EXPECT_EQ("A: A\r\nB: b\r\nC: c\r\n\r\n", headers.ToString()); |
+} |
+ |
+} // namespace |
+ |
+} // namespace net |