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

Side by Side Diff: net/tools/quic/spdy_balsa_utils_test.cc

Issue 1976473003: Fixes header translation between SpdyHeaderBlock and other data structures. Not protected. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@121370394
Patch Set: Created 4 years, 7 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/tools/quic/spdy_balsa_utils.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/tools/quic/spdy_balsa_utils.h" 5 #include "net/tools/quic/spdy_balsa_utils.h"
6 6
7 #include "base/strings/string_piece.h"
7 #include "net/spdy/spdy_test_utils.h" 8 #include "net/spdy/spdy_test_utils.h"
8 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
9 10
11 using base::StringPiece;
12 using testing::ElementsAre;
13
10 namespace net { 14 namespace net {
11 namespace test { 15 namespace test {
12 namespace { 16 namespace {
13 17
14 TEST(SpdyBalsaUtilsTest, RequestHeadersToSpdyHeaders) { 18 TEST(SpdyBalsaUtilsTest, RequestHeadersToSpdyHeaders) {
15 BalsaHeaders request_headers; 19 BalsaHeaders request_headers;
16 request_headers.SetRequestFirstlineFromStringPieces( 20 request_headers.SetRequestFirstlineFromStringPieces(
17 "GET", "https://www.google.com/foo", "HTTP/1.1"); 21 "GET", "https://www.google.com/foo", "HTTP/1.1");
18 SpdyHeaderBlock spdy_headers = 22 SpdyHeaderBlock spdy_headers =
19 SpdyBalsaUtils::RequestHeadersToSpdyHeaders(request_headers); 23 SpdyBalsaUtils::RequestHeadersToSpdyHeaders(request_headers);
(...skipping 20 matching lines...) Expand all
40 EXPECT_EQ(expected_headers, spdy_headers); 44 EXPECT_EQ(expected_headers, spdy_headers);
41 } 45 }
42 46
43 TEST(SpdyBalsaUtilsTest, SpdyHeadersToRequestHeaders) { 47 TEST(SpdyBalsaUtilsTest, SpdyHeadersToRequestHeaders) {
44 // Test :authority header. 48 // Test :authority header.
45 SpdyHeaderBlock spdy_headers; 49 SpdyHeaderBlock spdy_headers;
46 spdy_headers[":authority"] = "www.google.com"; 50 spdy_headers[":authority"] = "www.google.com";
47 spdy_headers[":path"] = "/foo"; 51 spdy_headers[":path"] = "/foo";
48 spdy_headers[":scheme"] = "https"; 52 spdy_headers[":scheme"] = "https";
49 spdy_headers[":method"] = "GET"; 53 spdy_headers[":method"] = "GET";
54 spdy_headers["foo"] = StringPiece("multi\0valued\0header", 19);
55 spdy_headers["bar"] = "";
50 56
51 BalsaHeaders request_headers; 57 BalsaHeaders request_headers;
52 SpdyBalsaUtils::SpdyHeadersToRequestHeaders(spdy_headers, &request_headers); 58 SpdyBalsaUtils::SpdyHeadersToRequestHeaders(spdy_headers, &request_headers);
53 EXPECT_EQ("GET", request_headers.request_method()); 59 EXPECT_EQ("GET", request_headers.request_method());
54 EXPECT_EQ("HTTP/1.1", request_headers.request_version()); 60 EXPECT_EQ("HTTP/1.1", request_headers.request_version());
55 EXPECT_EQ("/foo", request_headers.request_uri()); 61 EXPECT_EQ("/foo", request_headers.request_uri());
56 EXPECT_EQ("www.google.com", request_headers.GetHeader("host")); 62 EXPECT_EQ("www.google.com", request_headers.GetHeader("host"));
63 EXPECT_TRUE(request_headers.HasHeader("bar"));
64 EXPECT_EQ("", request_headers.GetHeader("bar"));
65 std::vector<StringPiece> pieces;
66 request_headers.GetAllOfHeader("foo", &pieces);
67 EXPECT_THAT(pieces, ElementsAre("multi", "valued", "header"));
57 68
58 // Test :host header (and no GET). 69 // Test :host header (and no GET).
59 SpdyHeaderBlock spdy_headers1; 70 SpdyHeaderBlock spdy_headers1;
60 spdy_headers1[":host"] = "www.google.com"; 71 spdy_headers1[":host"] = "www.google.com";
61 spdy_headers1[":path"] = "/foo"; 72 spdy_headers1[":path"] = "/foo";
62 spdy_headers1[":scheme"] = "http"; 73 spdy_headers1[":scheme"] = "http";
63 74
64 BalsaHeaders request_headers1; 75 BalsaHeaders request_headers1;
65 SpdyBalsaUtils::SpdyHeadersToRequestHeaders(spdy_headers1, &request_headers1); 76 SpdyBalsaUtils::SpdyHeadersToRequestHeaders(spdy_headers1, &request_headers1);
66 EXPECT_EQ("GET", request_headers1.request_method()); 77 EXPECT_EQ("GET", request_headers1.request_method());
67 EXPECT_EQ("HTTP/1.1", request_headers1.request_version()); 78 EXPECT_EQ("HTTP/1.1", request_headers1.request_version());
68 EXPECT_EQ("/foo", request_headers1.request_uri()); 79 EXPECT_EQ("/foo", request_headers1.request_uri());
69 EXPECT_EQ("www.google.com", request_headers1.GetHeader("host")); 80 EXPECT_EQ("www.google.com", request_headers1.GetHeader("host"));
70 } 81 }
71 82
72 TEST(SpdyBalsaUtilsTest, SpdyHeadersToResponseHeaders) { 83 TEST(SpdyBalsaUtilsTest, SpdyHeadersToResponseHeaders) {
73 SpdyHeaderBlock spdy_headers; 84 SpdyHeaderBlock spdy_headers;
74 spdy_headers[":status"] = "200"; 85 spdy_headers[":status"] = "200";
86 spdy_headers["foo"] = StringPiece("multi\0valued\0header", 19);
87 spdy_headers["bar"] = "";
75 88
76 BalsaHeaders response_headers; 89 BalsaHeaders response_headers;
77 SpdyBalsaUtils::SpdyHeadersToResponseHeaders(spdy_headers, &response_headers); 90 SpdyBalsaUtils::SpdyHeadersToResponseHeaders(spdy_headers, &response_headers);
78 EXPECT_EQ("200", response_headers.response_code()); 91 EXPECT_EQ("200", response_headers.response_code());
92 EXPECT_TRUE(response_headers.HasHeader("bar"));
93 EXPECT_EQ("", response_headers.GetHeader("bar"));
94 std::vector<StringPiece> pieces;
95 response_headers.GetAllOfHeader("foo", &pieces);
96 EXPECT_THAT(pieces, ElementsAre("multi", "valued", "header"));
79 } 97 }
80 98
81 } // namespace 99 } // namespace
82 } // namespace test 100 } // namespace test
83 } // namespace net 101 } // namespace net
OLDNEW
« no previous file with comments | « net/tools/quic/spdy_balsa_utils.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698