summaryrefslogtreecommitdiffstats
path: root/net/spdy/spdy_session_unittest.cc
diff options
context:
space:
mode:
authorerikchen@google.com <erikchen@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-05 17:59:58 +0000
committererikchen@google.com <erikchen@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-05 17:59:58 +0000
commite3ebba0fbbfb2c7eec286a964717859aa70b9fcf (patch)
treeb2a53d996ca4537fbb6516dcddba122d1cb6cbcd /net/spdy/spdy_session_unittest.cc
parent1b7cde151f8e0e922a8c52c6ca48f6f1c6de21ec (diff)
downloadchromium_src-e3ebba0fbbfb2c7eec286a964717859aa70b9fcf.zip
chromium_src-e3ebba0fbbfb2c7eec286a964717859aa70b9fcf.tar.gz
chromium_src-e3ebba0fbbfb2c7eec286a964717859aa70b9fcf.tar.bz2
Implement server push protocol 2.
TEST=net_unittests BUG=34761 Review URL: http://codereview.chromium.org/3020032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55095 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/spdy/spdy_session_unittest.cc')
-rw-r--r--net/spdy/spdy_session_unittest.cc78
1 files changed, 0 insertions, 78 deletions
diff --git a/net/spdy/spdy_session_unittest.cc b/net/spdy/spdy_session_unittest.cc
index e78f0d9..b3659e7 100644
--- a/net/spdy/spdy_session_unittest.cc
+++ b/net/spdy/spdy_session_unittest.cc
@@ -111,82 +111,4 @@ TEST_F(SpdySessionTest, GoAway) {
}
} // namespace
-
-TEST_F(SpdySessionTest, GetActivePushStream) {
- spdy::SpdyFramer framer;
- SpdySessionTest::TurnOffCompression();
-
- SpdySessionDependencies session_deps;
- session_deps.host_resolver->set_synchronous_mode(true);
-
- MockConnect connect_data(false, OK);
- spdy::SpdyHeaderBlock headers;
- headers["path"] = "/foo.js";
- headers["status"] = "200";
- headers["version"] = "HTTP/1.1";
- scoped_ptr<spdy::SpdyFrame> push_syn(framer.CreateSynStream(
- 2, 1, 0, spdy::CONTROL_FLAG_NONE, false, &headers));
- MockRead reads[] = {
- CreateMockRead(*push_syn),
- MockRead(true, ERR_IO_PENDING, 0) // EOF
- };
- StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0);
- data.set_connect_data(connect_data);
- session_deps.socket_factory.AddSocketDataProvider(&data);
-
- SSLSocketDataProvider ssl(false, OK);
- session_deps.socket_factory.AddSSLSocketDataProvider(&ssl);
-
- scoped_refptr<HttpNetworkSession> http_session(
- SpdySessionDependencies::SpdyCreateSession(&session_deps));
-
- const std::string kTestHost("www.foo.com");
- const int kTestPort = 80;
- HostPortPair test_host_port_pair(kTestHost, kTestPort);
- HostPortProxyPair pair(test_host_port_pair, "");
-
- scoped_refptr<SpdySessionPool> spdy_session_pool(
- http_session->spdy_session_pool());
- EXPECT_FALSE(spdy_session_pool->HasSession(pair));
- scoped_refptr<SpdySession> session =
- spdy_session_pool->Get(pair, http_session.get(), BoundNetLog());
- EXPECT_TRUE(spdy_session_pool->HasSession(pair));
-
- // No push streams should exist in the beginning.
- std::string test_push_path = "/foo.js";
- scoped_refptr<SpdyStream> first_stream = session->GetActivePushStream(
- test_push_path);
- EXPECT_EQ(static_cast<SpdyStream*>(NULL), first_stream.get());
-
- // Read in the data which contains a server-issued SYN_STREAM.
- scoped_refptr<TCPSocketParams> tcp_params =
- new TCPSocketParams(test_host_port_pair, MEDIUM, GURL(), false);
- int rv = session->Connect(kTestHost, tcp_params, MEDIUM);
- ASSERT_EQ(OK, rv);
- MessageLoop::current()->RunAllPending();
-
- // An unpushed path should not work.
- scoped_refptr<SpdyStream> unpushed_stream = session->GetActivePushStream(
- "/unpushed_path");
- EXPECT_EQ(static_cast<SpdyStream*>(NULL), unpushed_stream.get());
-
- // The pushed path should be found.
- scoped_refptr<SpdyStream> second_stream = session->GetActivePushStream(
- test_push_path);
- ASSERT_NE(static_cast<SpdyStream*>(NULL), second_stream.get());
- EXPECT_EQ(test_push_path, second_stream->path());
- EXPECT_EQ(2U, second_stream->stream_id());
- EXPECT_EQ(0, second_stream->priority());
-
- // Clean up
- second_stream = NULL;
- session = NULL;
- spdy_session_pool->CloseAllSessions();
-
- // RunAllPending needs to be called here because the
- // ClientSocketPoolBase posts a task to clean up and destroy the
- // underlying socket.
- MessageLoop::current()->RunAllPending();
-}
-
} // namespace net