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

Unified Diff: net/spdy/spdy_network_transaction_unittest.cc

Issue 1357953002: Replace the existing SpdyHeaderBlock typedef with a class. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add NET_EXPORT to fix compile error on win_chromium_compile_dbg_ng. Created 5 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/spdy/spdy_http_utils_unittest.cc ('k') | net/spdy/spdy_protocol.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/spdy_network_transaction_unittest.cc
diff --git a/net/spdy/spdy_network_transaction_unittest.cc b/net/spdy/spdy_network_transaction_unittest.cc
index fa4f03b21431a16fe57ed472594ed308e81b5630..fa6294ad0001bdc4db5e77627492b0cbaf1d886b 100644
--- a/net/spdy/spdy_network_transaction_unittest.cc
+++ b/net/spdy/spdy_network_transaction_unittest.cc
@@ -2994,9 +2994,9 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushNoURL) {
scoped_ptr<SpdyFrame>
stream1_reply(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
scoped_ptr<SpdyHeaderBlock> incomplete_headers(new SpdyHeaderBlock());
- (*incomplete_headers)["hello"] = "bye";
(*incomplete_headers)[spdy_util_.GetStatusKey()] = "200 OK";
(*incomplete_headers)[spdy_util_.GetVersionKey()] = "HTTP/1.1";
+ (*incomplete_headers)["hello"] = "bye";
scoped_ptr<SpdyFrame> stream2_syn(spdy_util_.ConstructInitialSpdyPushFrame(
incomplete_headers.Pass(), 2, 1));
MockRead reads[] = {
@@ -3060,26 +3060,24 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyHeaders) {
}
};
- test_cases[0].expected_headers["cookie"] = "val1";
- test_cases[0].expected_headers["cookie"] += '\0';
- test_cases[0].expected_headers["cookie"] += "val2";
- test_cases[0].expected_headers["hello"] = "bye";
test_cases[0].expected_headers["status"] = "200";
-
- test_cases[1].expected_headers["hello"] = "bye";
test_cases[1].expected_headers["status"] = "200";
-
- test_cases[2].expected_headers["cookie"] = "val1,val2";
- test_cases[2].expected_headers["hello"] = "bye";
test_cases[2].expected_headers["status"] = "200";
+ // HTTP/2 eliminates use of the :version header.
if (spdy_util_.spdy_version() < HTTP2) {
- // HTTP/2 eliminates use of the :version header.
test_cases[0].expected_headers["version"] = "HTTP/1.1";
test_cases[1].expected_headers["version"] = "HTTP/1.1";
test_cases[2].expected_headers["version"] = "HTTP/1.1";
}
+ test_cases[0].expected_headers["hello"] = "bye";
+ test_cases[1].expected_headers["hello"] = "bye";
+ test_cases[2].expected_headers["hello"] = "bye";
+
+ test_cases[0].expected_headers["cookie"] = StringPiece("val1\0val2", 9);
+ test_cases[2].expected_headers["cookie"] = "val1,val2";
+
for (size_t i = 0; i < arraysize(test_cases); ++i) {
scoped_ptr<SpdyFrame> req(
spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true));
@@ -3113,11 +3111,15 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyHeaders) {
std::string name, value;
SpdyHeaderBlock header_block;
while (headers->EnumerateHeaderLines(&iter, &name, &value)) {
- if (header_block[name].empty()) {
- header_block[name] = value;
+ SpdyHeaderBlock::StringPieceProxy mutable_header_block_value =
+ header_block[name];
+ if (static_cast<StringPiece>(mutable_header_block_value).empty()) {
+ mutable_header_block_value = value;
} else {
- header_block[name] += '\0';
- header_block[name] += value;
+ std::string joint_value = mutable_header_block_value.as_string();
+ joint_value.append(1, '\0');
+ joint_value.append(value);
+ mutable_header_block_value = joint_value;
}
}
EXPECT_EQ(test_cases[i].expected_headers, header_block);
@@ -3133,65 +3135,35 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyHeadersVary) {
int num_headers[2];
const char* extra_headers[2][16];
} test_cases[] = {
- // Test the case of a multi-valued cookie. When the value is delimited
- // with NUL characters, it needs to be unfolded into multiple headers.
- {
- true,
- { 1, 4 },
- { { "cookie", "val1,val2",
- NULL
- },
- { "vary", "cookie",
- spdy_util_.GetStatusKey(), "200",
- spdy_util_.GetPathKey(), "/index.php",
- spdy_util_.GetVersionKey(), "HTTP/1.1",
- NULL
- }
- }
- }, { // Multiple vary fields.
- true,
- { 2, 5 },
- { { "friend", "barney",
- "enemy", "snaggletooth",
- NULL
- },
- { "vary", "friend",
- "vary", "enemy",
- spdy_util_.GetStatusKey(), "200",
- spdy_util_.GetPathKey(), "/index.php",
- spdy_util_.GetVersionKey(), "HTTP/1.1",
- NULL
- }
- }
- }, { // Test a '*' vary field.
- false,
- { 1, 4 },
- { { "cookie", "val1,val2",
- NULL
- },
- { "vary", "*",
- spdy_util_.GetStatusKey(), "200",
- spdy_util_.GetPathKey(), "/index.php",
- spdy_util_.GetVersionKey(), "HTTP/1.1",
- NULL
- }
- }
- }, { // Multiple comma-separated vary fields.
- true,
- { 2, 4 },
- { { "friend", "barney",
- "enemy", "snaggletooth",
- NULL
- },
- { "vary", "friend,enemy",
- spdy_util_.GetStatusKey(), "200",
- spdy_util_.GetPathKey(), "/index.php",
- spdy_util_.GetVersionKey(), "HTTP/1.1",
- NULL
- }
- }
- }
- };
+ // Test the case of a multi-valued cookie. When the value is delimited
+ // with NUL characters, it needs to be unfolded into multiple headers.
+ {true,
+ {1, 4},
+ {{"cookie", "val1,val2", NULL},
+ {spdy_util_.GetStatusKey(), "200", spdy_util_.GetPathKey(),
+ "/index.php", spdy_util_.GetVersionKey(), "HTTP/1.1", "vary", "cookie",
+ NULL}}},
+ {// Multiple vary fields.
+ true,
+ {2, 5},
+ {{"friend", "barney", "enemy", "snaggletooth", NULL},
+ {spdy_util_.GetStatusKey(), "200", spdy_util_.GetPathKey(),
+ "/index.php", spdy_util_.GetVersionKey(), "HTTP/1.1", "vary", "friend",
+ "vary", "enemy", NULL}}},
+ {// Test a '*' vary field.
+ false,
+ {1, 4},
+ {{"cookie", "val1,val2", NULL},
+ {spdy_util_.GetStatusKey(), "200", spdy_util_.GetPathKey(),
+ "/index.php", spdy_util_.GetVersionKey(), "HTTP/1.1", "vary", "*",
+ NULL}}},
+ {// Multiple comma-separated vary fields.
+ true,
+ {2, 4},
+ {{"friend", "barney", "enemy", "snaggletooth", NULL},
+ {spdy_util_.GetStatusKey(), "200", spdy_util_.GetPathKey(),
+ "/index.php", spdy_util_.GetVersionKey(), "HTTP/1.1", "vary",
+ "friend,enemy", NULL}}}};
for (size_t i = 0; i < arraysize(test_cases); ++i) {
// Construct the request.
@@ -3269,24 +3241,20 @@ TEST_P(SpdyNetworkTransactionTest, InvalidSynReply) {
int num_headers;
const char* headers[10];
} test_cases[] = {
- // SYN_REPLY missing status header
- { 4,
- { "cookie", "val1",
- "cookie", "val2",
- spdy_util_.GetPathKey(), "/index.php",
- spdy_util_.GetVersionKey(), "HTTP/1.1",
- NULL
+ // SYN_REPLY missing status header
+ {
+ 4,
+ {spdy_util_.GetPathKey(), "/index.php", spdy_util_.GetVersionKey(),
+ "HTTP/1.1", "cookie", "val1", "cookie", "val2", NULL},
},
- },
- // SYN_REPLY missing version header
- { 2,
- { "status", "200",
- spdy_util_.GetPathKey(), "/index.php",
- NULL
+ // SYN_REPLY missing version header
+ {
+ 2, {spdy_util_.GetPathKey(), "/index.php", "status", "200", NULL},
+ },
+ // SYN_REPLY with no headers
+ {
+ 0, {NULL},
},
- },
- // SYN_REPLY with no headers
- { 0, { NULL }, },
};
for (size_t i = 0; i < arraysize(test_cases); ++i) {
@@ -5015,9 +4983,9 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushWithHeaders) {
spdy_util_.ConstructInitialSpdyPushFrame(initial_headers.Pass(), 2, 1));
scoped_ptr<SpdyHeaderBlock> late_headers(new SpdyHeaderBlock());
- (*late_headers)["hello"] = "bye";
(*late_headers)[spdy_util_.GetStatusKey()] = "200";
(*late_headers)[spdy_util_.GetVersionKey()] = "HTTP/1.1";
+ (*late_headers)["hello"] = "bye";
scoped_ptr<SpdyFrame> stream2_headers(
spdy_util_.ConstructSpdyControlFrame(late_headers.Pass(),
false,
@@ -5077,9 +5045,9 @@ TEST_P(SpdyNetworkTransactionTest, ServerPushClaimBeforeHeaders) {
spdy_util_.ConstructInitialSpdyPushFrame(initial_headers.Pass(), 2, 1));
scoped_ptr<SpdyHeaderBlock> late_headers(new SpdyHeaderBlock());
- (*late_headers)["hello"] = "bye";
(*late_headers)[spdy_util_.GetStatusKey()] = "200";
(*late_headers)[spdy_util_.GetVersionKey()] = "HTTP/1.1";
+ (*late_headers)["hello"] = "bye";
scoped_ptr<SpdyFrame> stream2_headers(
spdy_util_.ConstructSpdyControlFrame(late_headers.Pass(),
false,
« no previous file with comments | « net/spdy/spdy_http_utils_unittest.cc ('k') | net/spdy/spdy_protocol.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698