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

Unified Diff: net/base/host_resolver_impl_unittest.cc

Issue 8549004: base::Bind: Convert HostResolver::Resolve. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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
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);

Powered by Google App Engine
This is Rietveld 408576698