diff options
author | erikchen@google.com <erikchen@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-05 17:59:58 +0000 |
---|---|---|
committer | erikchen@google.com <erikchen@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-05 17:59:58 +0000 |
commit | e3ebba0fbbfb2c7eec286a964717859aa70b9fcf (patch) | |
tree | b2a53d996ca4537fbb6516dcddba122d1cb6cbcd /net/spdy/spdy_session_unittest.cc | |
parent | 1b7cde151f8e0e922a8c52c6ca48f6f1c6de21ec (diff) | |
download | chromium_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.cc | 78 |
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 |