| Index: net/dns/single_request_host_resolver_unittest.cc
|
| diff --git a/net/dns/single_request_host_resolver_unittest.cc b/net/dns/single_request_host_resolver_unittest.cc
|
| index c0b3a7b82cda8a8c031580ad4adb3b85d4bbfb58..acbac190392d5e12f7cd1add31257b6ee9e31b99 100644
|
| --- a/net/dns/single_request_host_resolver_unittest.cc
|
| +++ b/net/dns/single_request_host_resolver_unittest.cc
|
| @@ -20,7 +20,6 @@ using net::test::IsOk;
|
| namespace net {
|
|
|
| namespace {
|
| -
|
| // Helper class used by SingleRequestHostResolverTest.Cancel test.
|
| // It checks that only one request is outstanding at a time, and that
|
| // it is cancelled before the class is destroyed.
|
| @@ -38,11 +37,11 @@ class HangingHostResolver : public HostResolver {
|
| RequestPriority priority,
|
| AddressList* addresses,
|
| const CompletionCallback& callback,
|
| - RequestHandle* out_req,
|
| + std::unique_ptr<Request>* out_req,
|
| const BoundNetLog& net_log) override {
|
| EXPECT_FALSE(has_outstanding_request());
|
| - outstanding_request_ = reinterpret_cast<RequestHandle>(0x1234);
|
| - *out_req = outstanding_request_;
|
| + outstanding_request_ = new RequestImpl(this);
|
| + (*out_req).reset(outstanding_request_);
|
|
|
| // Never complete this request! Caller is expected to cancel it
|
| // before destroying the resolver.
|
| @@ -56,14 +55,32 @@ class HangingHostResolver : public HostResolver {
|
| return ERR_UNEXPECTED;
|
| }
|
|
|
| - void CancelRequest(RequestHandle req) override {
|
| - EXPECT_TRUE(has_outstanding_request());
|
| - EXPECT_EQ(req, outstanding_request_);
|
| - outstanding_request_ = NULL;
|
| - }
|
| -
|
| private:
|
| - RequestHandle outstanding_request_;
|
| + class RequestImpl : public HostResolver::Request {
|
| + public:
|
| + RequestImpl(HangingHostResolver* resolver) : resolver_(resolver) {}
|
| +
|
| + ~RequestImpl() override {
|
| + if (resolver_) {
|
| + EXPECT_TRUE(resolver_->has_outstanding_request());
|
| + EXPECT_EQ(resolver_->outstanding_request_, this);
|
| + resolver_->outstanding_request_ = nullptr;
|
| + }
|
| + }
|
| +
|
| + void ChangeRequestPriority(RequestPriority priority) override {}
|
| +
|
| + void RemoveResolver() { resolver_ = nullptr; }
|
| +
|
| + private:
|
| + HangingHostResolver* resolver_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(RequestImpl);
|
| + };
|
| +
|
| + friend RequestImpl;
|
| +
|
| + RequestImpl* outstanding_request_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(HangingHostResolver);
|
| };
|
|
|