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

Side by Side Diff: net/dns/mojo_host_resolver_impl_unittest.cc

Issue 1545233002: Convert Pass()→std::move() in //net (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 months 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 unified diff | Download patch
« no previous file with comments | « net/dns/mojo_host_resolver_impl.cc ('k') | net/dns/mojo_host_type_converters.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/dns/mojo_host_resolver_impl.h" 5 #include "net/dns/mojo_host_resolver_impl.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility>
8 9
9 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
10 #include "base/run_loop.h" 11 #include "base/run_loop.h"
11 #include "base/time/time.h" 12 #include "base/time/time.h"
12 #include "mojo/public/cpp/bindings/binding.h" 13 #include "mojo/public/cpp/bindings/binding.h"
13 #include "mojo/public/cpp/bindings/interface_request.h" 14 #include "mojo/public/cpp/bindings/interface_request.h"
14 #include "net/base/address_list.h" 15 #include "net/base/address_list.h"
15 #include "net/base/net_errors.h" 16 #include "net/base/net_errors.h"
16 #include "net/base/net_util.h" 17 #include "net/base/net_util.h"
17 #include "net/dns/mock_host_resolver.h" 18 #include "net/dns/mock_host_resolver.h"
18 #include "net/dns/mojo_host_type_converters.h" 19 #include "net/dns/mojo_host_type_converters.h"
19 #include "net/log/net_log.h" 20 #include "net/log/net_log.h"
20 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
21 22
22 namespace net { 23 namespace net {
23 24
24 namespace { 25 namespace {
25 26
26 class TestRequestClient : public interfaces::HostResolverRequestClient { 27 class TestRequestClient : public interfaces::HostResolverRequestClient {
27 public: 28 public:
28 explicit TestRequestClient( 29 explicit TestRequestClient(
29 mojo::InterfaceRequest<interfaces::HostResolverRequestClient> req) 30 mojo::InterfaceRequest<interfaces::HostResolverRequestClient> req)
30 : done_(false), binding_(this, req.Pass()) { 31 : done_(false), binding_(this, std::move(req)) {
31 binding_.set_connection_error_handler(base::Bind( 32 binding_.set_connection_error_handler(base::Bind(
32 &TestRequestClient::OnConnectionError, base::Unretained(this))); 33 &TestRequestClient::OnConnectionError, base::Unretained(this)));
33 } 34 }
34 35
35 void WaitForResult(); 36 void WaitForResult();
36 void WaitForConnectionError(); 37 void WaitForConnectionError();
37 38
38 int32_t error_; 39 int32_t error_;
39 interfaces::AddressListPtr results_; 40 interfaces::AddressListPtr results_;
40 41
(...skipping 27 matching lines...) Expand all
68 run_loop.Run(); 69 run_loop.Run();
69 } 70 }
70 71
71 void TestRequestClient::ReportResult(int32_t error, 72 void TestRequestClient::ReportResult(int32_t error,
72 interfaces::AddressListPtr results) { 73 interfaces::AddressListPtr results) {
73 if (!run_loop_quit_closure_.is_null()) { 74 if (!run_loop_quit_closure_.is_null()) {
74 run_loop_quit_closure_.Run(); 75 run_loop_quit_closure_.Run();
75 } 76 }
76 ASSERT_FALSE(done_); 77 ASSERT_FALSE(done_);
77 error_ = error; 78 error_ = error;
78 results_ = results.Pass(); 79 results_ = std::move(results);
79 done_ = true; 80 done_ = true;
80 } 81 }
81 82
82 void TestRequestClient::OnConnectionError() { 83 void TestRequestClient::OnConnectionError() {
83 if (!connection_error_quit_closure_.is_null()) 84 if (!connection_error_quit_closure_.is_null())
84 connection_error_quit_closure_.Run(); 85 connection_error_quit_closure_.Run();
85 } 86 }
86 87
87 class CallbackMockHostResolver : public MockHostResolver { 88 class CallbackMockHostResolver : public MockHostResolver {
88 public: 89 public:
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 138
138 interfaces::HostResolverRequestInfoPtr CreateRequest(const std::string& host, 139 interfaces::HostResolverRequestInfoPtr CreateRequest(const std::string& host,
139 uint16_t port, 140 uint16_t port,
140 bool is_my_ip_address) { 141 bool is_my_ip_address) {
141 interfaces::HostResolverRequestInfoPtr request = 142 interfaces::HostResolverRequestInfoPtr request =
142 interfaces::HostResolverRequestInfo::New(); 143 interfaces::HostResolverRequestInfo::New();
143 request->host = host; 144 request->host = host;
144 request->port = port; 145 request->port = port;
145 request->address_family = interfaces::ADDRESS_FAMILY_IPV4; 146 request->address_family = interfaces::ADDRESS_FAMILY_IPV4;
146 request->is_my_ip_address = is_my_ip_address; 147 request->is_my_ip_address = is_my_ip_address;
147 return request.Pass(); 148 return request;
148 } 149 }
149 150
150 // Wait until the mock resolver has received |num| resolve requests. 151 // Wait until the mock resolver has received |num| resolve requests.
151 void WaitForRequests(size_t num) { 152 void WaitForRequests(size_t num) {
152 while (mock_host_resolver_.num_resolve() < num) { 153 while (mock_host_resolver_.num_resolve() < num) {
153 base::RunLoop run_loop; 154 base::RunLoop run_loop;
154 mock_host_resolver_.SetResolveCallback(run_loop.QuitClosure()); 155 mock_host_resolver_.SetResolveCallback(run_loop.QuitClosure());
155 run_loop.Run(); 156 run_loop.Run();
156 } 157 }
157 } 158 }
158 159
159 CallbackMockHostResolver mock_host_resolver_; 160 CallbackMockHostResolver mock_host_resolver_;
160 scoped_ptr<MojoHostResolverImpl> resolver_service_; 161 scoped_ptr<MojoHostResolverImpl> resolver_service_;
161 }; 162 };
162 163
163 TEST_F(MojoHostResolverImplTest, Resolve) { 164 TEST_F(MojoHostResolverImplTest, Resolve) {
164 interfaces::HostResolverRequestClientPtr client_ptr; 165 interfaces::HostResolverRequestClientPtr client_ptr;
165 TestRequestClient client(mojo::GetProxy(&client_ptr)); 166 TestRequestClient client(mojo::GetProxy(&client_ptr));
166 167
167 interfaces::HostResolverRequestInfoPtr request = 168 interfaces::HostResolverRequestInfoPtr request =
168 CreateRequest("example.com", 80, false); 169 CreateRequest("example.com", 80, false);
169 resolver_service_->Resolve(request.Pass(), client_ptr.Pass()); 170 resolver_service_->Resolve(std::move(request), std::move(client_ptr));
170 client.WaitForResult(); 171 client.WaitForResult();
171 172
172 EXPECT_EQ(net::OK, client.error_); 173 EXPECT_EQ(net::OK, client.error_);
173 AddressList address_list = (*client.results_).To<AddressList>(); 174 AddressList address_list = (*client.results_).To<AddressList>();
174 EXPECT_EQ(1U, address_list.size()); 175 EXPECT_EQ(1U, address_list.size());
175 EXPECT_EQ("1.2.3.4:80", address_list[0].ToString()); 176 EXPECT_EQ("1.2.3.4:80", address_list[0].ToString());
176 } 177 }
177 178
178 TEST_F(MojoHostResolverImplTest, ResolveSynchronous) { 179 TEST_F(MojoHostResolverImplTest, ResolveSynchronous) {
179 interfaces::HostResolverRequestClientPtr client_ptr; 180 interfaces::HostResolverRequestClientPtr client_ptr;
180 TestRequestClient client(mojo::GetProxy(&client_ptr)); 181 TestRequestClient client(mojo::GetProxy(&client_ptr));
181 182
182 mock_host_resolver_.set_synchronous_mode(true); 183 mock_host_resolver_.set_synchronous_mode(true);
183 184
184 interfaces::HostResolverRequestInfoPtr request = 185 interfaces::HostResolverRequestInfoPtr request =
185 CreateRequest("example.com", 80, false); 186 CreateRequest("example.com", 80, false);
186 resolver_service_->Resolve(request.Pass(), client_ptr.Pass()); 187 resolver_service_->Resolve(std::move(request), std::move(client_ptr));
187 client.WaitForResult(); 188 client.WaitForResult();
188 189
189 EXPECT_EQ(net::OK, client.error_); 190 EXPECT_EQ(net::OK, client.error_);
190 AddressList address_list = (*client.results_).To<AddressList>(); 191 AddressList address_list = (*client.results_).To<AddressList>();
191 EXPECT_EQ(1U, address_list.size()); 192 EXPECT_EQ(1U, address_list.size());
192 EXPECT_EQ("1.2.3.4:80", address_list[0].ToString()); 193 EXPECT_EQ("1.2.3.4:80", address_list[0].ToString());
193 } 194 }
194 195
195 TEST_F(MojoHostResolverImplTest, ResolveMultiple) { 196 TEST_F(MojoHostResolverImplTest, ResolveMultiple) {
196 interfaces::HostResolverRequestClientPtr client1_ptr; 197 interfaces::HostResolverRequestClientPtr client1_ptr;
197 TestRequestClient client1(mojo::GetProxy(&client1_ptr)); 198 TestRequestClient client1(mojo::GetProxy(&client1_ptr));
198 interfaces::HostResolverRequestClientPtr client2_ptr; 199 interfaces::HostResolverRequestClientPtr client2_ptr;
199 TestRequestClient client2(mojo::GetProxy(&client2_ptr)); 200 TestRequestClient client2(mojo::GetProxy(&client2_ptr));
200 201
201 mock_host_resolver_.set_ondemand_mode(true); 202 mock_host_resolver_.set_ondemand_mode(true);
202 203
203 interfaces::HostResolverRequestInfoPtr request1 = 204 interfaces::HostResolverRequestInfoPtr request1 =
204 CreateRequest("example.com", 80, false); 205 CreateRequest("example.com", 80, false);
205 resolver_service_->Resolve(request1.Pass(), client1_ptr.Pass()); 206 resolver_service_->Resolve(std::move(request1), std::move(client1_ptr));
206 interfaces::HostResolverRequestInfoPtr request2 = 207 interfaces::HostResolverRequestInfoPtr request2 =
207 CreateRequest("chromium.org", 80, false); 208 CreateRequest("chromium.org", 80, false);
208 resolver_service_->Resolve(request2.Pass(), client2_ptr.Pass()); 209 resolver_service_->Resolve(std::move(request2), std::move(client2_ptr));
209 WaitForRequests(2); 210 WaitForRequests(2);
210 mock_host_resolver_.ResolveAllPending(); 211 mock_host_resolver_.ResolveAllPending();
211 212
212 client1.WaitForResult(); 213 client1.WaitForResult();
213 client2.WaitForResult(); 214 client2.WaitForResult();
214 215
215 EXPECT_EQ(net::OK, client1.error_); 216 EXPECT_EQ(net::OK, client1.error_);
216 AddressList address_list = (*client1.results_).To<AddressList>(); 217 AddressList address_list = (*client1.results_).To<AddressList>();
217 EXPECT_EQ(1U, address_list.size()); 218 EXPECT_EQ(1U, address_list.size());
218 EXPECT_EQ("1.2.3.4:80", address_list[0].ToString()); 219 EXPECT_EQ("1.2.3.4:80", address_list[0].ToString());
219 EXPECT_EQ(net::OK, client2.error_); 220 EXPECT_EQ(net::OK, client2.error_);
220 address_list = (*client2.results_).To<AddressList>(); 221 address_list = (*client2.results_).To<AddressList>();
221 EXPECT_EQ(1U, address_list.size()); 222 EXPECT_EQ(1U, address_list.size());
222 EXPECT_EQ("8.8.8.8:80", address_list[0].ToString()); 223 EXPECT_EQ("8.8.8.8:80", address_list[0].ToString());
223 } 224 }
224 225
225 TEST_F(MojoHostResolverImplTest, ResolveDuplicate) { 226 TEST_F(MojoHostResolverImplTest, ResolveDuplicate) {
226 interfaces::HostResolverRequestClientPtr client1_ptr; 227 interfaces::HostResolverRequestClientPtr client1_ptr;
227 TestRequestClient client1(mojo::GetProxy(&client1_ptr)); 228 TestRequestClient client1(mojo::GetProxy(&client1_ptr));
228 interfaces::HostResolverRequestClientPtr client2_ptr; 229 interfaces::HostResolverRequestClientPtr client2_ptr;
229 TestRequestClient client2(mojo::GetProxy(&client2_ptr)); 230 TestRequestClient client2(mojo::GetProxy(&client2_ptr));
230 231
231 mock_host_resolver_.set_ondemand_mode(true); 232 mock_host_resolver_.set_ondemand_mode(true);
232 233
233 interfaces::HostResolverRequestInfoPtr request1 = 234 interfaces::HostResolverRequestInfoPtr request1 =
234 CreateRequest("example.com", 80, false); 235 CreateRequest("example.com", 80, false);
235 resolver_service_->Resolve(request1.Pass(), client1_ptr.Pass()); 236 resolver_service_->Resolve(std::move(request1), std::move(client1_ptr));
236 interfaces::HostResolverRequestInfoPtr request2 = 237 interfaces::HostResolverRequestInfoPtr request2 =
237 CreateRequest("example.com", 80, false); 238 CreateRequest("example.com", 80, false);
238 resolver_service_->Resolve(request2.Pass(), client2_ptr.Pass()); 239 resolver_service_->Resolve(std::move(request2), std::move(client2_ptr));
239 WaitForRequests(2); 240 WaitForRequests(2);
240 mock_host_resolver_.ResolveAllPending(); 241 mock_host_resolver_.ResolveAllPending();
241 242
242 client1.WaitForResult(); 243 client1.WaitForResult();
243 client2.WaitForResult(); 244 client2.WaitForResult();
244 245
245 EXPECT_EQ(net::OK, client1.error_); 246 EXPECT_EQ(net::OK, client1.error_);
246 AddressList address_list = (*client1.results_).To<AddressList>(); 247 AddressList address_list = (*client1.results_).To<AddressList>();
247 EXPECT_EQ(1U, address_list.size()); 248 EXPECT_EQ(1U, address_list.size());
248 EXPECT_EQ("1.2.3.4:80", address_list[0].ToString()); 249 EXPECT_EQ("1.2.3.4:80", address_list[0].ToString());
249 EXPECT_EQ(net::OK, client2.error_); 250 EXPECT_EQ(net::OK, client2.error_);
250 address_list = (*client2.results_).To<AddressList>(); 251 address_list = (*client2.results_).To<AddressList>();
251 EXPECT_EQ(1U, address_list.size()); 252 EXPECT_EQ(1U, address_list.size());
252 EXPECT_EQ("1.2.3.4:80", address_list[0].ToString()); 253 EXPECT_EQ("1.2.3.4:80", address_list[0].ToString());
253 } 254 }
254 255
255 TEST_F(MojoHostResolverImplTest, ResolveFailure) { 256 TEST_F(MojoHostResolverImplTest, ResolveFailure) {
256 interfaces::HostResolverRequestClientPtr client_ptr; 257 interfaces::HostResolverRequestClientPtr client_ptr;
257 TestRequestClient client(mojo::GetProxy(&client_ptr)); 258 TestRequestClient client(mojo::GetProxy(&client_ptr));
258 259
259 interfaces::HostResolverRequestInfoPtr request = 260 interfaces::HostResolverRequestInfoPtr request =
260 CreateRequest("failure.fail", 80, false); 261 CreateRequest("failure.fail", 80, false);
261 resolver_service_->Resolve(request.Pass(), client_ptr.Pass()); 262 resolver_service_->Resolve(std::move(request), std::move(client_ptr));
262 client.WaitForResult(); 263 client.WaitForResult();
263 264
264 EXPECT_EQ(net::ERR_NAME_NOT_RESOLVED, client.error_); 265 EXPECT_EQ(net::ERR_NAME_NOT_RESOLVED, client.error_);
265 EXPECT_TRUE(client.results_.is_null()); 266 EXPECT_TRUE(client.results_.is_null());
266 } 267 }
267 268
268 TEST_F(MojoHostResolverImplTest, DestroyClient) { 269 TEST_F(MojoHostResolverImplTest, DestroyClient) {
269 interfaces::HostResolverRequestClientPtr client_ptr; 270 interfaces::HostResolverRequestClientPtr client_ptr;
270 scoped_ptr<TestRequestClient> client( 271 scoped_ptr<TestRequestClient> client(
271 new TestRequestClient(mojo::GetProxy(&client_ptr))); 272 new TestRequestClient(mojo::GetProxy(&client_ptr)));
272 273
273 mock_host_resolver_.set_ondemand_mode(true); 274 mock_host_resolver_.set_ondemand_mode(true);
274 275
275 interfaces::HostResolverRequestInfoPtr request = 276 interfaces::HostResolverRequestInfoPtr request =
276 CreateRequest("example.com", 80, false); 277 CreateRequest("example.com", 80, false);
277 resolver_service_->Resolve(request.Pass(), client_ptr.Pass()); 278 resolver_service_->Resolve(std::move(request), std::move(client_ptr));
278 WaitForRequests(1); 279 WaitForRequests(1);
279 280
280 client.reset(); 281 client.reset();
281 base::RunLoop().RunUntilIdle(); 282 base::RunLoop().RunUntilIdle();
282 283
283 mock_host_resolver_.ResolveAllPending(); 284 mock_host_resolver_.ResolveAllPending();
284 base::RunLoop().RunUntilIdle(); 285 base::RunLoop().RunUntilIdle();
285 } 286 }
286 287
287 } // namespace net 288 } // namespace net
OLDNEW
« no previous file with comments | « net/dns/mojo_host_resolver_impl.cc ('k') | net/dns/mojo_host_type_converters.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698