diff options
author | ttuttle@chromium.org <ttuttle@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-10 02:53:05 +0000 |
---|---|---|
committer | ttuttle@chromium.org <ttuttle@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-10 02:53:05 +0000 |
commit | 9ec54f89915ea9d6cb39e8f5366d2fb447df0903 (patch) | |
tree | 49a664308ca24b4dc744db9a0e5ada84a15f826c | |
parent | c8893e02045b5cc858be8c6e20426ca64272d779 (diff) | |
download | chromium_src-9ec54f89915ea9d6cb39e8f5366d2fb447df0903.zip chromium_src-9ec54f89915ea9d6cb39e8f5366d2fb447df0903.tar.gz chromium_src-9ec54f89915ea9d6cb39e8f5366d2fb447df0903.tar.bz2 |
Merge ConstructSpdyFrame into SpdyTestUtil
Merge the two forms of ConstructSpdyFrame from spdy_test_util_spdy2/3 into
SpdyTestUtil and update tests to use the shared version.
BUG=226192
Review URL: https://chromiumcodereview.appspot.com/15077005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199346 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | net/spdy/spdy_http_stream_spdy3_unittest.cc | 4 | ||||
-rw-r--r-- | net/spdy/spdy_network_transaction_spdy2_unittest.cc | 90 | ||||
-rw-r--r-- | net/spdy/spdy_network_transaction_spdy3_unittest.cc | 90 | ||||
-rw-r--r-- | net/spdy/spdy_proxy_client_socket_spdy2_unittest.cc | 6 | ||||
-rw-r--r-- | net/spdy/spdy_proxy_client_socket_spdy3_unittest.cc | 6 | ||||
-rw-r--r-- | net/spdy/spdy_test_util_common.cc | 83 | ||||
-rw-r--r-- | net/spdy/spdy_test_util_common.h | 23 | ||||
-rw-r--r-- | net/spdy/spdy_test_util_spdy2.cc | 55 | ||||
-rw-r--r-- | net/spdy/spdy_test_util_spdy2.h | 15 | ||||
-rw-r--r-- | net/spdy/spdy_test_util_spdy3.cc | 54 | ||||
-rw-r--r-- | net/spdy/spdy_test_util_spdy3.h | 24 | ||||
-rw-r--r-- | net/spdy/spdy_websocket_test_util_spdy2.cc | 6 | ||||
-rw-r--r-- | net/spdy/spdy_websocket_test_util_spdy3.cc | 6 |
13 files changed, 251 insertions, 211 deletions
diff --git a/net/spdy/spdy_http_stream_spdy3_unittest.cc b/net/spdy/spdy_http_stream_spdy3_unittest.cc index 0562bed..d849f28 100644 --- a/net/spdy/spdy_http_stream_spdy3_unittest.cc +++ b/net/spdy/spdy_http_stream_spdy3_unittest.cc @@ -710,6 +710,8 @@ void GetECServerBoundCertAndProof( // a credential set. SpdyFrame* ConstructCredentialRequestFrame(size_t slot, const GURL& url, SpdyStreamId stream_id) { + SpdyTestUtil util(kProtoSPDY3); + const SpdyHeaderInfo syn_headers = { SYN_STREAM, stream_id, @@ -754,7 +756,7 @@ SpdyFrame* ConstructCredentialRequestFrame(size_t slot, const GURL& url, ":version", "HTTP/1.1" }; - return ConstructSpdyFrame( + return util.ConstructSpdyFrame( syn_headers, NULL, 0, headers, arraysize(headers)/2); } diff --git a/net/spdy/spdy_network_transaction_spdy2_unittest.cc b/net/spdy/spdy_network_transaction_spdy2_unittest.cc index 8f7ecd3..ec57eac 100644 --- a/net/spdy/spdy_network_transaction_spdy2_unittest.cc +++ b/net/spdy/spdy_network_transaction_spdy2_unittest.cc @@ -61,6 +61,8 @@ static SpdySessionDependencies* CreateSpdySessionDependencies( class SpdyNetworkTransactionSpdy2Test : public ::testing::TestWithParam<SpdyNetworkTransactionSpdy2TestTypes> { protected: + SpdyNetworkTransactionSpdy2Test() : spdy_util_(kProtoSPDY2) { + } virtual void SetUp() { google_get_request_initialized_ = false; @@ -598,6 +600,8 @@ class SpdyNetworkTransactionSpdy2Test callback.WaitForResult(); } + SpdyTestUtil spdy_util_; + private: scoped_ptr<UploadDataStream> upload_data_stream_; bool google_get_request_initialized_; @@ -1524,8 +1528,10 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, Put) { "version", "HTTP/1.1", "content-length", "0" }; - scoped_ptr<SpdyFrame> req(ConstructSpdyFrame(kSynStartHeader, NULL, 0, - kPutHeaders, arraysize(kPutHeaders) / 2)); + scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyFrame( + kSynStartHeader, + NULL, 0, + kPutHeaders, arraysize(kPutHeaders) / 2)); MockWrite writes[] = { CreateMockWrite(*req) }; @@ -1549,8 +1555,10 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, Put) { "version", "HTTP/1.1" "content-length", "1234" }; - scoped_ptr<SpdyFrame> resp(ConstructSpdyFrame(kSynReplyHeader, - NULL, 0, kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2)); + scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyFrame( + kSynReplyHeader, + NULL, 0, + kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2)); MockRead reads[] = { CreateMockRead(*resp), CreateMockRead(*body), @@ -1596,8 +1604,10 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, Head) { "version", "HTTP/1.1", "content-length", "0" }; - scoped_ptr<SpdyFrame> req(ConstructSpdyFrame(kSynStartHeader, NULL, 0, - kHeadHeaders, arraysize(kHeadHeaders) / 2)); + scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyFrame( + kSynStartHeader, + NULL, 0, + kHeadHeaders, arraysize(kHeadHeaders) / 2)); MockWrite writes[] = { CreateMockWrite(*req) }; @@ -1621,8 +1631,10 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, Head) { "version", "HTTP/1.1" "content-length", "1234" }; - scoped_ptr<SpdyFrame> resp(ConstructSpdyFrame(kSynReplyHeader, - NULL, 0, kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2)); + scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyFrame( + kSynReplyHeader, + NULL, 0, + kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2)); MockRead reads[] = { CreateMockRead(*resp), CreateMockRead(*body), @@ -2341,10 +2353,10 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, RedirectGetRequest) { }; // Setup writes/reads to www.google.com - scoped_ptr<SpdyFrame> req(ConstructSpdyFrame( + scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyFrame( kSynStartHeader, kExtraHeaders, arraysize(kExtraHeaders) / 2, kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2)); - scoped_ptr<SpdyFrame> req2(ConstructSpdyFrame( + scoped_ptr<SpdyFrame> req2(spdy_util_.ConstructSpdyFrame( kSynStartHeader, kExtraHeaders, arraysize(kExtraHeaders) / 2, kStandardGetHeaders2, arraysize(kStandardGetHeaders2) / 2)); scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReplyRedirect(1)); @@ -2554,11 +2566,11 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, RedirectServerPush) { // Setup writes/reads to www.google.com scoped_ptr<SpdyFrame> req( - ConstructSpdyFrame(kSynStartHeader, - kExtraHeaders, - arraysize(kExtraHeaders) / 2, - kStandardGetHeaders, - arraysize(kStandardGetHeaders) / 2)); + spdy_util_.ConstructSpdyFrame(kSynStartHeader, + kExtraHeaders, + arraysize(kExtraHeaders) / 2, + kStandardGetHeaders, + arraysize(kStandardGetHeaders) / 2)); scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); scoped_ptr<SpdyFrame> rep( ConstructSpdyPush(NULL, @@ -2598,11 +2610,11 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, RedirectServerPush) { "HTTP/1.1" }; scoped_ptr<SpdyFrame> req2( - ConstructSpdyFrame(kSynStartHeader, - kExtraHeaders, - arraysize(kExtraHeaders) / 2, - kStandardGetHeaders2, - arraysize(kStandardGetHeaders2) / 2)); + spdy_util_.ConstructSpdyFrame(kSynStartHeader, + kExtraHeaders, + arraysize(kExtraHeaders) / 2, + kStandardGetHeaders2, + arraysize(kStandardGetHeaders2) / 2)); scoped_ptr<SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1)); scoped_ptr<SpdyFrame> body2(ConstructSpdyBodyFrame(1, true)); MockWrite writes2[] = { @@ -3417,11 +3429,11 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, SynReplyHeadersVary) { // Construct the reply. scoped_ptr<SpdyFrame> frame_reply( - ConstructSpdyFrame(*test_cases[i].syn_reply, - test_cases[i].extra_headers[1], - test_cases[i].num_headers[1], - NULL, - 0)); + spdy_util_.ConstructSpdyFrame(*test_cases[i].syn_reply, + test_cases[i].extra_headers[1], + test_cases[i].num_headers[1], + NULL, + 0)); scoped_ptr<SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); MockRead reads[] = { @@ -3534,10 +3546,10 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, InvalidSynReply) { }; scoped_ptr<SpdyFrame> resp( - ConstructSpdyFrame(kSynStartHeader, - NULL, 0, - test_cases[i].headers, - test_cases[i].num_headers)); + spdy_util_.ConstructSpdyFrame(kSynStartHeader, + NULL, 0, + test_cases[i].headers, + test_cases[i].num_headers)); scoped_ptr<SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); MockRead reads[] = { CreateMockRead(*resp), @@ -4237,11 +4249,11 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, SettingsSaved) { // Construct the reply. scoped_ptr<SpdyFrame> reply( - ConstructSpdyFrame(kSynReplyInfo, - kExtraHeaders, - arraysize(kExtraHeaders) / 2, - NULL, - 0)); + spdy_util_.ConstructSpdyFrame(kSynReplyInfo, + kExtraHeaders, + arraysize(kExtraHeaders) / 2, + NULL, + 0)); const SpdySettingsIds kSampleId1 = SETTINGS_UPLOAD_BANDWIDTH; unsigned int kSampleValue1 = 0x0a0a0a0a; @@ -4376,11 +4388,11 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, SettingsPlayback) { // Construct the reply. scoped_ptr<SpdyFrame> reply( - ConstructSpdyFrame(kSynReplyInfo, - kExtraHeaders, - arraysize(kExtraHeaders) / 2, - NULL, - 0)); + spdy_util_.ConstructSpdyFrame(kSynReplyInfo, + kExtraHeaders, + arraysize(kExtraHeaders) / 2, + NULL, + 0)); scoped_ptr<SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); MockRead reads[] = { diff --git a/net/spdy/spdy_network_transaction_spdy3_unittest.cc b/net/spdy/spdy_network_transaction_spdy3_unittest.cc index e627255..08b8411 100644 --- a/net/spdy/spdy_network_transaction_spdy3_unittest.cc +++ b/net/spdy/spdy_network_transaction_spdy3_unittest.cc @@ -61,6 +61,8 @@ static SpdySessionDependencies* CreateSpdySessionDependencies( class SpdyNetworkTransactionSpdy3Test : public ::testing::TestWithParam<SpdyNetworkTransactionSpdy3TestTypes> { protected: + SpdyNetworkTransactionSpdy3Test() : spdy_util_(kProtoSPDY3) { + } virtual void SetUp() { google_get_request_initialized_ = false; @@ -600,6 +602,8 @@ class SpdyNetworkTransactionSpdy3Test callback.WaitForResult(); } + SpdyTestUtil spdy_util_; + private: scoped_ptr<UploadDataStream> upload_data_stream_; bool google_get_request_initialized_; @@ -1528,8 +1532,10 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, Put) { ":version", "HTTP/1.1", "content-length", "0" }; - scoped_ptr<SpdyFrame> req(ConstructSpdyFrame(kSynStartHeader, NULL, 0, - kPutHeaders, arraysize(kPutHeaders) / 2)); + scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyFrame( + kSynStartHeader, + NULL, 0, + kPutHeaders, arraysize(kPutHeaders) / 2)); MockWrite writes[] = { CreateMockWrite(*req) }; @@ -1553,8 +1559,10 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, Put) { ":version", "HTTP/1.1" "content-length", "1234" }; - scoped_ptr<SpdyFrame> resp(ConstructSpdyFrame(kSynReplyHeader, - NULL, 0, kStandardRespHeaders, arraysize(kStandardRespHeaders) / 2)); + scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyFrame( + kSynReplyHeader, + NULL, 0, + kStandardRespHeaders, arraysize(kStandardRespHeaders) / 2)); MockRead reads[] = { CreateMockRead(*resp), CreateMockRead(*body), @@ -1600,8 +1608,10 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, Head) { ":version", "HTTP/1.1", "content-length", "0" }; - scoped_ptr<SpdyFrame> req(ConstructSpdyFrame(kSynStartHeader, NULL, 0, - kHeadHeaders, arraysize(kHeadHeaders) / 2)); + scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyFrame( + kSynStartHeader, + NULL, 0, + kHeadHeaders, arraysize(kHeadHeaders) / 2)); MockWrite writes[] = { CreateMockWrite(*req) }; @@ -1625,8 +1635,10 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, Head) { ":version", "HTTP/1.1" "content-length", "1234" }; - scoped_ptr<SpdyFrame> resp(ConstructSpdyFrame(kSynReplyHeader, - NULL, 0, kStandardRespHeaders, arraysize(kStandardRespHeaders) / 2)); + scoped_ptr<SpdyFrame> resp(spdy_util_.ConstructSpdyFrame( + kSynReplyHeader, + NULL, 0, + kStandardRespHeaders, arraysize(kStandardRespHeaders) / 2)); MockRead reads[] = { CreateMockRead(*resp), CreateMockRead(*body), @@ -2925,10 +2937,10 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, RedirectGetRequest) { }; // Setup writes/reads to www.google.com - scoped_ptr<SpdyFrame> req(ConstructSpdyFrame( + scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyFrame( kSynStartHeader, kExtraHeaders, arraysize(kExtraHeaders) / 2, kStandardGetHeaders, arraysize(kStandardGetHeaders) / 2)); - scoped_ptr<SpdyFrame> req2(ConstructSpdyFrame( + scoped_ptr<SpdyFrame> req2(spdy_util_.ConstructSpdyFrame( kSynStartHeader, kExtraHeaders, arraysize(kExtraHeaders) / 2, kStandardGetHeaders2, arraysize(kStandardGetHeaders2) / 2)); scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReplyRedirect(1)); @@ -3140,11 +3152,11 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, RedirectServerPush) { // Setup writes/reads to www.google.com scoped_ptr<SpdyFrame> req( - ConstructSpdyFrame(kSynStartHeader, - kExtraHeaders, - arraysize(kExtraHeaders) / 2, - kStandardGetHeaders, - arraysize(kStandardGetHeaders) / 2)); + spdy_util_.ConstructSpdyFrame(kSynStartHeader, + kExtraHeaders, + arraysize(kExtraHeaders) / 2, + kStandardGetHeaders, + arraysize(kStandardGetHeaders) / 2)); scoped_ptr<SpdyFrame> resp(ConstructSpdyGetSynReply(NULL, 0, 1)); scoped_ptr<SpdyFrame> rep( ConstructSpdyPush(NULL, @@ -3184,11 +3196,11 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, RedirectServerPush) { "HTTP/1.1" }; scoped_ptr<SpdyFrame> req2( - ConstructSpdyFrame(kSynStartHeader, - kExtraHeaders, - arraysize(kExtraHeaders) / 2, - kStandardGetHeaders2, - arraysize(kStandardGetHeaders2) / 2)); + spdy_util_.ConstructSpdyFrame(kSynStartHeader, + kExtraHeaders, + arraysize(kExtraHeaders) / 2, + kStandardGetHeaders2, + arraysize(kStandardGetHeaders2) / 2)); scoped_ptr<SpdyFrame> resp2(ConstructSpdyGetSynReply(NULL, 0, 1)); scoped_ptr<SpdyFrame> body2(ConstructSpdyBodyFrame(1, true)); MockWrite writes2[] = { @@ -4003,11 +4015,11 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, SynReplyHeadersVary) { // Construct the reply. scoped_ptr<SpdyFrame> frame_reply( - ConstructSpdyFrame(*test_cases[i].syn_reply, - test_cases[i].extra_headers[1], - test_cases[i].num_headers[1], - NULL, - 0)); + spdy_util_.ConstructSpdyFrame(*test_cases[i].syn_reply, + test_cases[i].extra_headers[1], + test_cases[i].num_headers[1], + NULL, + 0)); scoped_ptr<SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); MockRead reads[] = { @@ -4120,10 +4132,10 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, InvalidSynReply) { }; scoped_ptr<SpdyFrame> resp( - ConstructSpdyFrame(kSynStartHeader, - NULL, 0, - test_cases[i].headers, - test_cases[i].num_headers)); + spdy_util_.ConstructSpdyFrame(kSynStartHeader, + NULL, 0, + test_cases[i].headers, + test_cases[i].num_headers)); scoped_ptr<SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); MockRead reads[] = { CreateMockRead(*resp), @@ -4823,11 +4835,11 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, SettingsSaved) { // Construct the reply. scoped_ptr<SpdyFrame> reply( - ConstructSpdyFrame(kSynReplyInfo, - kExtraHeaders, - arraysize(kExtraHeaders) / 2, - NULL, - 0)); + spdy_util_.ConstructSpdyFrame(kSynReplyInfo, + kExtraHeaders, + arraysize(kExtraHeaders) / 2, + NULL, + 0)); const SpdySettingsIds kSampleId1 = SETTINGS_UPLOAD_BANDWIDTH; unsigned int kSampleValue1 = 0x0a0a0a0a; @@ -4962,11 +4974,11 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, SettingsPlayback) { // Construct the reply. scoped_ptr<SpdyFrame> reply( - ConstructSpdyFrame(kSynReplyInfo, - kExtraHeaders, - arraysize(kExtraHeaders) / 2, - NULL, - 0)); + spdy_util_.ConstructSpdyFrame(kSynReplyInfo, + kExtraHeaders, + arraysize(kExtraHeaders) / 2, + NULL, + 0)); scoped_ptr<SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); MockRead reads[] = { diff --git a/net/spdy/spdy_proxy_client_socket_spdy2_unittest.cc b/net/spdy/spdy_proxy_client_socket_spdy2_unittest.cc index 91c92f9..0e2d2b1 100644 --- a/net/spdy/spdy_proxy_client_socket_spdy2_unittest.cc +++ b/net/spdy/spdy_proxy_client_socket_spdy2_unittest.cc @@ -116,6 +116,7 @@ class SpdyProxyClientSocketSpdy2Test : public PlatformTest { CapturingBoundNetLog net_log_; private: + SpdyTestUtil spdy_util_; scoped_refptr<HttpNetworkSession> session_; scoped_refptr<IOBuffer> read_buf_; SpdySessionDependencies session_deps_; @@ -138,6 +139,7 @@ class SpdyProxyClientSocketSpdy2Test : public PlatformTest { SpdyProxyClientSocketSpdy2Test::SpdyProxyClientSocketSpdy2Test() : sock_(NULL), data_(NULL), + spdy_util_(kProtoSPDY2), session_(NULL), read_buf_(NULL), session_deps_(kProtoSPDY2), @@ -339,7 +341,7 @@ SpdyProxyClientSocketSpdy2Test::ConstructConnectRequestFrame() { "user-agent", kUserAgent, "version", "HTTP/1.1", }; - return ConstructSpdyFrame( + return spdy_util_.ConstructSpdyFrame( kSynStartHeader, NULL, 0, kConnectHeaders, arraysize(kConnectHeaders)/2); } @@ -368,7 +370,7 @@ SpdyProxyClientSocketSpdy2Test::ConstructConnectAuthRequestFrame() { "version", "HTTP/1.1", "proxy-authorization", "Basic Zm9vOmJhcg==", }; - return ConstructSpdyFrame( + return spdy_util_.ConstructSpdyFrame( kSynStartHeader, NULL, 0, kConnectHeaders, arraysize(kConnectHeaders)/2); } diff --git a/net/spdy/spdy_proxy_client_socket_spdy3_unittest.cc b/net/spdy/spdy_proxy_client_socket_spdy3_unittest.cc index 331fa60..0251f81 100644 --- a/net/spdy/spdy_proxy_client_socket_spdy3_unittest.cc +++ b/net/spdy/spdy_proxy_client_socket_spdy3_unittest.cc @@ -116,6 +116,7 @@ class SpdyProxyClientSocketSpdy3Test : public PlatformTest { CapturingBoundNetLog net_log_; private: + SpdyTestUtil spdy_util_; scoped_refptr<HttpNetworkSession> session_; scoped_refptr<IOBuffer> read_buf_; SpdySessionDependencies session_deps_; @@ -138,6 +139,7 @@ class SpdyProxyClientSocketSpdy3Test : public PlatformTest { SpdyProxyClientSocketSpdy3Test::SpdyProxyClientSocketSpdy3Test() : sock_(NULL), data_(NULL), + spdy_util_(kProtoSPDY3), session_(NULL), read_buf_(NULL), session_deps_(kProtoSPDY3), @@ -339,7 +341,7 @@ SpdyProxyClientSocketSpdy3Test::ConstructConnectRequestFrame() { "user-agent", kUserAgent, ":version", "HTTP/1.1", }; - return ConstructSpdyFrame( + return spdy_util_.ConstructSpdyFrame( kSynStartHeader, NULL, 0, kConnectHeaders, arraysize(kConnectHeaders)/2); } @@ -368,7 +370,7 @@ SpdyProxyClientSocketSpdy3Test::ConstructConnectAuthRequestFrame() { ":version", "HTTP/1.1", "proxy-authorization", "Basic Zm9vOmJhcg==", }; - return ConstructSpdyFrame( + return spdy_util_.ConstructSpdyFrame( kSynStartHeader, NULL, 0, kConnectHeaders, arraysize(kConnectHeaders)/2); } diff --git a/net/spdy/spdy_test_util_common.cc b/net/spdy/spdy_test_util_common.cc index b8ff86f..4f17b65 100644 --- a/net/spdy/spdy_test_util_common.cc +++ b/net/spdy/spdy_test_util_common.cc @@ -516,7 +516,39 @@ void SpdySessionPoolPeer::EnableSendingInitialSettings(bool enabled) { pool_->enable_sending_initial_settings_ = enabled; } -SpdyTestUtil::SpdyTestUtil(NextProto protocol) : protocol_(protocol) { +NextProto NextProtoFromSpdyVersion(int spdy_version) { + switch (spdy_version) { + case kSpdyVersion2: + return kProtoSPDY2; + case kSpdyVersion3: + return kProtoSPDY3; + case kSpdyVersion4: + return kProtoSPDY4a1; + default: + NOTREACHED(); + return kProtoUnknown; + } +} + +int SpdyVersionFromNextProto(NextProto next_proto) { + switch (next_proto) { + case kProtoSPDY2: + case kProtoSPDY21: + return kSpdyVersion2; + case kProtoSPDY3: + case kProtoSPDY31: + return kSpdyVersion3; + case kProtoSPDY4a1: + return kSpdyVersion4; + default: + NOTREACHED(); + return 0; + } +} + +SpdyTestUtil::SpdyTestUtil(NextProto protocol) + : protocol_(protocol), + spdy_version_(SpdyVersionFromNextProto(protocol)) { DCHECK(next_proto_is_spdy(protocol)) << "Invalid protocol: " << protocol; } @@ -557,4 +589,53 @@ scoped_ptr<SpdyHeaderBlock> SpdyTestUtil::ConstructPostHeaderBlock( return header_block.Pass(); } +SpdyFrame* SpdyTestUtil::ConstructSpdyFrame( + const SpdyHeaderInfo& header_info, + scoped_ptr<SpdyHeaderBlock> headers) const { + BufferedSpdyFramer framer(spdy_version_, header_info.compressed); + const bool spdy2 = protocol_ < kProtoSPDY3; + SpdyFrame* frame = NULL; + switch (header_info.kind) { + case DATA: + frame = framer.CreateDataFrame(header_info.id, header_info.data, + header_info.data_length, + header_info.data_flags); + break; + case SYN_STREAM: + frame = framer.CreateSynStream(header_info.id, header_info.assoc_id, + header_info.priority, + spdy2 ? 0 : header_info.credential_slot, + header_info.control_flags, + header_info.compressed, headers.get()); + break; + case SYN_REPLY: + frame = framer.CreateSynReply(header_info.id, header_info.control_flags, + header_info.compressed, headers.get()); + break; + case RST_STREAM: + frame = framer.CreateRstStream(header_info.id, header_info.status); + break; + case HEADERS: + frame = framer.CreateHeaders(header_info.id, header_info.control_flags, + header_info.compressed, headers.get()); + break; + default: + ADD_FAILURE(); + break; + } + return frame; +} + +SpdyFrame* SpdyTestUtil::ConstructSpdyFrame(const SpdyHeaderInfo& header_info, + const char* const extra_headers[], + int extra_header_count, + const char* const tail_headers[], + int tail_header_count) const { + scoped_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock()); + AppendToHeaderBlock(extra_headers, extra_header_count, headers.get()); + if (tail_headers && tail_header_count) + AppendToHeaderBlock(tail_headers, tail_header_count, headers.get()); + return ConstructSpdyFrame(header_info, headers.Pass()); +} + } // namespace net diff --git a/net/spdy/spdy_test_util_common.h b/net/spdy/spdy_test_util_common.h index 4763583..5531a85 100644 --- a/net/spdy/spdy_test_util_common.h +++ b/net/spdy/spdy_test_util_common.h @@ -271,6 +271,11 @@ class SpdySessionPoolPeer { DISALLOW_COPY_AND_ASSIGN(SpdySessionPoolPeer); }; +// TODO(ttuttle): Move these somewhere more widely-accessible; surely this is +// not the only place that needs such functions. +NextProto NextProtoFromSpdyVersion(int spdy_version); +int SpdyVersionFromNextProto(NextProto next_proto); + class SpdyTestUtil { public: explicit SpdyTestUtil(NextProto protocol); @@ -281,8 +286,26 @@ class SpdyTestUtil { base::StringPiece url, int64 content_length) const; + // Construct a SPDY frame. If it is a SYN_STREAM or SYN_REPLY frame (as + // specified in header_info.kind), the provided headers are included in the + // frame. + SpdyFrame* ConstructSpdyFrame( + const SpdyHeaderInfo& header_info, + scoped_ptr<SpdyHeaderBlock> headers) const; + + // Construct a SPDY frame. If it is a SYN_STREAM or SYN_REPLY frame (as + // specified in header_info.kind), the headers provided in extra_headers and + // (if non-NULL) tail_headers are concatenated and included in the frame. + // (extra_headers must always be non-NULL.) + SpdyFrame* ConstructSpdyFrame(const SpdyHeaderInfo& header_info, + const char* const extra_headers[], + int extra_header_count, + const char* const tail_headers[], + int tail_header_count) const; + private: const NextProto protocol_; + const int spdy_version_; }; } // namespace net diff --git a/net/spdy/spdy_test_util_spdy2.cc b/net/spdy/spdy_test_util_spdy2.cc index be9276e..a8c1588 100644 --- a/net/spdy/spdy_test_util_spdy2.cc +++ b/net/spdy/spdy_test_util_spdy2.cc @@ -49,54 +49,33 @@ scoped_ptr<SpdyHeaderBlock> ConstructPostHeaderBlock(base::StringPiece url, return util.ConstructPostHeaderBlock(url, content_length); } -} // namespace - +// Construct a SPDY frame. SpdyFrame* ConstructSpdyFrame(const SpdyHeaderInfo& header_info, scoped_ptr<SpdyHeaderBlock> headers) { - BufferedSpdyFramer framer(kSpdyVersion2, header_info.compressed); - SpdyFrame* frame = NULL; - switch (header_info.kind) { - case DATA: - frame = framer.CreateDataFrame(header_info.id, header_info.data, - header_info.data_length, - header_info.data_flags); - break; - case SYN_STREAM: - frame = framer.CreateSynStream(header_info.id, header_info.assoc_id, - header_info.priority, 0, - header_info.control_flags, - header_info.compressed, headers.get()); - break; - case SYN_REPLY: - frame = framer.CreateSynReply(header_info.id, header_info.control_flags, - header_info.compressed, headers.get()); - break; - case RST_STREAM: - frame = framer.CreateRstStream(header_info.id, header_info.status); - break; - case HEADERS: - frame = framer.CreateHeaders(header_info.id, header_info.control_flags, - header_info.compressed, headers.get()); - break; - default: - ADD_FAILURE(); - break; - } - return frame; + SpdyTestUtil util(kProtoSPDY2); + return util.ConstructSpdyFrame(header_info, headers.Pass()); } +// Construct a SPDY frame. +// |extra_headers| are the extra header-value pairs, which typically +// will vary the most between calls. +// |tail| is any (relatively constant) header-value pairs to add. +// Returns a SpdyFrame. SpdyFrame* ConstructSpdyFrame(const SpdyHeaderInfo& header_info, const char* const extra_headers[], int extra_header_count, - const char* const tail[], + const char* const tail_headers[], int tail_header_count) { - scoped_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock()); - AppendToHeaderBlock(extra_headers, extra_header_count, headers.get()); - if (tail && tail_header_count) - AppendToHeaderBlock(tail, tail_header_count, headers.get()); - return ConstructSpdyFrame(header_info, headers.Pass()); + SpdyTestUtil util(kProtoSPDY2); + return util.ConstructSpdyFrame(header_info, + extra_headers, + extra_header_count, + tail_headers, + tail_header_count); } +} // namespace + SpdyFrame* ConstructSpdySettings(const SettingsMap& settings) { BufferedSpdyFramer framer(2, false); return framer.CreateSettings(settings); diff --git a/net/spdy/spdy_test_util_spdy2.h b/net/spdy/spdy_test_util_spdy2.h index efe0778..ebd1e51 100644 --- a/net/spdy/spdy_test_util_spdy2.h +++ b/net/spdy/spdy_test_util_spdy2.h @@ -24,21 +24,6 @@ namespace test_spdy2 { // Can't find a function you're looking for? ttuttle is migrating functions // from here into methods in the SpdyTestUtil class in spdy_test_common.h. -// Construct a SPDY frame. -SpdyFrame* ConstructSpdyFrame(const SpdyHeaderInfo& header_info, - scoped_ptr<SpdyHeaderBlock> headers); - -// Construct a SPDY frame. -// |extra_headers| are the extra header-value pairs, which typically -// will vary the most between calls. -// |tail| is any (relatively constant) header-value pairs to add. -// Returns a SpdyFrame. -SpdyFrame* ConstructSpdyFrame(const SpdyHeaderInfo& header_info, - const char* const extra_headers[], - int extra_header_count, - const char* const tail[], - int tail_header_count); - // Construct a generic SpdyControlFrame. SpdyFrame* ConstructSpdyControlFrame(const char* const extra_headers[], int extra_header_count, diff --git a/net/spdy/spdy_test_util_spdy3.cc b/net/spdy/spdy_test_util_spdy3.cc index bd9b38f..3ea8c19 100644 --- a/net/spdy/spdy_test_util_spdy3.cc +++ b/net/spdy/spdy_test_util_spdy3.cc @@ -48,62 +48,24 @@ scoped_ptr<SpdyHeaderBlock> ConstructPostHeaderBlock(base::StringPiece url, return util.ConstructPostHeaderBlock(url, content_length); } -} // namespace - +// Construct a SPDY frame. |spdy_version| must be kSpdyVersion3 or +// kSpdyVersion4. SpdyFrame* ConstructSpdyFrameWithVersion(int spdy_version, const SpdyHeaderInfo& header_info, scoped_ptr<SpdyHeaderBlock> headers) { DCHECK(spdy_version == kSpdyVersion3 || spdy_version == kSpdyVersion4); - BufferedSpdyFramer framer(spdy_version, header_info.compressed); - SpdyFrame* frame = NULL; - switch (header_info.kind) { - case DATA: - frame = framer.CreateDataFrame(header_info.id, header_info.data, - header_info.data_length, - header_info.data_flags); - break; - case SYN_STREAM: - frame = framer.CreateSynStream(header_info.id, header_info.assoc_id, - header_info.priority, - header_info.credential_slot, - header_info.control_flags, - header_info.compressed, headers.get()); - break; - case SYN_REPLY: - frame = framer.CreateSynReply(header_info.id, header_info.control_flags, - header_info.compressed, headers.get()); - break; - case RST_STREAM: - frame = framer.CreateRstStream(header_info.id, header_info.status); - break; - case HEADERS: - frame = framer.CreateHeaders(header_info.id, header_info.control_flags, - header_info.compressed, headers.get()); - break; - default: - ADD_FAILURE(); - break; - } - return frame; + SpdyTestUtil util(NextProtoFromSpdyVersion(spdy_version)); + return util.ConstructSpdyFrame(header_info, headers.Pass()); } +// Construct a SPDY frame. SpdyFrame* ConstructSpdyFrame(const SpdyHeaderInfo& header_info, scoped_ptr<SpdyHeaderBlock> headers) { - return ConstructSpdyFrameWithVersion( - kSpdyVersion3, header_info, headers.Pass()); + SpdyTestUtil util(kProtoSPDY3); + return util.ConstructSpdyFrame(header_info, headers.Pass()); } -SpdyFrame* ConstructSpdyFrame(const SpdyHeaderInfo& header_info, - const char* const extra_headers[], - int extra_header_count, - const char* const tail[], - int tail_header_count) { - scoped_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock()); - AppendToHeaderBlock(extra_headers, extra_header_count, headers.get()); - if (tail && tail_header_count) - AppendToHeaderBlock(tail, tail_header_count, headers.get()); - return ConstructSpdyFrame(header_info, headers.Pass()); -} +} // namespace SpdyFrame* ConstructSpdySettings(const SettingsMap& settings) { BufferedSpdyFramer framer(3, false); diff --git a/net/spdy/spdy_test_util_spdy3.h b/net/spdy/spdy_test_util_spdy3.h index ac2857a..cd166b8 100644 --- a/net/spdy/spdy_test_util_spdy3.h +++ b/net/spdy/spdy_test_util_spdy3.h @@ -28,30 +28,6 @@ namespace test_spdy3 { // Can't find a function you're looking for? ttuttle is migrating functions // from here into methods in the SpdyTestUtil class in spdy_test_common.h. -// Construct a SPDY frame. |spdy_version| must be kSpdyVersion3 or -// kSpdyVersion4. -// -// TODO(akalin): Move this to a common area once the SpdyHeaderInfo -// struct is shared between the SPDY2 and SPDY3 tests. -SpdyFrame* ConstructSpdyFrameWithVersion(int spdy_version, - const SpdyHeaderInfo& header_info, - scoped_ptr<SpdyHeaderBlock> headers); - -// Construct a SPDY frame. -SpdyFrame* ConstructSpdyFrame(const SpdyHeaderInfo& header_info, - scoped_ptr<SpdyHeaderBlock> headers); - -// Construct a SPDY frame. -// |extra_headers| are the extra header-value pairs, which typically -// will vary the most between calls. -// |tail| is any (relatively constant) header-value pairs to add. -// Returns a SpdyFrame. -SpdyFrame* ConstructSpdyFrame(const SpdyHeaderInfo& header_info, - const char* const extra_headers[], - int extra_header_count, - const char* const tail[], - int tail_header_count); - // Construct a SPDY control frame. |spdy_version| must be // kSpdyVersion3 or kSpdyVersion4. // diff --git a/net/spdy/spdy_websocket_test_util_spdy2.cc b/net/spdy/spdy_websocket_test_util_spdy2.cc index 16536dd..0738ef8 100644 --- a/net/spdy/spdy_websocket_test_util_spdy2.cc +++ b/net/spdy/spdy_websocket_test_util_spdy2.cc @@ -67,6 +67,7 @@ SpdyFrame* ConstructSpdyWebSocketHandshakeRequestFrame( int header_count, SpdyStreamId stream_id, RequestPriority request_priority) { + SpdyTestUtil util(kProtoSPDY2); // SPDY SYN_STREAM control frame header. const SpdyHeaderInfo kSynStreamHeader = { @@ -84,7 +85,7 @@ SpdyFrame* ConstructSpdyWebSocketHandshakeRequestFrame( }; // Construct SPDY SYN_STREAM control frame. - return ConstructSpdyFrame( + return util.ConstructSpdyFrame( kSynStreamHeader, kDefaultExtraHeaders, kDefaultExtraHeaderCount, @@ -97,6 +98,7 @@ SpdyFrame* ConstructSpdyWebSocketHandshakeResponseFrame( int header_count, SpdyStreamId stream_id, RequestPriority request_priority) { + SpdyTestUtil util(kProtoSPDY2); // SPDY SYN_REPLY control frame header. const SpdyHeaderInfo kSynReplyHeader = { @@ -114,7 +116,7 @@ SpdyFrame* ConstructSpdyWebSocketHandshakeResponseFrame( }; // Construct SPDY SYN_REPLY control frame. - return ConstructSpdyFrame( + return util.ConstructSpdyFrame( kSynReplyHeader, kDefaultExtraHeaders, kDefaultExtraHeaderCount, diff --git a/net/spdy/spdy_websocket_test_util_spdy3.cc b/net/spdy/spdy_websocket_test_util_spdy3.cc index 657dab6..82b10c9 100644 --- a/net/spdy/spdy_websocket_test_util_spdy3.cc +++ b/net/spdy/spdy_websocket_test_util_spdy3.cc @@ -68,6 +68,7 @@ SpdyFrame* ConstructSpdyWebSocketHandshakeRequestFrame( int header_count, SpdyStreamId stream_id, RequestPriority request_priority) { + SpdyTestUtil util(kProtoSPDY3); // SPDY SYN_STREAM control frame header. const SpdyHeaderInfo kSynStreamHeader = { @@ -85,7 +86,7 @@ SpdyFrame* ConstructSpdyWebSocketHandshakeRequestFrame( }; // Construct SPDY SYN_STREAM control frame. - return ConstructSpdyFrame( + return util.ConstructSpdyFrame( kSynStreamHeader, kDefaultExtraHeaders, kDefaultExtraHeaderCount, @@ -98,6 +99,7 @@ SpdyFrame* ConstructSpdyWebSocketHandshakeResponseFrame( int header_count, SpdyStreamId stream_id, RequestPriority request_priority) { + SpdyTestUtil util(kProtoSPDY3); // SPDY SYN_REPLY control frame header. const SpdyHeaderInfo kSynReplyHeader = { @@ -115,7 +117,7 @@ SpdyFrame* ConstructSpdyWebSocketHandshakeResponseFrame( }; // Construct SPDY SYN_REPLY control frame. - return ConstructSpdyFrame( + return util.ConstructSpdyFrame( kSynReplyHeader, kDefaultExtraHeaders, kDefaultExtraHeaderCount, |