Index: net/http/http_network_transaction_unittest.cc |
=================================================================== |
--- net/http/http_network_transaction_unittest.cc (revision 93322) |
+++ net/http/http_network_transaction_unittest.cc (working copy) |
@@ -8702,35 +8702,32 @@ |
} |
} |
-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"}, |
- }; |
+void IPPoolingAddAlias(MockCachingHostResolver* host_resolver, |
+ SpdySessionPoolPeer* pool_peer, |
+ std::string host, |
+ int port, |
+ std::string iplist) { |
+ // Create a host resolver dependency that returns address |iplist| for |
+ // resolutions of |host|. |
+ host_resolver->rules()->AddIPLiteralRule(host, iplist, ""); |
- // 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, ""); |
+ // Setup a HostPortProxyPair. |
+ HostPortPair host_port_pair(host, port); |
+ HostPortProxyPair pair = HostPortProxyPair(host_port_pair, |
+ ProxyServer::Direct()); |
- 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()); |
+ // Resolve the host and port. |
+ AddressList addresses; |
+ HostResolver::RequestInfo info(host_port_pair); |
+ 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); |
- } |
+ // Add the first address as an alias. It would have been better to call |
+ // MockClientSocket::GetPeerAddress but that returns 192.0.2.33 whereas |
+ // MockHostResolver returns 127.0.0.1 (MockHostResolverBase::Reset). So we use |
+ // the first address (127.0.0.1) returned by MockHostResolver as an alias for |
+ // the |pair|. |
+ const addrinfo* address = addresses.head(); |
+ pool_peer->AddAlias(address, pair); |
} |
TEST_F(HttpNetworkTransactionTest, UseIPConnectionPooling) { |
@@ -8811,7 +8808,11 @@ |
AddressList ignored; |
host_resolver.Resolve(resolve_info, &ignored, NULL, NULL, BoundNetLog()); |
- IPPoolingPreloadHostCache(&host_resolver, &pool_peer); |
+ // MockHostResolver returns 127.0.0.1, port 443 for https://www.google.com/ |
+ // and https://www.gmail.com/. Add 127.0.0.1 as alias for host_port_pair: |
+ // (www.google.com, 443). |
+ IPPoolingAddAlias(&host_resolver, &pool_peer, "www.google.com", 443, |
+ "127.0.0.1"); |
HttpRequestInfo request2; |
request2.method = "GET"; |
@@ -8965,7 +8966,11 @@ |
request2.load_flags = 0; |
HttpNetworkTransaction trans2(session); |
- IPPoolingPreloadHostCache(host_resolver.GetMockHostResolver(), &pool_peer); |
+ // MockHostResolver returns 127.0.0.1, port 443 for https://www.google.com/ |
+ // and https://www.gmail.com/. Add 127.0.0.1 as alias for host_port_pair: |
+ // (www.google.com, 443). |
+ IPPoolingAddAlias(host_resolver.GetMockHostResolver(), &pool_peer, |
+ "www.google.com", 443, "127.0.0.1"); |
rv = trans2.Start(&request2, &callback, BoundNetLog()); |
EXPECT_EQ(ERR_IO_PENDING, rv); |