summaryrefslogtreecommitdiff
path: root/chromium/net/spdy/spdy_session_pool_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/spdy/spdy_session_pool_unittest.cc')
-rw-r--r--chromium/net/spdy/spdy_session_pool_unittest.cc86
1 files changed, 50 insertions, 36 deletions
diff --git a/chromium/net/spdy/spdy_session_pool_unittest.cc b/chromium/net/spdy/spdy_session_pool_unittest.cc
index fccfadd5874..3791c7f88ae 100644
--- a/chromium/net/spdy/spdy_session_pool_unittest.cc
+++ b/chromium/net/spdy/spdy_session_pool_unittest.cc
@@ -6,6 +6,7 @@
#include <cstddef>
#include <string>
+#include <utility>
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
@@ -20,8 +21,6 @@
namespace net {
-namespace {
-
class SpdySessionPoolTest : public ::testing::Test,
public ::testing::WithParamInterface<NextProto> {
protected:
@@ -44,7 +43,7 @@ class SpdySessionPoolTest : public ::testing::Test,
void RunIPPoolingTest(SpdyPoolCloseSessionsType close_sessions_type);
SpdySessionDependencies session_deps_;
- scoped_refptr<HttpNetworkSession> http_session_;
+ scoped_ptr<HttpNetworkSession> http_session_;
SpdySessionPool* spdy_session_pool_;
};
@@ -115,7 +114,7 @@ TEST_P(SpdySessionPoolTest, CloseCurrentSessions) {
// Setup the first session to the first host.
base::WeakPtr<SpdySession> session =
- CreateInsecureSpdySession(http_session_, test_key, BoundNetLog());
+ CreateInsecureSpdySession(http_session_.get(), test_key, BoundNetLog());
// Flush the SpdySession::OnReadComplete() task.
base::MessageLoop::current()->RunUntilIdle();
@@ -145,9 +144,9 @@ TEST_P(SpdySessionPoolTest, CloseCurrentIdleSessions) {
session_deps_.host_resolver->set_synchronous_mode(true);
- StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0);
- data.set_connect_data(connect_data);
- session_deps_.socket_factory->AddSocketDataProvider(&data);
+ StaticSocketDataProvider data1(reads, arraysize(reads), nullptr, 0);
+ data1.set_connect_data(connect_data);
+ session_deps_.socket_factory->AddSocketDataProvider(&data1);
SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
@@ -160,7 +159,7 @@ TEST_P(SpdySessionPoolTest, CloseCurrentIdleSessions) {
SpdySessionKey key1(test_host_port_pair1, ProxyServer::Direct(),
PRIVACY_MODE_DISABLED);
base::WeakPtr<SpdySession> session1 =
- CreateInsecureSpdySession(http_session_, key1, BoundNetLog());
+ CreateInsecureSpdySession(http_session_.get(), key1, BoundNetLog());
GURL url1(kTestHost1);
base::WeakPtr<SpdyStream> spdy_stream1 =
CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
@@ -168,13 +167,15 @@ TEST_P(SpdySessionPoolTest, CloseCurrentIdleSessions) {
ASSERT_TRUE(spdy_stream1.get() != NULL);
// Set up session 2
- session_deps_.socket_factory->AddSocketDataProvider(&data);
+ StaticSocketDataProvider data2(reads, arraysize(reads), nullptr, 0);
+ data2.set_connect_data(connect_data);
+ session_deps_.socket_factory->AddSocketDataProvider(&data2);
const std::string kTestHost2("http://www.b.com");
HostPortPair test_host_port_pair2(kTestHost2, 80);
SpdySessionKey key2(test_host_port_pair2, ProxyServer::Direct(),
PRIVACY_MODE_DISABLED);
base::WeakPtr<SpdySession> session2 =
- CreateInsecureSpdySession(http_session_, key2, BoundNetLog());
+ CreateInsecureSpdySession(http_session_.get(), key2, BoundNetLog());
GURL url2(kTestHost2);
base::WeakPtr<SpdyStream> spdy_stream2 =
CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
@@ -182,13 +183,15 @@ TEST_P(SpdySessionPoolTest, CloseCurrentIdleSessions) {
ASSERT_TRUE(spdy_stream2.get() != NULL);
// Set up session 3
- session_deps_.socket_factory->AddSocketDataProvider(&data);
+ StaticSocketDataProvider data3(reads, arraysize(reads), nullptr, 0);
+ data3.set_connect_data(connect_data);
+ session_deps_.socket_factory->AddSocketDataProvider(&data3);
const std::string kTestHost3("http://www.c.com");
HostPortPair test_host_port_pair3(kTestHost3, 80);
SpdySessionKey key3(test_host_port_pair3, ProxyServer::Direct(),
PRIVACY_MODE_DISABLED);
base::WeakPtr<SpdySession> session3 =
- CreateInsecureSpdySession(http_session_, key3, BoundNetLog());
+ CreateInsecureSpdySession(http_session_.get(), key3, BoundNetLog());
GURL url3(kTestHost3);
base::WeakPtr<SpdyStream> spdy_stream3 =
CreateStreamSynchronously(SPDY_BIDIRECTIONAL_STREAM,
@@ -286,7 +289,7 @@ TEST_P(SpdySessionPoolTest, CloseAllSessions) {
// Setup the first session to the first host.
base::WeakPtr<SpdySession> session =
- CreateInsecureSpdySession(http_session_, test_key, BoundNetLog());
+ CreateInsecureSpdySession(http_session_.get(), test_key, BoundNetLog());
// Flush the SpdySession::OnReadComplete() task.
base::MessageLoop::current()->RunUntilIdle();
@@ -365,9 +368,9 @@ void SpdySessionPoolTest::RunIPPoolingTest(
MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever.
};
- StaticSocketDataProvider data(reads, arraysize(reads), NULL, 0);
- data.set_connect_data(connect_data);
- session_deps_.socket_factory->AddSocketDataProvider(&data);
+ StaticSocketDataProvider data1(reads, arraysize(reads), NULL, 0);
+ data1.set_connect_data(connect_data);
+ session_deps_.socket_factory->AddSocketDataProvider(&data1);
SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
@@ -375,9 +378,8 @@ void SpdySessionPoolTest::RunIPPoolingTest(
CreateNetworkSession();
// Setup the first session to the first host.
- base::WeakPtr<SpdySession> session =
- CreateInsecureSpdySession(
- http_session_, test_hosts[0].key, BoundNetLog());
+ base::WeakPtr<SpdySession> session = CreateInsecureSpdySession(
+ http_session_.get(), test_hosts[0].key, BoundNetLog());
// Flush the SpdySession::OnReadComplete() task.
base::MessageLoop::current()->RunUntilIdle();
@@ -398,10 +400,11 @@ void SpdySessionPoolTest::RunIPPoolingTest(
EXPECT_FALSE(HasSpdySession(spdy_session_pool_, test_hosts[2].key));
// Create a new session to host 2.
- session_deps_.socket_factory->AddSocketDataProvider(&data);
- base::WeakPtr<SpdySession> session2 =
- CreateInsecureSpdySession(
- http_session_, test_hosts[2].key, BoundNetLog());
+ StaticSocketDataProvider data2(reads, arraysize(reads), NULL, 0);
+ data2.set_connect_data(connect_data);
+ session_deps_.socket_factory->AddSocketDataProvider(&data2);
+ base::WeakPtr<SpdySession> session2 = CreateInsecureSpdySession(
+ http_session_.get(), test_hosts[2].key, BoundNetLog());
// Verify that we have sessions for everything.
EXPECT_TRUE(HasSpdySession(spdy_session_pool_, test_hosts[0].key));
@@ -512,7 +515,13 @@ TEST_P(SpdySessionPoolTest, IPPoolingCloseIdleSessions) {
TEST_P(SpdySessionPoolTest, IPAddressChanged) {
MockConnect connect_data(SYNCHRONOUS, OK);
session_deps_.host_resolver->set_synchronous_mode(true);
- SpdyTestUtil spdy_util(GetParam());
+
+ // This isn't testing anything having to do with SPDY frames; we
+ // can ignore issues of how dependencies are set. We default to
+ // setting them (when doing the appropriate protocol) since that's
+ // where we're eventually headed for all HTTP/2 connections.
+ SpdyTestUtil spdy_util(GetParam(), true);
+ SpdySession::SetPriorityDependencyDefaultForTesting(true);
MockRead reads[] = {
MockRead(SYNCHRONOUS, ERR_IO_PENDING) // Stall forever.
@@ -521,10 +530,10 @@ TEST_P(SpdySessionPoolTest, IPAddressChanged) {
spdy_util.ConstructSpdyGet("http://www.a.com", false, 1, MEDIUM));
MockWrite writes[] = {CreateMockWrite(*req, 1)};
- StaticSocketDataProvider data(reads, arraysize(reads), writes,
- arraysize(writes));
- data.set_connect_data(connect_data);
- session_deps_.socket_factory->AddSocketDataProvider(&data);
+ StaticSocketDataProvider dataA(reads, arraysize(reads), writes,
+ arraysize(writes));
+ dataA.set_connect_data(connect_data);
+ session_deps_.socket_factory->AddSocketDataProvider(&dataA);
SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl);
@@ -532,13 +541,12 @@ TEST_P(SpdySessionPoolTest, IPAddressChanged) {
CreateNetworkSession();
// Set up session A: Going away, but with an active stream.
- session_deps_.socket_factory->AddSocketDataProvider(&data);
const std::string kTestHostA("http://www.a.com");
HostPortPair test_host_port_pairA(kTestHostA, 80);
SpdySessionKey keyA(
test_host_port_pairA, ProxyServer::Direct(), PRIVACY_MODE_DISABLED);
base::WeakPtr<SpdySession> sessionA =
- CreateInsecureSpdySession(http_session_, keyA, BoundNetLog());
+ CreateInsecureSpdySession(http_session_.get(), keyA, BoundNetLog());
GURL urlA(kTestHostA);
base::WeakPtr<SpdyStream> spdy_streamA = CreateStreamSynchronously(
@@ -548,7 +556,7 @@ TEST_P(SpdySessionPoolTest, IPAddressChanged) {
scoped_ptr<SpdyHeaderBlock> headers(
spdy_util.ConstructGetHeaderBlock(urlA.spec()));
- spdy_streamA->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND);
+ spdy_streamA->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
EXPECT_TRUE(spdy_streamA->HasUrlFromHeaders());
base::MessageLoop::current()->RunUntilIdle(); // Allow headers to write.
@@ -559,12 +567,16 @@ TEST_P(SpdySessionPoolTest, IPAddressChanged) {
EXPECT_FALSE(delegateA.StreamIsClosed());
// Set up session B: Available, with a created stream.
+ StaticSocketDataProvider dataB(reads, arraysize(reads), writes,
+ arraysize(writes));
+ dataB.set_connect_data(connect_data);
+ session_deps_.socket_factory->AddSocketDataProvider(&dataB);
const std::string kTestHostB("http://www.b.com");
HostPortPair test_host_port_pairB(kTestHostB, 80);
SpdySessionKey keyB(
test_host_port_pairB, ProxyServer::Direct(), PRIVACY_MODE_DISABLED);
base::WeakPtr<SpdySession> sessionB =
- CreateInsecureSpdySession(http_session_, keyB, BoundNetLog());
+ CreateInsecureSpdySession(http_session_.get(), keyB, BoundNetLog());
EXPECT_TRUE(sessionB->IsAvailable());
GURL urlB(kTestHostB);
@@ -574,13 +586,16 @@ TEST_P(SpdySessionPoolTest, IPAddressChanged) {
spdy_streamB->SetDelegate(&delegateB);
// Set up session C: Draining.
- session_deps_.socket_factory->AddSocketDataProvider(&data);
+ StaticSocketDataProvider dataC(reads, arraysize(reads), writes,
+ arraysize(writes));
+ dataC.set_connect_data(connect_data);
+ session_deps_.socket_factory->AddSocketDataProvider(&dataC);
const std::string kTestHostC("http://www.c.com");
HostPortPair test_host_port_pairC(kTestHostC, 80);
SpdySessionKey keyC(
test_host_port_pairC, ProxyServer::Direct(), PRIVACY_MODE_DISABLED);
base::WeakPtr<SpdySession> sessionC =
- CreateInsecureSpdySession(http_session_, keyC, BoundNetLog());
+ CreateInsecureSpdySession(http_session_.get(), keyC, BoundNetLog());
sessionC->CloseSessionOnError(ERR_SPDY_PROTOCOL_ERROR, "Error!");
EXPECT_TRUE(sessionC->IsDraining());
@@ -615,8 +630,7 @@ TEST_P(SpdySessionPoolTest, IPAddressChanged) {
EXPECT_TRUE(delegateB.StreamIsClosed());
EXPECT_EQ(ERR_NETWORK_CHANGED, delegateB.WaitForClose());
#endif // defined(OS_ANDROID) || defined(OS_WIN) || defined(OS_IOS)
+ SpdySession::SetPriorityDependencyDefaultForTesting(false);
}
-} // namespace
-
} // namespace net