Index: net/base/host_resolver_impl_unittest.cc |
diff --git a/net/base/host_resolver_impl_unittest.cc b/net/base/host_resolver_impl_unittest.cc |
index 29227588aa8dc013a176555517a613914f2fa11b..145027d817a0340d0e7e6b0faff7d3cbd8781d7a 100644 |
--- a/net/base/host_resolver_impl_unittest.cc |
+++ b/net/base/host_resolver_impl_unittest.cc |
@@ -6,6 +6,8 @@ |
#include <string> |
+#include "base/bind.h" |
+#include "base/bind_helpers.h" |
#include "base/compiler_specific.h" |
#include "base/memory/ref_counted.h" |
#include "base/message_loop.h" |
@@ -268,24 +270,25 @@ class ResolveRequest { |
Delegate* delegate) |
: info_(HostPortPair(hostname, port)), |
resolver_(resolver), |
- delegate_(delegate), |
- ALLOW_THIS_IN_INITIALIZER_LIST( |
- callback_(this, &ResolveRequest::OnLookupFinished)) { |
+ delegate_(delegate) { |
// Start the request. |
- int err = resolver->Resolve(info_, &addrlist_, &callback_, &req_, |
- BoundNetLog()); |
+ int err = resolver->Resolve( |
+ info_, &addrlist_, |
+ base::Bind(&ResolveRequest::OnLookupFinished, base::Unretained(this)), |
+ &req_, BoundNetLog()); |
EXPECT_EQ(ERR_IO_PENDING, err); |
} |
ResolveRequest(HostResolver* resolver, |
const HostResolver::RequestInfo& info, |
Delegate* delegate) |
- : info_(info), resolver_(resolver), delegate_(delegate), |
- ALLOW_THIS_IN_INITIALIZER_LIST( |
- callback_(this, &ResolveRequest::OnLookupFinished)) { |
+ : info_(info), resolver_(resolver), delegate_(delegate) { |
// Start the request. |
- int err = resolver->Resolve(info, &addrlist_, &callback_, &req_, |
- BoundNetLog()); |
+ int err = resolver->Resolve( |
+ info, &addrlist_, |
+ base::Bind(&ResolveRequest::OnLookupFinished, |
+ base::Unretained(this)), |
+ &req_, BoundNetLog()); |
EXPECT_EQ(ERR_IO_PENDING, err); |
} |
@@ -330,7 +333,6 @@ class ResolveRequest { |
HostResolver* resolver_; |
Delegate* delegate_; |
- OldCompletionCallbackImpl<ResolveRequest> callback_; |
DISALLOW_COPY_AND_ASSIGN(ResolveRequest); |
}; |
@@ -339,21 +341,21 @@ class HostResolverImplTest : public testing::Test { |
public: |
HostResolverImplTest() |
: callback_called_(false), |
- ALLOW_THIS_IN_INITIALIZER_LIST( |
- callback_(this, &HostResolverImplTest::OnLookupFinished)) { |
+ ALLOW_THIS_IN_INITIALIZER_LIST(callback_( |
+ base::Bind(&HostResolverImplTest::OnLookupFinished, |
+ base::Unretained(this)))) { |
} |
protected: |
- bool callback_called_; |
- int callback_result_; |
- OldCompletionCallbackImpl<HostResolverImplTest> callback_; |
- |
- private: |
void OnLookupFinished(int result) { |
callback_called_ = true; |
callback_result_ = result; |
MessageLoop::current()->Quit(); |
} |
+ |
+ bool callback_called_; |
+ int callback_result_; |
+ CompletionCallback callback_; |
}; |
TEST_F(HostResolverImplTest, AsynchronousLookup) { |
@@ -369,7 +371,7 @@ TEST_F(HostResolverImplTest, AsynchronousLookup) { |
HostResolver::RequestInfo info(HostPortPair("just.testing", kPortnum)); |
CapturingBoundNetLog log(CapturingNetLog::kUnbounded); |
- int err = host_resolver->Resolve(info, &addrlist, &callback_, NULL, |
+ int err = host_resolver->Resolve(info, &addrlist, callback_, NULL, |
log.bound()); |
EXPECT_EQ(ERR_IO_PENDING, err); |
@@ -459,7 +461,7 @@ TEST_F(HostResolverImplTest, CanceledAsynchronousLookup) { |
const int kPortnum = 80; |
HostResolver::RequestInfo info(HostPortPair("just.testing", kPortnum)); |
- int err = host_resolver->Resolve(info, &addrlist, &callback_, NULL, |
+ int err = host_resolver->Resolve(info, &addrlist, callback_, NULL, |
log.bound()); |
EXPECT_EQ(ERR_IO_PENDING, err); |
@@ -516,9 +518,9 @@ TEST_F(HostResolverImplTest, NumericIPv4Address) { |
CreateHostResolverImpl(resolver_proc)); |
AddressList addrlist; |
const int kPortnum = 5555; |
- TestOldCompletionCallback callback; |
+ TestCompletionCallback callback; |
HostResolver::RequestInfo info(HostPortPair("127.1.2.3", kPortnum)); |
- int err = host_resolver->Resolve(info, &addrlist, &callback, NULL, |
+ int err = host_resolver->Resolve(info, &addrlist, callback.callback(), NULL, |
BoundNetLog()); |
EXPECT_EQ(OK, err); |
@@ -543,9 +545,9 @@ TEST_F(HostResolverImplTest, NumericIPv6Address) { |
CreateHostResolverImpl(resolver_proc)); |
AddressList addrlist; |
const int kPortnum = 5555; |
- TestOldCompletionCallback callback; |
+ TestCompletionCallback callback; |
HostResolver::RequestInfo info(HostPortPair("2001:db8::1", kPortnum)); |
- int err = host_resolver->Resolve(info, &addrlist, &callback, NULL, |
+ int err = host_resolver->Resolve(info, &addrlist, callback.callback(), NULL, |
BoundNetLog()); |
EXPECT_EQ(OK, err); |
@@ -575,9 +577,9 @@ TEST_F(HostResolverImplTest, EmptyHost) { |
CreateHostResolverImpl(resolver_proc)); |
AddressList addrlist; |
const int kPortnum = 5555; |
- TestOldCompletionCallback callback; |
+ TestCompletionCallback callback; |
HostResolver::RequestInfo info(HostPortPair("", kPortnum)); |
- int err = host_resolver->Resolve(info, &addrlist, &callback, NULL, |
+ int err = host_resolver->Resolve(info, &addrlist, callback.callback(), NULL, |
BoundNetLog()); |
EXPECT_EQ(ERR_NAME_NOT_RESOLVED, err); |
} |
@@ -592,9 +594,9 @@ TEST_F(HostResolverImplTest, LongHost) { |
AddressList addrlist; |
const int kPortnum = 5555; |
std::string hostname(4097, 'a'); |
- TestOldCompletionCallback callback; |
+ TestCompletionCallback callback; |
HostResolver::RequestInfo info(HostPortPair(hostname, kPortnum)); |
- int err = host_resolver->Resolve(info, &addrlist, &callback, NULL, |
+ int err = host_resolver->Resolve(info, &addrlist, callback.callback(), NULL, |
BoundNetLog()); |
EXPECT_EQ(ERR_NAME_NOT_RESOLVED, err); |
} |
@@ -938,15 +940,13 @@ class BypassCacheVerifier : public ResolveRequest::Delegate { |
// Since caching is enabled, this should complete synchronously. |
// Note that |junk_callback| shouldn't be used since we are going to |
- // complete synchronously. We can't specify NULL though since that would |
- // mean synchronous mode so we give it a value of 1. |
- OldCompletionCallback* junk_callback = |
- reinterpret_cast<OldCompletionCallback*> (1); |
+ // complete synchronously. |
+ TestCompletionCallback junk_callback; |
AddressList addrlist; |
HostResolver::RequestInfo info(HostPortPair("a", 70)); |
- int error = resolver->Resolve(info, &addrlist, junk_callback, NULL, |
- BoundNetLog()); |
+ int error = resolver->Resolve(info, &addrlist, junk_callback.callback(), |
+ NULL, BoundNetLog()); |
EXPECT_EQ(OK, error); |
// Ok good. Now make sure that if we ask to bypass the cache, it can no |
@@ -998,8 +998,8 @@ TEST_F(HostResolverImplTest, Observers) { |
// Resolve "host1". |
HostResolver::RequestInfo info1(HostPortPair("host1", 70)); |
CapturingBoundNetLog log(CapturingNetLog::kUnbounded); |
- TestOldCompletionCallback callback; |
- int rv = host_resolver->Resolve(info1, &addrlist, &callback, NULL, |
+ TestCompletionCallback callback; |
+ int rv = host_resolver->Resolve(info1, &addrlist, callback.callback(), NULL, |
log.bound()); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
rv = callback.WaitForResult(); |
@@ -1024,7 +1024,8 @@ TEST_F(HostResolverImplTest, Observers) { |
// Resolve "host1" again -- this time it will be served from cache, but it |
// should still notify of completion. |
- rv = host_resolver->Resolve(info1, &addrlist, &callback, NULL, BoundNetLog()); |
+ rv = host_resolver->Resolve(info1, &addrlist, callback.callback(), NULL, |
+ BoundNetLog()); |
ASSERT_EQ(OK, rv); // Should complete synchronously. |
EXPECT_EQ(2U, observer.start_log.size()); |
@@ -1038,7 +1039,8 @@ TEST_F(HostResolverImplTest, Observers) { |
// Resolve "host2", setting referrer to "http://foobar.com" |
HostResolver::RequestInfo info2(HostPortPair("host2", 70)); |
info2.set_referrer(GURL("http://foobar.com")); |
- rv = host_resolver->Resolve(info2, &addrlist, &callback, NULL, BoundNetLog()); |
+ rv = host_resolver->Resolve(info2, &addrlist, callback.callback(), NULL, |
+ BoundNetLog()); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
rv = callback.WaitForResult(); |
EXPECT_EQ(OK, rv); |
@@ -1056,7 +1058,8 @@ TEST_F(HostResolverImplTest, Observers) { |
// Resolve "host3" |
HostResolver::RequestInfo info3(HostPortPair("host3", 70)); |
- host_resolver->Resolve(info3, &addrlist, &callback, NULL, BoundNetLog()); |
+ host_resolver->Resolve(info3, &addrlist, callback.callback(), NULL, |
+ BoundNetLog()); |
// No effect this time, since observer was removed. |
EXPECT_EQ(3U, observer.start_log.size()); |
@@ -1076,7 +1079,7 @@ TEST_F(HostResolverImplTest, CancellationObserver) { |
CreateHostResolverImpl(NULL)); |
host_resolver->AddObserver(&observer); |
- TestOldCompletionCallback callback; |
+ TestCompletionCallback callback; |
EXPECT_EQ(0U, observer.start_log.size()); |
EXPECT_EQ(0U, observer.finish_log.size()); |
@@ -1086,7 +1089,7 @@ TEST_F(HostResolverImplTest, CancellationObserver) { |
HostResolver::RequestInfo info1(HostPortPair("host1", 70)); |
HostResolver::RequestHandle req = NULL; |
AddressList addrlist; |
- int rv = host_resolver->Resolve(info1, &addrlist, &callback, &req, |
+ int rv = host_resolver->Resolve(info1, &addrlist, callback.callback(), &req, |
BoundNetLog()); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
EXPECT_TRUE(NULL != req); |
@@ -1110,7 +1113,7 @@ TEST_F(HostResolverImplTest, CancellationObserver) { |
// Start an async request for (host2:60) |
HostResolver::RequestInfo info2(HostPortPair("host2", 60)); |
- rv = host_resolver->Resolve(info2, &addrlist, &callback, NULL, |
+ rv = host_resolver->Resolve(info2, &addrlist, callback.callback(), NULL, |
BoundNetLog()); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
EXPECT_TRUE(NULL != req); |
@@ -1148,15 +1151,16 @@ TEST_F(HostResolverImplTest, FlushCacheOnIPAddressChange) { |
// Resolve "host1". |
HostResolver::RequestInfo info1(HostPortPair("host1", 70)); |
- TestOldCompletionCallback callback; |
- int rv = host_resolver->Resolve(info1, &addrlist, &callback, NULL, |
+ TestCompletionCallback callback; |
+ int rv = host_resolver->Resolve(info1, &addrlist, callback.callback(), NULL, |
BoundNetLog()); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
EXPECT_EQ(OK, callback.WaitForResult()); |
// Resolve "host1" again -- this time it will be served from cache, but it |
// should still notify of completion. |
- rv = host_resolver->Resolve(info1, &addrlist, &callback, NULL, BoundNetLog()); |
+ rv = host_resolver->Resolve(info1, &addrlist, callback.callback(), NULL, |
+ BoundNetLog()); |
ASSERT_EQ(OK, rv); // Should complete synchronously. |
// Flush cache by triggering an IP address change. |
@@ -1165,7 +1169,8 @@ TEST_F(HostResolverImplTest, FlushCacheOnIPAddressChange) { |
// Resolve "host1" again -- this time it won't be served from cache, so it |
// will complete asynchronously. |
- rv = host_resolver->Resolve(info1, &addrlist, &callback, NULL, BoundNetLog()); |
+ rv = host_resolver->Resolve(info1, &addrlist, callback.callback(), NULL, |
+ BoundNetLog()); |
ASSERT_EQ(ERR_IO_PENDING, rv); // Should complete asynchronously. |
EXPECT_EQ(OK, callback.WaitForResult()); |
} |
@@ -1178,9 +1183,9 @@ TEST_F(HostResolverImplTest, AbortOnIPAddressChanged) { |
// Resolve "host1". |
HostResolver::RequestInfo info(HostPortPair("host1", 70)); |
- TestOldCompletionCallback callback; |
+ TestCompletionCallback callback; |
AddressList addrlist; |
- int rv = host_resolver->Resolve(info, &addrlist, &callback, NULL, |
+ int rv = host_resolver->Resolve(info, &addrlist, callback.callback(), NULL, |
BoundNetLog()); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
@@ -1210,9 +1215,9 @@ TEST_F(HostResolverImplTest, ObeyPoolConstraintsAfterIPAddressChange) { |
// Resolve "host1". |
HostResolver::RequestInfo info(HostPortPair("host1", 70)); |
- TestOldCompletionCallback callback; |
+ TestCompletionCallback callback; |
AddressList addrlist; |
- int rv = host_resolver->Resolve(info, &addrlist, &callback, NULL, |
+ int rv = host_resolver->Resolve(info, &addrlist, callback.callback(), NULL, |
BoundNetLog()); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
@@ -1226,7 +1231,7 @@ TEST_F(HostResolverImplTest, ObeyPoolConstraintsAfterIPAddressChange) { |
EXPECT_EQ(ERR_ABORTED, callback.WaitForResult()); |
- rv = host_resolver->Resolve(info, &addrlist, &callback, NULL, |
+ rv = host_resolver->Resolve(info, &addrlist, callback.callback(), NULL, |
BoundNetLog()); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
resolver_proc->Wait(); |
@@ -1242,12 +1247,13 @@ class ResolveWithinCallback : public CallbackRunner< Tuple1<int> > { |
virtual void RunWithParams(const Tuple1<int>& params) { |
// Ditch the WaitingHostResolverProc so that the subsequent request |
// succeeds. |
- callback_.RunWithParams(params); |
+ //callback_.RunWithParams(params); |
willchan no longer on Chromium
2011/11/14 16:45:12
Change this to callback_.callback()->Run(params.a)
James Hawkins
2011/11/15 23:34:33
Unfortunately the issue is that Resolve takes a Co
willchan no longer on Chromium
2011/11/16 00:08:01
Oh, you probably want to do the same transformatio
James Hawkins
2011/11/16 00:49:54
Cool, done.
|
host_resolver_.reset( |
CreateHostResolverImpl(CreateCatchAllHostResolverProc())); |
EXPECT_EQ(ERR_IO_PENDING, |
- host_resolver_->Resolve(info_, &addrlist_, &nested_callback_, |
- NULL, BoundNetLog())); |
+ host_resolver_->Resolve(info_, &addrlist_, |
+ nested_callback_.callback(), NULL, |
+ BoundNetLog())); |
} |
int WaitForResult() { |
@@ -1261,8 +1267,8 @@ class ResolveWithinCallback : public CallbackRunner< Tuple1<int> > { |
private: |
const HostResolver::RequestInfo info_; |
AddressList addrlist_; |
- TestOldCompletionCallback callback_; |
- TestOldCompletionCallback nested_callback_; |
+ TestCompletionCallback callback_; |
+ TestCompletionCallback nested_callback_; |
scoped_ptr<HostResolver> host_resolver_; |
}; |
@@ -1275,7 +1281,7 @@ TEST_F(HostResolverImplTest, OnlyAbortExistingRequestsOnIPAddressChange) { |
HostResolver::RequestInfo info(HostPortPair("host1", 70)); |
ResolveWithinCallback callback(info); |
AddressList addrlist; |
- int rv = host_resolver->Resolve(info, &addrlist, &callback, NULL, |
+ int rv = host_resolver->Resolve(info, &addrlist, /*callback.callback()*/CompletionCallback(), NULL, |
BoundNetLog()); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
@@ -1318,13 +1324,14 @@ TEST_F(HostResolverImplTest, HigherPriorityRequestsStartedFirst) { |
CreateResolverRequest("req5", HIGHEST), |
}; |
- TestOldCompletionCallback callback[arraysize(req)]; |
+ TestCompletionCallback callback[arraysize(req)]; |
AddressList addrlist[arraysize(req)]; |
// Start all of the requests. |
for (size_t i = 0; i < arraysize(req); ++i) { |
int rv = host_resolver->Resolve(req[i], &addrlist[i], |
- &callback[i], NULL, BoundNetLog()); |
+ callback[i].callback(), NULL, |
+ BoundNetLog()); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
} |
@@ -1400,14 +1407,15 @@ TEST_F(HostResolverImplTest, CancelPendingRequest) { |
CreateResolverRequest("req6", MEDIUM), |
}; |
- TestOldCompletionCallback callback[arraysize(req)]; |
+ TestCompletionCallback callback[arraysize(req)]; |
AddressList addrlist[arraysize(req)]; |
HostResolver::RequestHandle handle[arraysize(req)]; |
// Start all of the requests. |
for (size_t i = 0; i < arraysize(req); ++i) { |
int rv = host_resolver->Resolve(req[i], &addrlist[i], |
- &callback[i], &handle[i], BoundNetLog()); |
+ callback[i].callback(), &handle[i], |
+ BoundNetLog()); |
EXPECT_EQ(ERR_IO_PENDING, rv); |
} |
@@ -1476,14 +1484,15 @@ TEST_F(HostResolverImplTest, QueueOverflow) { |
CreateResolverRequest("req7", MEDIUM), // Evicts req2. |
}; |
- TestOldCompletionCallback callback[arraysize(req)]; |
+ TestCompletionCallback callback[arraysize(req)]; |
AddressList addrlist[arraysize(req)]; |
HostResolver::RequestHandle handle[arraysize(req)]; |
// Start all of the requests. |
for (size_t i = 0; i < arraysize(req); ++i) { |
int rv = host_resolver->Resolve(req[i], &addrlist[i], |
- &callback[i], &handle[i], BoundNetLog()); |
+ callback[i].callback(), &handle[i], |
+ BoundNetLog()); |
if (i == 4u) |
EXPECT_EQ(ERR_HOST_RESOLVER_QUEUE_TOO_LARGE, rv); |
else |
@@ -1543,14 +1552,15 @@ TEST_F(HostResolverImplTest, SetDefaultAddressFamily_IPv4) { |
CreateResolverRequestForAddressFamily("h1", MEDIUM, ADDRESS_FAMILY_IPV6), |
}; |
- TestOldCompletionCallback callback[arraysize(req)]; |
+ TestCompletionCallback callback[arraysize(req)]; |
AddressList addrlist[arraysize(req)]; |
HostResolver::RequestHandle handle[arraysize(req)]; |
// Start all of the requests. |
for (size_t i = 0; i < arraysize(req); ++i) { |
int rv = host_resolver->Resolve(req[i], &addrlist[i], |
- &callback[i], &handle[i], BoundNetLog()); |
+ callback[i].callback(), &handle[i], |
+ BoundNetLog()); |
EXPECT_EQ(ERR_IO_PENDING, rv) << i; |
} |
@@ -1613,14 +1623,15 @@ TEST_F(HostResolverImplTest, SetDefaultAddressFamily_IPv6) { |
CreateResolverRequestForAddressFamily("h1", MEDIUM, ADDRESS_FAMILY_IPV4), |
}; |
- TestOldCompletionCallback callback[arraysize(req)]; |
+ TestCompletionCallback callback[arraysize(req)]; |
AddressList addrlist[arraysize(req)]; |
HostResolver::RequestHandle handle[arraysize(req)]; |
// Start all of the requests. |
for (size_t i = 0; i < arraysize(req); ++i) { |
int rv = host_resolver->Resolve(req[i], &addrlist[i], |
- &callback[i], &handle[i], BoundNetLog()); |
+ callback[i].callback(), &handle[i], |
+ BoundNetLog()); |
EXPECT_EQ(ERR_IO_PENDING, rv) << i; |
} |
@@ -1675,8 +1686,9 @@ TEST_F(HostResolverImplTest, DisallowNonCachedResponses) { |
EXPECT_EQ(ERR_DNS_CACHE_MISS, err); |
// This time, we fetch normally. |
- TestOldCompletionCallback callback; |
- err = host_resolver->Resolve(info, &addrlist, &callback, NULL, log.bound()); |
+ TestCompletionCallback callback; |
+ err = host_resolver->Resolve(info, &addrlist, callback.callback(), NULL, |
+ log.bound()); |
EXPECT_EQ(ERR_IO_PENDING, err); |
err = callback.WaitForResult(); |
EXPECT_EQ(OK, err); |
@@ -1720,9 +1732,9 @@ TEST_F(HostResolverImplTest, MultipleAttempts) { |
// Resolve "host1". |
HostResolver::RequestInfo info(HostPortPair("host1", 70)); |
- TestOldCompletionCallback callback; |
+ TestCompletionCallback callback; |
AddressList addrlist; |
- int rv = host_resolver->Resolve(info, &addrlist, &callback, NULL, |
+ int rv = host_resolver->Resolve(info, &addrlist, callback.callback(), NULL, |
BoundNetLog()); |
EXPECT_EQ(ERR_IO_PENDING, rv); |