summaryrefslogtreecommitdiffstats
path: root/net/http
diff options
context:
space:
mode:
authoragayev@chromium.org <agayev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-28 21:34:47 +0000
committeragayev@chromium.org <agayev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-28 21:34:47 +0000
commit6e78dfb46a07e5ee38225e0cd32fa8b70ed41558 (patch)
treec00c45283a8b8f86eb079395ee4ba56c9954c215 /net/http
parenta13cc36d904c699cd37f80a1c5200f21a7a54671 (diff)
downloadchromium_src-6e78dfb46a07e5ee38225e0cd32fa8b70ed41558.zip
chromium_src-6e78dfb46a07e5ee38225e0cd32fa8b70ed41558.tar.gz
chromium_src-6e78dfb46a07e5ee38225e0cd32fa8b70ed41558.tar.bz2
HostResolverImpl: don't interpret NULL callback argument as a request to do synchronous resolution.
BUG=90547,60149 TEST=net_unittests Review URL: http://codereview.chromium.org/7520026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94552 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http')
-rw-r--r--net/http/http_network_transaction_unittest.cc31
1 files changed, 22 insertions, 9 deletions
diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc
index 2a942dc..9679667 100644
--- a/net/http/http_network_transaction_unittest.cc
+++ b/net/http/http_network_transaction_unittest.cc
@@ -5833,20 +5833,21 @@ void BypassHostCacheOnRefreshHelper(int load_flags) {
scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(
CreateSession(&session_deps)));
- // Warm up the host cache so it has an entry for "www.google.com" (by doing
- // a synchronous lookup.)
+ // Warm up the host cache so it has an entry for "www.google.com".
AddressList addrlist;
+ TestCompletionCallback callback;
int rv = session_deps.host_resolver->Resolve(
HostResolver::RequestInfo(HostPortPair("www.google.com", 80)), &addrlist,
- NULL, NULL, BoundNetLog());
+ &callback, NULL, BoundNetLog());
+ EXPECT_EQ(ERR_IO_PENDING, rv);
+ rv = callback.WaitForResult();
EXPECT_EQ(OK, rv);
// Verify that it was added to host cache, by doing a subsequent async lookup
// and confirming it completes synchronously.
- TestCompletionCallback resolve_callback;
rv = session_deps.host_resolver->Resolve(
HostResolver::RequestInfo(HostPortPair("www.google.com", 80)), &addrlist,
- &resolve_callback, NULL, BoundNetLog());
+ &callback, NULL, BoundNetLog());
ASSERT_EQ(OK, rv);
// Inject a failure the next time that "www.google.com" is resolved. This way
@@ -5861,7 +5862,6 @@ void BypassHostCacheOnRefreshHelper(int load_flags) {
session_deps.socket_factory.AddSocketDataProvider(&data);
// Run the request.
- TestCompletionCallback callback;
rv = trans->Start(&request, &callback, BoundNetLog());
ASSERT_EQ(ERR_IO_PENDING, rv);
rv = callback.WaitForResult();
@@ -8721,7 +8721,12 @@ void IPPoolingAddAlias(MockCachingHostResolver* host_resolver,
// Resolve the host and port.
AddressList addresses;
HostResolver::RequestInfo info(host_port_pair);
- host_resolver->Resolve(info, &addresses, NULL, NULL, BoundNetLog());
+ TestCompletionCallback callback;
+ int rv = host_resolver->Resolve(info, &addresses, &callback, NULL,
+ BoundNetLog());
+ if (rv == ERR_IO_PENDING)
+ rv = callback.WaitForResult();
+ DCHECK_EQ(OK, rv);
// Add the first address as an alias. It would have been better to call
// MockClientSocket::GetPeerAddress but that returns 192.0.2.33 whereas
@@ -8808,7 +8813,11 @@ TEST_F(HttpNetworkTransactionTest, UseIPConnectionPooling) {
HostPortPair host_port("www.gmail.com", 443);
HostResolver::RequestInfo resolve_info(host_port);
AddressList ignored;
- host_resolver.Resolve(resolve_info, &ignored, NULL, NULL, BoundNetLog());
+ rv = host_resolver.Resolve(resolve_info, &ignored, &callback, NULL,
+ BoundNetLog());
+ EXPECT_EQ(ERR_IO_PENDING, rv);
+ rv = callback.WaitForResult();
+ EXPECT_EQ(OK, rv);
// 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:
@@ -8960,7 +8969,11 @@ TEST_F(HttpNetworkTransactionTest,
// Preload cache entries into HostCache.
HostResolver::RequestInfo resolve_info(HostPortPair("www.gmail.com", 443));
AddressList ignored;
- host_resolver.Resolve(resolve_info, &ignored, NULL, NULL, BoundNetLog());
+ rv = host_resolver.Resolve(resolve_info, &ignored, &callback, NULL,
+ BoundNetLog());
+ EXPECT_EQ(ERR_IO_PENDING, rv);
+ rv = callback.WaitForResult();
+ EXPECT_EQ(OK, rv);
HttpRequestInfo request2;
request2.method = "GET";