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

Unified Diff: net/http/http_network_transaction_unittest.cc

Issue 7484051: Merging SPDY IP connection pooling changes from the trunk (r93105) (Closed) Base URL: svn://svn.chromium.org/chrome/branches/782/src/
Patch Set: '' Created 9 years, 5 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
« no previous file with comments | « no previous file | net/socket/ssl_client_socket_pool_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_network_transaction_unittest.cc
===================================================================
--- net/http/http_network_transaction_unittest.cc (revision 93497)
+++ net/http/http_network_transaction_unittest.cc (working copy)
@@ -8684,6 +8684,37 @@
}
}
+void IPPoolingPreloadHostCache(MockCachingHostResolver* host_resolver,
+ SpdySessionPoolPeer* pool_peer) {
+ const int kTestPort = 443;
+ struct TestHosts {
+ std::string name;
+ std::string iplist;
+ } test_hosts[] = {
+ { "www.google.com", "127.0.0.1"},
+ };
+
+ // Preload cache entries into HostCache.
+ for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_hosts); i++) {
+ host_resolver->rules()->AddIPLiteralRule(test_hosts[i].name,
+ test_hosts[i].iplist, "");
+
+ AddressList addresses;
+ // This test requires that the HostResolver cache be populated. Normal
+ // code would have done this already, but we do it manually.
+ HostResolver::RequestInfo info(HostPortPair(test_hosts[i].name, kTestPort));
+ host_resolver->Resolve(
+ info, &addresses, NULL, NULL, BoundNetLog());
+
+ // Setup a HostPortProxyPair
+ HostPortProxyPair pair = HostPortProxyPair(
+ HostPortPair(test_hosts[i].name, kTestPort), ProxyServer::Direct());
+
+ const addrinfo* address = addresses.head();
+ pool_peer->AddAlias(address, pair);
+ }
+}
+
TEST_F(HttpNetworkTransactionTest, UseIPConnectionPooling) {
HttpStreamFactory::set_use_alternate_protocols(true);
HttpStreamFactory::set_next_protos(kExpectedNPNString);
@@ -8702,6 +8733,7 @@
session_deps.http_auth_handler_factory.get();
params.net_log = session_deps.net_log;
scoped_refptr<HttpNetworkSession> session(new HttpNetworkSession(params));
+ SpdySessionPoolPeer pool_peer(session->spdy_session_pool());
SSLSocketDataProvider ssl(true, OK);
ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated;
@@ -8761,6 +8793,8 @@
AddressList ignored;
host_resolver.Resolve(resolve_info, &ignored, NULL, NULL, BoundNetLog());
+ IPPoolingPreloadHostCache(&host_resolver, &pool_peer);
+
HttpRequestInfo request2;
request2.method = "GET";
request2.url = GURL("https://www.gmail.com/");
@@ -8820,6 +8854,10 @@
return host_resolver_.RemoveObserver(observer);
}
+ MockCachingHostResolver* GetMockHostResolver() {
+ return &host_resolver_;
+ }
+
private:
MockCachingHostResolver host_resolver_;
const HostPortPair host_port_;
@@ -8844,6 +8882,7 @@
session_deps.http_auth_handler_factory.get();
params.net_log = session_deps.net_log;
scoped_refptr<HttpNetworkSession> session(new HttpNetworkSession(params));
+ SpdySessionPoolPeer pool_peer(session->spdy_session_pool());
SSLSocketDataProvider ssl(true, OK);
ssl.next_proto_status = SSLClientSocket::kNextProtoNegotiated;
@@ -8908,6 +8947,8 @@
request2.load_flags = 0;
HttpNetworkTransaction trans2(session);
+ IPPoolingPreloadHostCache(host_resolver.GetMockHostResolver(), &pool_peer);
+
rv = trans2.Start(&request2, &callback, BoundNetLog());
EXPECT_EQ(ERR_IO_PENDING, rv);
EXPECT_EQ(OK, callback.WaitForResult());
« no previous file with comments | « no previous file | net/socket/ssl_client_socket_pool_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698