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

Unified Diff: net/spdy/spdy_stream_spdy3_unittest.cc

Issue 12743006: [SPDY] Refactor tests in preparation for a fix for a session flow control bug (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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
Index: net/spdy/spdy_stream_spdy3_unittest.cc
diff --git a/net/spdy/spdy_stream_spdy3_unittest.cc b/net/spdy/spdy_stream_spdy3_unittest.cc
index b26d05daa677bd24a4fe1669aeb4bb1e08f39a79..3dd851f298ac79cb4b5ef006b31a35fdac74f6b2 100644
--- a/net/spdy/spdy_stream_spdy3_unittest.cc
+++ b/net/spdy/spdy_stream_spdy3_unittest.cc
@@ -42,36 +42,11 @@ const SpdyHeaderInfo kSynStartHeader = {
DATA_FLAG_NONE
};
-const char* const kGetHeaders[] = {
- ":method",
- "GET",
- ":scheme",
- "http",
- ":host",
- "www.google.com",
- ":path",
- "/",
- ":version",
- "HTTP/1.1",
-};
-
-// TODO(akalin): Factor out the two functions below (duplicated in
-// spdy_stream_spdy2_unittest.cc). The main sticking point is the
-// different definitions of the SpdyHeaderInfo struct in
-// spdy_test_util_spdy{2,3}.h.
-
-scoped_ptr<SpdyFrame> ConstructSpdyGetRequest() {
+// TODO(akalin): Merge with ConstructSpdyGet(). (The sticking point is
+// CONTROL_FLAG_NONE vs. CONTROL_FLAG_FIN.)
+scoped_ptr<SpdyFrame> ConstructSpdyGetRequest(const char* url) {
return scoped_ptr<SpdyFrame>(
- ConstructSpdyPacket(
- kSynStartHeader, NULL, 0, kGetHeaders, arraysize(kGetHeaders) / 2));
-}
-
-scoped_ptr<SpdyHeaderBlock> ConstructSpdyGetHeaderBlock() {
- scoped_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock);
- for (size_t i = 0; i < arraysize(kGetHeaders) / 2; ++i) {
- (*headers)[kGetHeaders[2*i]] = kGetHeaders[2*i+1];
- }
- return headers.Pass();
+ ConstructSpdyPacket(kSynStartHeader, ConstructHeaderBlock(url)));
}
scoped_ptr<SpdyFrame> ConstructSpdyBodyFrame(const char* data, int length) {
@@ -117,9 +92,11 @@ class SpdyStreamSpdy3Test : public testing::Test {
};
TEST_F(SpdyStreamSpdy3Test, SendDataAfterOpen) {
+ const char kStreamUrl[] = "http://www.google.com/";
+ GURL url(kStreamUrl);
session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_);
- scoped_ptr<SpdyFrame> req = ConstructSpdyGetRequest();
+ scoped_ptr<SpdyFrame> req = ConstructSpdyGetRequest(kStreamUrl);
scoped_ptr<SpdyFrame> msg = ConstructSpdyBodyFrame("\0hello!\xff", 8);
MockWrite writes[] = {
CreateMockWrite(*req),
@@ -147,8 +124,6 @@ TEST_F(SpdyStreamSpdy3Test, SendDataAfterOpen) {
session_deps_.socket_factory->AddSocketDataProvider(&data);
scoped_refptr<SpdySession> session(CreateSpdySession());
- const char kStreamUrl[] = "http://www.google.com/";
- GURL url(kStreamUrl);
InitializeSpdySession(session, host_port_pair_);
@@ -164,7 +139,7 @@ TEST_F(SpdyStreamSpdy3Test, SendDataAfterOpen) {
EXPECT_FALSE(stream->HasUrl());
- stream->set_spdy_headers(ConstructSpdyGetHeaderBlock());
+ stream->set_spdy_headers(ConstructHeaderBlock(kStreamUrl));
EXPECT_TRUE(stream->HasUrl());
EXPECT_EQ(kStreamUrl, stream->GetUrl().spec());
@@ -307,9 +282,12 @@ TEST_F(SpdyStreamSpdy3Test, PushedStream) {
}
TEST_F(SpdyStreamSpdy3Test, StreamError) {
+ const char kStreamUrl[] = "http://www.google.com/";
+ GURL url(kStreamUrl);
+
session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_);
- scoped_ptr<SpdyFrame> req = ConstructSpdyGetRequest();
+ scoped_ptr<SpdyFrame> req = ConstructSpdyGetRequest(kStreamUrl);
scoped_ptr<SpdyFrame> msg = ConstructSpdyBodyFrame("\0hello!\xff", 8);
MockWrite writes[] = {
CreateMockWrite(*req),
@@ -339,8 +317,6 @@ TEST_F(SpdyStreamSpdy3Test, StreamError) {
session_deps_.socket_factory->AddSocketDataProvider(&data);
scoped_refptr<SpdySession> session(CreateSpdySession());
- const char kStreamUrl[] = "http://www.google.com/";
- GURL url(kStreamUrl);
InitializeSpdySession(session, host_port_pair_);
@@ -356,7 +332,7 @@ TEST_F(SpdyStreamSpdy3Test, StreamError) {
EXPECT_FALSE(stream->HasUrl());
- stream->set_spdy_headers(ConstructSpdyGetHeaderBlock());
+ stream->set_spdy_headers(ConstructHeaderBlock(kStreamUrl));
EXPECT_TRUE(stream->HasUrl());
EXPECT_EQ(kStreamUrl, stream->GetUrl().spec());
@@ -444,15 +420,18 @@ TEST_F(SpdyStreamSpdy3Test, IncreaseSendWindowSizeOverflow) {
EXPECT_EQ(ERR_CONNECTION_CLOSED, delegate->WaitForClose());
}
-// Cause a stall by reducing the flow control recv window to 0. The
+// Cause a stall by reducing the flow control send window to 0. The
// stream should resume when that window is then increased.
-TEST_F(SpdyStreamSpdy3Test, ResumeAfterRecvWindowSizeIncrease) {
+TEST_F(SpdyStreamSpdy3Test, ResumeAfterSendWindowSizeIncrease) {
+ const char kStreamUrl[] = "http://www.google.com/";
+ GURL url(kStreamUrl);
+
session_ =
SpdySessionDependencies::SpdyCreateSessionDeterministic(&session_deps_);
const char kBodyData[] = "Body data";
const size_t kBodyDataSize = arraysize(kBodyData);
- scoped_ptr<SpdyFrame> req = ConstructSpdyGetRequest();
+ scoped_ptr<SpdyFrame> req = ConstructSpdyGetRequest(kStreamUrl);
scoped_ptr<SpdyFrame> msg = ConstructSpdyBodyFrame(kBodyData, kBodyDataSize);
MockWrite writes[] = {
CreateMockWrite(*req, 0),
@@ -475,8 +454,6 @@ TEST_F(SpdyStreamSpdy3Test, ResumeAfterRecvWindowSizeIncrease) {
session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data);
scoped_refptr<SpdySession> session(CreateSpdySession());
- const char kStreamUrl[] = "http://www.google.com/";
- GURL url(kStreamUrl);
InitializeSpdySession(session, host_port_pair_);
@@ -491,7 +468,7 @@ TEST_F(SpdyStreamSpdy3Test, ResumeAfterRecvWindowSizeIncrease) {
EXPECT_FALSE(stream->HasUrl());
- stream->set_spdy_headers(ConstructSpdyGetHeaderBlock());
+ stream->set_spdy_headers(ConstructHeaderBlock(kStreamUrl));
EXPECT_TRUE(stream->HasUrl());
EXPECT_EQ(kStreamUrl, stream->GetUrl().spec());
@@ -526,15 +503,18 @@ TEST_F(SpdyStreamSpdy3Test, ResumeAfterRecvWindowSizeIncrease) {
EXPECT_EQ(static_cast<int>(kBodyDataSize), delegate.body_data_sent());
}
-// Cause a stall by reducing the flow control recv window to 0. The
+// Cause a stall by reducing the flow control send window to 0. The
// stream should resume when that window is then adjusted positively.
-TEST_F(SpdyStreamSpdy3Test, ResumeAfterRecvWindowSizeAdjust) {
+TEST_F(SpdyStreamSpdy3Test, ResumeAfterSendWindowSizeAdjust) {
+ const char kStreamUrl[] = "http://www.google.com/";
+ GURL url(kStreamUrl);
+
session_ =
SpdySessionDependencies::SpdyCreateSessionDeterministic(&session_deps_);
const char kBodyData[] = "Body data";
const size_t kBodyDataSize = arraysize(kBodyData);
- scoped_ptr<SpdyFrame> req = ConstructSpdyGetRequest();
+ scoped_ptr<SpdyFrame> req = ConstructSpdyGetRequest(kStreamUrl);
scoped_ptr<SpdyFrame> msg(
ConstructSpdyBodyFrame(kBodyData, kBodyDataSize));
MockWrite writes[] = {
@@ -559,8 +539,6 @@ TEST_F(SpdyStreamSpdy3Test, ResumeAfterRecvWindowSizeAdjust) {
session_deps_.deterministic_socket_factory->AddSocketDataProvider(&data);
scoped_refptr<SpdySession> session(CreateSpdySession());
- const char kStreamUrl[] = "http://www.google.com/";
- GURL url(kStreamUrl);
InitializeSpdySession(session, host_port_pair_);
@@ -575,7 +553,7 @@ TEST_F(SpdyStreamSpdy3Test, ResumeAfterRecvWindowSizeAdjust) {
EXPECT_FALSE(stream->HasUrl());
- stream->set_spdy_headers(ConstructSpdyGetHeaderBlock());
+ stream->set_spdy_headers(ConstructHeaderBlock(kStreamUrl));
EXPECT_TRUE(stream->HasUrl());
EXPECT_EQ(kStreamUrl, stream->GetUrl().spec());

Powered by Google App Engine
This is Rietveld 408576698