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

Unified Diff: net/spdy/spdy_network_transaction_unittest.cc

Issue 358493002: Land recent SPDY changes (through 70021377) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase on code-review-feedback updates. Created 6 years, 6 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_headers_block_parser_test.cc ('k') | net/spdy/spdy_priority_tree.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 f11cb656a9c372d94858c70ed960ad29a97e504a..6b4c050f1b5d562cc7dce7bb61ddb5d18730fe39 100644
--- a/net/spdy/spdy_network_transaction_unittest.cc
+++ b/net/spdy/spdy_network_transaction_unittest.cc
@@ -1677,49 +1677,16 @@ TEST_P(SpdyNetworkTransactionTest, Put) {
request.method = "PUT";
request.url = GURL("http://www.google.com/");
- const SpdyHeaderInfo kSynStartHeader = {
- SYN_STREAM, // Kind = Syn
- 1, // Stream ID
- 0, // Associated stream ID
- ConvertRequestPriorityToSpdyPriority(
- LOWEST, spdy_util_.spdy_version()),
- kSpdyCredentialSlotUnused,
- CONTROL_FLAG_FIN, // Control Flags
- false, // Compressed
- RST_STREAM_INVALID, // Status
- NULL, // Data
- 0, // Length
- DATA_FLAG_NONE // Data Flags
- };
scoped_ptr<SpdyHeaderBlock> put_headers(
spdy_util_.ConstructPutHeaderBlock("http://www.google.com", 0));
- scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyFrame(
- kSynStartHeader, put_headers.Pass()));
+ scoped_ptr<SpdyFrame> req(
+ spdy_util_.ConstructSpdySyn(1, *put_headers, LOWEST, false, true));
MockWrite writes[] = {
CreateMockWrite(*req),
};
+ scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true));
- const SpdyHeaderInfo kSynReplyHeader = {
- SYN_REPLY, // Kind = SynReply
- 1, // Stream ID
- 0, // Associated stream ID
- ConvertRequestPriorityToSpdyPriority(
- LOWEST, spdy_util_.spdy_version()),
- kSpdyCredentialSlotUnused,
- CONTROL_FLAG_NONE, // Control Flags
- false, // Compressed
- RST_STREAM_INVALID, // Status
- NULL, // Data
- 0, // Length
- DATA_FLAG_NONE // Data Flags
- };
- scoped_ptr<SpdyHeaderBlock> reply_headers(new SpdyHeaderBlock());
- (*reply_headers)[spdy_util_.GetStatusKey()] = "200";
- (*reply_headers)[spdy_util_.GetVersionKey()] = "HTTP/1.1";
- (*reply_headers)["content-length"] = "1234";
- scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyFrame(
- kSynReplyHeader, reply_headers.Pass()));
MockRead reads[] = {
CreateMockRead(*resp),
CreateMockRead(*body),
@@ -1744,50 +1711,16 @@ TEST_P(SpdyNetworkTransactionTest, Head) {
request.method = "HEAD";
request.url = GURL("http://www.google.com/");
- const SpdyHeaderInfo kSynStartHeader = {
- SYN_STREAM, // Kind = Syn
- 1, // Stream ID
- 0, // Associated stream ID
- ConvertRequestPriorityToSpdyPriority(
- LOWEST, spdy_util_.spdy_version()),
- kSpdyCredentialSlotUnused,
- CONTROL_FLAG_FIN, // Control Flags
- false, // Compressed
- RST_STREAM_INVALID, // Status
- NULL, // Data
- 0, // Length
- DATA_FLAG_NONE // Data Flags
- };
scoped_ptr<SpdyHeaderBlock> head_headers(
spdy_util_.ConstructHeadHeaderBlock("http://www.google.com", 0));
- scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyFrame(
- kSynStartHeader, head_headers.Pass()));
+ scoped_ptr<SpdyFrame> req(
+ spdy_util_.ConstructSpdySyn(1, *head_headers, LOWEST, false, true));
MockWrite writes[] = {
CreateMockWrite(*req),
};
+ scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true));
- const SpdyHeaderInfo kSynReplyHeader = {
- SYN_REPLY, // Kind = SynReply
- 1, // Stream ID
- 0, // Associated stream ID
- ConvertRequestPriorityToSpdyPriority(
- LOWEST, spdy_util_.spdy_version()),
- kSpdyCredentialSlotUnused,
- CONTROL_FLAG_NONE, // Control Flags
- false, // Compressed
- RST_STREAM_INVALID, // Status
- NULL, // Data
- 0, // Length
- DATA_FLAG_NONE // Data Flags
- };
- scoped_ptr<SpdyHeaderBlock> reply_headers(new SpdyHeaderBlock());
- (*reply_headers)[spdy_util_.GetStatusKey()] = "200";
- (*reply_headers)[spdy_util_.GetVersionKey()] = "HTTP/1.1";
- (*reply_headers)["content-length"] = "1234";
- scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyFrame(
- kSynReplyHeader,
- reply_headers.Pass()));
MockRead reads[] = {
CreateMockRead(*resp),
CreateMockRead(*body),
@@ -2019,13 +1952,10 @@ TEST_P(SpdyNetworkTransactionTest, NullPost) {
// When request.upload_data_stream is NULL for post, content-length is
// expected to be 0.
- SpdySynStreamIR syn_ir(1);
- syn_ir.set_name_value_block(
- *spdy_util_.ConstructPostHeaderBlock(kRequestUrl, 0));
- syn_ir.set_fin(true); // No body.
- syn_ir.set_priority(ConvertRequestPriorityToSpdyPriority(
- LOWEST, spdy_util_.spdy_version()));
- scoped_ptr<SpdyFrame> req(framer.SerializeFrame(syn_ir));
+ scoped_ptr<SpdyHeaderBlock> req_block(
+ spdy_util_.ConstructPostHeaderBlock(kRequestUrl, 0));
+ scoped_ptr<SpdyFrame> req(
+ spdy_util_.ConstructSpdySyn(1, *req_block, LOWEST, false, true));
MockWrite writes[] = {
CreateMockWrite(*req),
@@ -2066,13 +1996,10 @@ TEST_P(SpdyNetworkTransactionTest, EmptyPost) {
const uint64 kContentLength = 0;
- SpdySynStreamIR syn_ir(1);
- syn_ir.set_name_value_block(
- *spdy_util_.ConstructPostHeaderBlock(kRequestUrl, kContentLength));
- syn_ir.set_fin(true); // No body.
- syn_ir.set_priority(ConvertRequestPriorityToSpdyPriority(
- LOWEST, spdy_util_.spdy_version()));
- scoped_ptr<SpdyFrame> req(framer.SerializeFrame(syn_ir));
+ scoped_ptr<SpdyHeaderBlock> req_block(
+ spdy_util_.ConstructPostHeaderBlock(kRequestUrl, kContentLength));
+ scoped_ptr<SpdyFrame> req(
+ spdy_util_.ConstructSpdySyn(1, *req_block, LOWEST, false, true));
MockWrite writes[] = {
CreateMockWrite(*req),
@@ -2523,7 +2450,6 @@ TEST_P(SpdyNetworkTransactionTest, DeleteSessionOnReadCallback) {
// Send a spdy request to www.google.com that gets redirected to www.foo.com.
TEST_P(SpdyNetworkTransactionTest, RedirectGetRequest) {
- const SpdyHeaderInfo kSynStartHeader = spdy_util_.MakeSpdyHeader(SYN_STREAM);
scoped_ptr<SpdyHeaderBlock> headers(
spdy_util_.ConstructGetHeaderBlock("http://www.google.com/"));
(*headers)["user-agent"] = "";
@@ -2534,10 +2460,10 @@ TEST_P(SpdyNetworkTransactionTest, RedirectGetRequest) {
(*headers2)["accept-encoding"] = "gzip,deflate";
// Setup writes/reads to www.google.com
- scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyFrame(
- kSynStartHeader, headers.Pass()));
- scoped_ptr<SpdyFrame> req2(spdy_util_.ConstructSpdyFrame(
- kSynStartHeader, headers2.Pass()));
+ scoped_ptr<SpdyFrame> req(
+ spdy_util_.ConstructSpdySyn(1, *headers, LOWEST, false, true));
+ scoped_ptr<SpdyFrame> req2(
+ spdy_util_.ConstructSpdySyn(1, *headers2, LOWEST, false, true));
scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReplyRedirect(1));
MockWrite writes[] = {
CreateMockWrite(*req, 1),
@@ -2602,8 +2528,6 @@ TEST_P(SpdyNetworkTransactionTest, RedirectGetRequest) {
// Send a spdy request to www.google.com. Get a pushed stream that redirects to
// www.foo.com.
TEST_P(SpdyNetworkTransactionTest, RedirectServerPush) {
- const SpdyHeaderInfo kSynStartHeader = spdy_util_.MakeSpdyHeader(SYN_STREAM);
-
scoped_ptr<SpdyHeaderBlock> headers(
spdy_util_.ConstructGetHeaderBlock("http://www.google.com/"));
(*headers)["user-agent"] = "";
@@ -2611,7 +2535,7 @@ TEST_P(SpdyNetworkTransactionTest, RedirectServerPush) {
// Setup writes/reads to www.google.com
scoped_ptr<SpdyFrame> req(
- spdy_util_.ConstructSpdyFrame(kSynStartHeader, headers.Pass()));
+ spdy_util_.ConstructSpdySyn(1, *headers, LOWEST, false, true));
scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
scoped_ptr<SpdyFrame> rep(
spdy_util_.ConstructSpdyPush(NULL,
@@ -2642,7 +2566,7 @@ TEST_P(SpdyNetworkTransactionTest, RedirectServerPush) {
(*headers2)["user-agent"] = "";
(*headers2)["accept-encoding"] = "gzip,deflate";
scoped_ptr<SpdyFrame> req2(
- spdy_util_.ConstructSpdyFrame(kSynStartHeader, headers2.Pass()));
+ spdy_util_.ConstructSpdySyn(1, *headers2, LOWEST, false, true));
scoped_ptr<SpdyFrame> resp2(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
scoped_ptr<SpdyFrame> body2(spdy_util_.ConstructSpdyBodyFrame(1, true));
MockWrite writes2[] = {
@@ -3371,23 +3295,8 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyHeaders) {
// Verify that various SynReply headers parse vary fields correctly
// through the HTTP layer, and the response matches the request.
TEST_P(SpdyNetworkTransactionTest, SynReplyHeadersVary) {
- static const SpdyHeaderInfo syn_reply_info = {
- SYN_REPLY, // Syn Reply
- 1, // Stream ID
- 0, // Associated Stream ID
- ConvertRequestPriorityToSpdyPriority(
- LOWEST, spdy_util_.spdy_version()),
- kSpdyCredentialSlotUnused,
- CONTROL_FLAG_NONE, // Control Flags
- false, // Compressed
- RST_STREAM_INVALID, // Status
- NULL, // Data
- 0, // Data Length
- DATA_FLAG_NONE // Data Flags
- };
// Modify the following data to change/add test cases:
struct SynReplyTests {
- const SpdyHeaderInfo* syn_reply;
bool vary_matches;
int num_headers[2];
const char* extra_headers[2][16];
@@ -3395,7 +3304,6 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyHeadersVary) {
// Test the case of a multi-valued cookie. When the value is delimited
// with NUL characters, it needs to be unfolded into multiple headers.
{
- &syn_reply_info,
true,
{ 1, 4 },
{ { "cookie", "val1,val2",
@@ -3409,7 +3317,6 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyHeadersVary) {
}
}
}, { // Multiple vary fields.
- &syn_reply_info,
true,
{ 2, 5 },
{ { "friend", "barney",
@@ -3425,7 +3332,6 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyHeadersVary) {
}
}
}, { // Test a '*' vary field.
- &syn_reply_info,
false,
{ 1, 4 },
{ { "cookie", "val1,val2",
@@ -3439,7 +3345,6 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyHeadersVary) {
}
}
}, { // Multiple comma-separated vary fields.
- &syn_reply_info,
true,
{ 2, 4 },
{ { "friend", "barney",
@@ -3468,12 +3373,12 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyHeadersVary) {
};
// Construct the reply.
+ SpdyHeaderBlock reply_headers;
+ AppendToHeaderBlock(test_cases[i].extra_headers[1],
+ test_cases[i].num_headers[1],
+ &reply_headers);
scoped_ptr<SpdyFrame> frame_reply(
- spdy_util_.ConstructSpdyFrame(*test_cases[i].syn_reply,
- test_cases[i].extra_headers[1],
- test_cases[i].num_headers[1],
- NULL,
- 0));
+ spdy_util_.ConstructSpdyReply(1, reply_headers));
scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true));
MockRead reads[] = {
@@ -3528,10 +3433,6 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyHeadersVary) {
}
// Construct the expected header reply string.
- SpdyHeaderBlock reply_headers;
- AppendToHeaderBlock(test_cases[i].extra_headers[1],
- test_cases[i].num_headers[1],
- &reply_headers);
std::string expected_reply =
spdy_util_.ConstructSpdyReplyString(reply_headers);
EXPECT_EQ(expected_reply, lines) << i;
@@ -3540,21 +3441,6 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyHeadersVary) {
// Verify that we don't crash on invalid SynReply responses.
TEST_P(SpdyNetworkTransactionTest, InvalidSynReply) {
- const SpdyHeaderInfo kSynStartHeader = {
- SYN_REPLY, // Kind = SynReply
- 1, // Stream ID
- 0, // Associated stream ID
- ConvertRequestPriorityToSpdyPriority(
- LOWEST, spdy_util_.spdy_version()),
- kSpdyCredentialSlotUnused,
- CONTROL_FLAG_NONE, // Control Flags
- false, // Compressed
- RST_STREAM_INVALID, // Status
- NULL, // Data
- 0, // Length
- DATA_FLAG_NONE // Data Flags
- };
-
struct InvalidSynReplyTests {
int num_headers;
const char* headers[10];
@@ -3589,12 +3475,11 @@ TEST_P(SpdyNetworkTransactionTest, InvalidSynReply) {
CreateMockWrite(*rst),
};
- scoped_ptr<SpdyFrame> resp(
- spdy_util_.ConstructSpdyFrame(kSynStartHeader,
- NULL, 0,
- test_cases[i].headers,
- test_cases[i].num_headers));
- scoped_ptr<SpdyFrame> body(spdy_util_.ConstructSpdyBodyFrame(1, true));
+ // Construct the reply.
+ SpdyHeaderBlock reply_headers;
+ AppendToHeaderBlock(
+ test_cases[i].headers, test_cases[i].num_headers, &reply_headers);
+ scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyReply(1, reply_headers));
MockRead reads[] = {
CreateMockRead(*resp),
MockRead(ASYNC, 0, 0) // EOF
@@ -4131,22 +4016,13 @@ TEST_P(SpdyNetworkTransactionTest, BufferedAll) {
MockWrite writes[] = { CreateMockWrite(*req) };
// 5 data frames in a single read.
- SpdySynReplyIR reply_ir(1);
- reply_ir.SetHeader(spdy_util_.GetStatusKey(), "200");
- reply_ir.SetHeader(spdy_util_.GetVersionKey(), "HTTP/1.1");
-
- scoped_ptr<SpdyFrame> syn_reply(framer.SerializeFrame(reply_ir));
+ scoped_ptr<SpdyFrame> reply(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
scoped_ptr<SpdyFrame> data_frame(
framer.CreateDataFrame(1, "message", 7, DATA_FLAG_NONE));
scoped_ptr<SpdyFrame> data_frame_fin(
framer.CreateDataFrame(1, "message", 7, DATA_FLAG_FIN));
- const SpdyFrame* frames[5] = {
- syn_reply.get(),
- data_frame.get(),
- data_frame.get(),
- data_frame.get(),
- data_frame_fin.get()
- };
+ const SpdyFrame* frames[5] = {reply.get(), data_frame.get(), data_frame.get(),
+ data_frame.get(), data_frame_fin.get()};
char combined_frames[200];
int combined_frames_len =
CombineFrames(frames, arraysize(frames),
@@ -4379,8 +4255,7 @@ TEST_P(SpdyNetworkTransactionTest, BufferedCancelled) {
// the settings in the HttpServerProperties.
TEST_P(SpdyNetworkTransactionTest, SettingsSaved) {
if (spdy_util_.spdy_version() >= SPDY4) {
- // SPDY4 doesn't support flags on individual settings, and
- // has no concept of settings persistence.
+ // SPDY4 doesn't support settings persistence.
return;
}
static const SpdyHeaderInfo kSynReplyInfo = {
@@ -4487,7 +4362,10 @@ TEST_P(SpdyNetworkTransactionTest, SettingsSaved) {
// Test that when there are settings saved that they are sent back to the
// server upon session establishment.
TEST_P(SpdyNetworkTransactionTest, SettingsPlayback) {
- // TODO(jgraettinger): Remove settings persistence mechanisms altogether.
+ if (spdy_util_.spdy_version() >= SPDY4) {
+ // SPDY4 doesn't support settings persistence.
+ return;
+ }
static const SpdyHeaderInfo kSynReplyInfo = {
SYN_REPLY, // Syn Reply
1, // Stream ID
@@ -5615,21 +5493,11 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyWithHeaders) {
scoped_ptr<SpdyFrame> rst(
spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR));
MockWrite writes[] = {
- CreateMockWrite(*req),
- CreateMockWrite(*rst),
- };
+ CreateMockWrite(*req), CreateMockWrite(*rst),
+ };
- scoped_ptr<SpdyHeaderBlock> initial_headers(new SpdyHeaderBlock());
- (*initial_headers)[spdy_util_.GetStatusKey()] = "200 OK";
- (*initial_headers)[spdy_util_.GetVersionKey()] = "HTTP/1.1";
scoped_ptr<SpdyFrame> stream1_reply(
- spdy_util_.ConstructSpdyControlFrame(initial_headers.Pass(),
- false,
- 1,
- LOWEST,
- SYN_REPLY,
- CONTROL_FLAG_NONE,
- 0));
+ spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
scoped_ptr<SpdyHeaderBlock> late_headers(new SpdyHeaderBlock());
(*late_headers)["hello"] = "bye";
@@ -5669,17 +5537,8 @@ TEST_P(SpdyNetworkTransactionTest, SynReplyWithLateHeaders) {
CreateMockWrite(*rst),
};
- scoped_ptr<SpdyHeaderBlock> initial_headers(new SpdyHeaderBlock());
- (*initial_headers)[spdy_util_.GetStatusKey()] = "200 OK";
- (*initial_headers)[spdy_util_.GetVersionKey()] = "HTTP/1.1";
scoped_ptr<SpdyFrame> stream1_reply(
- spdy_util_.ConstructSpdyControlFrame(initial_headers.Pass(),
- false,
- 1,
- LOWEST,
- SYN_REPLY,
- CONTROL_FLAG_NONE,
- 0));
+ spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1));
scoped_ptr<SpdyHeaderBlock> late_headers(new SpdyHeaderBlock());
(*late_headers)["hello"] = "bye";
« no previous file with comments | « net/spdy/spdy_headers_block_parser_test.cc ('k') | net/spdy/spdy_priority_tree.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698