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

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

Issue 2109503009: Refactor net tests to use GMock matchers for checking net::Error results (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Revert changes to contents.txt files Created 4 years, 5 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/host_resolver_impl_unittest.cc ('k') | net/dns/mapped_host_resolver_unittest.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/host_resolver_mojo.h" 5 #include "net/dns/host_resolver_mojo.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
11 #include "mojo/public/cpp/bindings/binding.h" 11 #include "mojo/public/cpp/bindings/binding.h"
12 #include "net/base/address_list.h" 12 #include "net/base/address_list.h"
13 #include "net/base/ip_address.h" 13 #include "net/base/ip_address.h"
14 #include "net/base/net_errors.h" 14 #include "net/base/net_errors.h"
15 #include "net/base/request_priority.h" 15 #include "net/base/request_priority.h"
16 #include "net/base/test_completion_callback.h" 16 #include "net/base/test_completion_callback.h"
17 #include "net/dns/mojo_host_type_converters.h" 17 #include "net/dns/mojo_host_type_converters.h"
18 #include "net/test/event_waiter.h" 18 #include "net/test/event_waiter.h"
19 #include "net/test/gtest_util.h"
20 #include "testing/gmock/include/gmock/gmock.h"
19 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
20 22
23 using net::test::IsError;
24 using net::test::IsOk;
25
21 namespace net { 26 namespace net {
22 namespace { 27 namespace {
23 28
24 void Fail(int result) { 29 void Fail(int result) {
25 FAIL() << "Unexpected callback called with error " << result; 30 FAIL() << "Unexpected callback called with error " << result;
26 } 31 }
27 32
28 class MockMojoHostResolverRequest { 33 class MockMojoHostResolverRequest {
29 public: 34 public:
30 MockMojoHostResolverRequest(interfaces::HostResolverRequestClientPtr client, 35 MockMojoHostResolverRequest(interfaces::HostResolverRequestClientPtr client,
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 TEST_F(HostResolverMojoTest, Basic) { 183 TEST_F(HostResolverMojoTest, Basic) {
179 AddressList address_list; 184 AddressList address_list;
180 IPAddress address(1, 2, 3, 4); 185 IPAddress address(1, 2, 3, 4);
181 address_list.push_back(IPEndPoint(address, 12345)); 186 address_list.push_back(IPEndPoint(address, 12345));
182 address_list.push_back( 187 address_list.push_back(
183 IPEndPoint(ConvertIPv4ToIPv4MappedIPv6(address), 12345)); 188 IPEndPoint(ConvertIPv4ToIPv4MappedIPv6(address), 12345));
184 mock_resolver_->AddAction(HostResolverAction::ReturnResult(address_list)); 189 mock_resolver_->AddAction(HostResolverAction::ReturnResult(address_list));
185 HostResolver::RequestInfo request_info( 190 HostResolver::RequestInfo request_info(
186 HostPortPair::FromString("example.com:12345")); 191 HostPortPair::FromString("example.com:12345"));
187 AddressList result; 192 AddressList result;
188 EXPECT_EQ(OK, Resolve(request_info, &result)); 193 EXPECT_THAT(Resolve(request_info, &result), IsOk());
189 ASSERT_EQ(2u, result.size()); 194 ASSERT_EQ(2u, result.size());
190 EXPECT_EQ(address_list[0], result[0]); 195 EXPECT_EQ(address_list[0], result[0]);
191 EXPECT_EQ(address_list[1], result[1]); 196 EXPECT_EQ(address_list[1], result[1]);
192 197
193 ASSERT_EQ(1u, mock_resolver_->requests().size()); 198 ASSERT_EQ(1u, mock_resolver_->requests().size());
194 interfaces::HostResolverRequestInfo& request = *mock_resolver_->requests()[0]; 199 interfaces::HostResolverRequestInfo& request = *mock_resolver_->requests()[0];
195 EXPECT_EQ("example.com", request.host.To<std::string>()); 200 EXPECT_EQ("example.com", request.host.To<std::string>());
196 EXPECT_EQ(12345, request.port); 201 EXPECT_EQ(12345, request.port);
197 EXPECT_EQ(interfaces::AddressFamily::UNSPECIFIED, request.address_family); 202 EXPECT_EQ(interfaces::AddressFamily::UNSPECIFIED, request.address_family);
198 EXPECT_FALSE(request.is_my_ip_address); 203 EXPECT_FALSE(request.is_my_ip_address);
199 } 204 }
200 205
201 TEST_F(HostResolverMojoTest, ResolveCachedResult) { 206 TEST_F(HostResolverMojoTest, ResolveCachedResult) {
202 AddressList address_list; 207 AddressList address_list;
203 IPAddress address(1, 2, 3, 4); 208 IPAddress address(1, 2, 3, 4);
204 address_list.push_back(IPEndPoint(address, 12345)); 209 address_list.push_back(IPEndPoint(address, 12345));
205 address_list.push_back( 210 address_list.push_back(
206 IPEndPoint(ConvertIPv4ToIPv4MappedIPv6(address), 12345)); 211 IPEndPoint(ConvertIPv4ToIPv4MappedIPv6(address), 12345));
207 mock_resolver_->AddAction(HostResolverAction::ReturnResult(address_list)); 212 mock_resolver_->AddAction(HostResolverAction::ReturnResult(address_list));
208 HostResolver::RequestInfo request_info( 213 HostResolver::RequestInfo request_info(
209 HostPortPair::FromString("example.com:12345")); 214 HostPortPair::FromString("example.com:12345"));
210 AddressList result; 215 AddressList result;
211 ASSERT_EQ(OK, Resolve(request_info, &result)); 216 ASSERT_THAT(Resolve(request_info, &result), IsOk());
212 ASSERT_EQ(1u, mock_resolver_->requests().size()); 217 ASSERT_EQ(1u, mock_resolver_->requests().size());
213 218
214 result.clear(); 219 result.clear();
215 request_info.set_host_port_pair(HostPortPair::FromString("example.com:6789")); 220 request_info.set_host_port_pair(HostPortPair::FromString("example.com:6789"));
216 EXPECT_EQ(OK, Resolve(request_info, &result)); 221 EXPECT_THAT(Resolve(request_info, &result), IsOk());
217 ASSERT_EQ(2u, result.size()); 222 ASSERT_EQ(2u, result.size());
218 address_list.clear(); 223 address_list.clear();
219 address_list.push_back(IPEndPoint(address, 6789)); 224 address_list.push_back(IPEndPoint(address, 6789));
220 address_list.push_back( 225 address_list.push_back(
221 IPEndPoint(ConvertIPv4ToIPv4MappedIPv6(address), 6789)); 226 IPEndPoint(ConvertIPv4ToIPv4MappedIPv6(address), 6789));
222 EXPECT_EQ(address_list[0], result[0]); 227 EXPECT_EQ(address_list[0], result[0]);
223 EXPECT_EQ(address_list[1], result[1]); 228 EXPECT_EQ(address_list[1], result[1]);
224 EXPECT_EQ(1u, mock_resolver_->requests().size()); 229 EXPECT_EQ(1u, mock_resolver_->requests().size());
225 230
226 mock_resolver_->AddAction(HostResolverAction::ReturnResult(address_list)); 231 mock_resolver_->AddAction(HostResolverAction::ReturnResult(address_list));
227 result.clear(); 232 result.clear();
228 request_info.set_allow_cached_response(false); 233 request_info.set_allow_cached_response(false);
229 EXPECT_EQ(OK, Resolve(request_info, &result)); 234 EXPECT_THAT(Resolve(request_info, &result), IsOk());
230 ASSERT_EQ(2u, result.size()); 235 ASSERT_EQ(2u, result.size());
231 EXPECT_EQ(address_list[0], result[0]); 236 EXPECT_EQ(address_list[0], result[0]);
232 EXPECT_EQ(address_list[1], result[1]); 237 EXPECT_EQ(address_list[1], result[1]);
233 EXPECT_EQ(2u, mock_resolver_->requests().size()); 238 EXPECT_EQ(2u, mock_resolver_->requests().size());
234 } 239 }
235 240
236 TEST_F(HostResolverMojoTest, Multiple) { 241 TEST_F(HostResolverMojoTest, Multiple) {
237 AddressList address_list; 242 AddressList address_list;
238 IPAddress address(1, 2, 3, 4); 243 IPAddress address(1, 2, 3, 4);
239 address_list.push_back(IPEndPoint(address, 12345)); 244 address_list.push_back(IPEndPoint(address, 12345));
(...skipping 14 matching lines...) Expand all
254 TestCompletionCallback callback1; 259 TestCompletionCallback callback1;
255 TestCompletionCallback callback2; 260 TestCompletionCallback callback2;
256 ASSERT_EQ(ERR_IO_PENDING, 261 ASSERT_EQ(ERR_IO_PENDING,
257 resolver_->Resolve(request_info1, DEFAULT_PRIORITY, &result1, 262 resolver_->Resolve(request_info1, DEFAULT_PRIORITY, &result1,
258 callback1.callback(), &request_handle1, 263 callback1.callback(), &request_handle1,
259 BoundNetLog())); 264 BoundNetLog()));
260 ASSERT_EQ(ERR_IO_PENDING, 265 ASSERT_EQ(ERR_IO_PENDING,
261 resolver_->Resolve(request_info2, DEFAULT_PRIORITY, &result2, 266 resolver_->Resolve(request_info2, DEFAULT_PRIORITY, &result2,
262 callback2.callback(), &request_handle2, 267 callback2.callback(), &request_handle2,
263 BoundNetLog())); 268 BoundNetLog()));
264 EXPECT_EQ(OK, callback1.GetResult(ERR_IO_PENDING)); 269 EXPECT_THAT(callback1.GetResult(ERR_IO_PENDING), IsOk());
265 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback2.GetResult(ERR_IO_PENDING)); 270 EXPECT_THAT(callback2.GetResult(ERR_IO_PENDING),
271 IsError(ERR_NAME_NOT_RESOLVED));
266 ASSERT_EQ(1u, result1.size()); 272 ASSERT_EQ(1u, result1.size());
267 EXPECT_EQ(address_list[0], result1[0]); 273 EXPECT_EQ(address_list[0], result1[0]);
268 ASSERT_EQ(0u, result2.size()); 274 ASSERT_EQ(0u, result2.size());
269 275
270 ASSERT_EQ(2u, mock_resolver_->requests().size()); 276 ASSERT_EQ(2u, mock_resolver_->requests().size());
271 interfaces::HostResolverRequestInfo& request1 = 277 interfaces::HostResolverRequestInfo& request1 =
272 *mock_resolver_->requests()[0]; 278 *mock_resolver_->requests()[0];
273 EXPECT_EQ("example.com", request1.host.To<std::string>()); 279 EXPECT_EQ("example.com", request1.host.To<std::string>());
274 EXPECT_EQ(12345, request1.port); 280 EXPECT_EQ(12345, request1.port);
275 EXPECT_EQ(interfaces::AddressFamily::IPV4, request1.address_family); 281 EXPECT_EQ(interfaces::AddressFamily::IPV4, request1.address_family);
276 EXPECT_TRUE(request1.is_my_ip_address); 282 EXPECT_TRUE(request1.is_my_ip_address);
277 interfaces::HostResolverRequestInfo& request2 = 283 interfaces::HostResolverRequestInfo& request2 =
278 *mock_resolver_->requests()[1]; 284 *mock_resolver_->requests()[1];
279 EXPECT_EQ("example.org", request2.host.To<std::string>()); 285 EXPECT_EQ("example.org", request2.host.To<std::string>());
280 EXPECT_EQ(80, request2.port); 286 EXPECT_EQ(80, request2.port);
281 EXPECT_EQ(interfaces::AddressFamily::IPV6, request2.address_family); 287 EXPECT_EQ(interfaces::AddressFamily::IPV6, request2.address_family);
282 EXPECT_FALSE(request2.is_my_ip_address); 288 EXPECT_FALSE(request2.is_my_ip_address);
283 } 289 }
284 290
285 TEST_F(HostResolverMojoTest, Error) { 291 TEST_F(HostResolverMojoTest, Error) {
286 mock_resolver_->AddAction( 292 mock_resolver_->AddAction(
287 HostResolverAction::ReturnError(ERR_NAME_NOT_RESOLVED)); 293 HostResolverAction::ReturnError(ERR_NAME_NOT_RESOLVED));
288 HostResolver::RequestInfo request_info( 294 HostResolver::RequestInfo request_info(
289 HostPortPair::FromString("example.com:8080")); 295 HostPortPair::FromString("example.com:8080"));
290 request_info.set_address_family(ADDRESS_FAMILY_IPV4); 296 request_info.set_address_family(ADDRESS_FAMILY_IPV4);
291 AddressList result; 297 AddressList result;
292 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, Resolve(request_info, &result)); 298 EXPECT_THAT(Resolve(request_info, &result), IsError(ERR_NAME_NOT_RESOLVED));
293 EXPECT_TRUE(result.empty()); 299 EXPECT_TRUE(result.empty());
294 300
295 ASSERT_EQ(1u, mock_resolver_->requests().size()); 301 ASSERT_EQ(1u, mock_resolver_->requests().size());
296 interfaces::HostResolverRequestInfo& request = *mock_resolver_->requests()[0]; 302 interfaces::HostResolverRequestInfo& request = *mock_resolver_->requests()[0];
297 EXPECT_EQ("example.com", request.host.To<std::string>()); 303 EXPECT_EQ("example.com", request.host.To<std::string>());
298 EXPECT_EQ(8080, request.port); 304 EXPECT_EQ(8080, request.port);
299 EXPECT_EQ(interfaces::AddressFamily::IPV4, request.address_family); 305 EXPECT_EQ(interfaces::AddressFamily::IPV4, request.address_family);
300 EXPECT_FALSE(request.is_my_ip_address); 306 EXPECT_FALSE(request.is_my_ip_address);
301 } 307 }
302 308
303 TEST_F(HostResolverMojoTest, EmptyResult) { 309 TEST_F(HostResolverMojoTest, EmptyResult) {
304 mock_resolver_->AddAction(HostResolverAction::ReturnError(OK)); 310 mock_resolver_->AddAction(HostResolverAction::ReturnError(OK));
305 HostResolver::RequestInfo request_info( 311 HostResolver::RequestInfo request_info(
306 HostPortPair::FromString("example.com:8080")); 312 HostPortPair::FromString("example.com:8080"));
307 AddressList result; 313 AddressList result;
308 EXPECT_EQ(OK, Resolve(request_info, &result)); 314 EXPECT_THAT(Resolve(request_info, &result), IsOk());
309 EXPECT_TRUE(result.empty()); 315 EXPECT_TRUE(result.empty());
310 316
311 ASSERT_EQ(1u, mock_resolver_->requests().size()); 317 ASSERT_EQ(1u, mock_resolver_->requests().size());
312 } 318 }
313 319
314 TEST_F(HostResolverMojoTest, Cancel) { 320 TEST_F(HostResolverMojoTest, Cancel) {
315 mock_resolver_->AddAction(HostResolverAction::RetainRequest()); 321 mock_resolver_->AddAction(HostResolverAction::RetainRequest());
316 HostResolver::RequestInfo request_info( 322 HostResolver::RequestInfo request_info(
317 HostPortPair::FromString("example.com:80")); 323 HostPortPair::FromString("example.com:80"));
318 request_info.set_address_family(ADDRESS_FAMILY_IPV6); 324 request_info.set_address_family(ADDRESS_FAMILY_IPV6);
(...skipping 11 matching lines...) Expand all
330 EXPECT_EQ(80, request.port); 336 EXPECT_EQ(80, request.port);
331 EXPECT_EQ(interfaces::AddressFamily::IPV6, request.address_family); 337 EXPECT_EQ(interfaces::AddressFamily::IPV6, request.address_family);
332 EXPECT_FALSE(request.is_my_ip_address); 338 EXPECT_FALSE(request.is_my_ip_address);
333 } 339 }
334 340
335 TEST_F(HostResolverMojoTest, ImplDropsClientConnection) { 341 TEST_F(HostResolverMojoTest, ImplDropsClientConnection) {
336 mock_resolver_->AddAction(HostResolverAction::DropRequest()); 342 mock_resolver_->AddAction(HostResolverAction::DropRequest());
337 HostResolver::RequestInfo request_info( 343 HostResolver::RequestInfo request_info(
338 HostPortPair::FromString("example.com:1")); 344 HostPortPair::FromString("example.com:1"));
339 AddressList result; 345 AddressList result;
340 EXPECT_EQ(ERR_FAILED, Resolve(request_info, &result)); 346 EXPECT_THAT(Resolve(request_info, &result), IsError(ERR_FAILED));
341 EXPECT_TRUE(result.empty()); 347 EXPECT_TRUE(result.empty());
342 348
343 ASSERT_EQ(1u, mock_resolver_->requests().size()); 349 ASSERT_EQ(1u, mock_resolver_->requests().size());
344 interfaces::HostResolverRequestInfo& request = *mock_resolver_->requests()[0]; 350 interfaces::HostResolverRequestInfo& request = *mock_resolver_->requests()[0];
345 EXPECT_EQ("example.com", request.host.To<std::string>()); 351 EXPECT_EQ("example.com", request.host.To<std::string>());
346 EXPECT_EQ(1, request.port); 352 EXPECT_EQ(1, request.port);
347 EXPECT_EQ(interfaces::AddressFamily::UNSPECIFIED, request.address_family); 353 EXPECT_EQ(interfaces::AddressFamily::UNSPECIFIED, request.address_family);
348 EXPECT_FALSE(request.is_my_ip_address); 354 EXPECT_FALSE(request.is_my_ip_address);
349 } 355 }
350 356
351 TEST_F(HostResolverMojoTest, ResolveFromCache_Miss) { 357 TEST_F(HostResolverMojoTest, ResolveFromCache_Miss) {
352 HostResolver::RequestInfo request_info( 358 HostResolver::RequestInfo request_info(
353 HostPortPair::FromString("example.com:8080")); 359 HostPortPair::FromString("example.com:8080"));
354 AddressList result; 360 AddressList result;
355 EXPECT_EQ(ERR_DNS_CACHE_MISS, 361 EXPECT_EQ(ERR_DNS_CACHE_MISS,
356 resolver_->ResolveFromCache(request_info, &result, BoundNetLog())); 362 resolver_->ResolveFromCache(request_info, &result, BoundNetLog()));
357 EXPECT_TRUE(result.empty()); 363 EXPECT_TRUE(result.empty());
358 } 364 }
359 365
360 TEST_F(HostResolverMojoTest, ResolveFromCache_Hit) { 366 TEST_F(HostResolverMojoTest, ResolveFromCache_Hit) {
361 AddressList address_list; 367 AddressList address_list;
362 IPAddress address(1, 2, 3, 4); 368 IPAddress address(1, 2, 3, 4);
363 address_list.push_back(IPEndPoint(address, 12345)); 369 address_list.push_back(IPEndPoint(address, 12345));
364 address_list.push_back( 370 address_list.push_back(
365 IPEndPoint(ConvertIPv4ToIPv4MappedIPv6(address), 12345)); 371 IPEndPoint(ConvertIPv4ToIPv4MappedIPv6(address), 12345));
366 mock_resolver_->AddAction(HostResolverAction::ReturnResult(address_list)); 372 mock_resolver_->AddAction(HostResolverAction::ReturnResult(address_list));
367 HostResolver::RequestInfo request_info( 373 HostResolver::RequestInfo request_info(
368 HostPortPair::FromString("example.com:12345")); 374 HostPortPair::FromString("example.com:12345"));
369 AddressList result; 375 AddressList result;
370 ASSERT_EQ(OK, Resolve(request_info, &result)); 376 ASSERT_THAT(Resolve(request_info, &result), IsOk());
371 EXPECT_EQ(1u, mock_resolver_->requests().size()); 377 EXPECT_EQ(1u, mock_resolver_->requests().size());
372 378
373 result.clear(); 379 result.clear();
374 EXPECT_EQ(OK, 380 EXPECT_EQ(OK,
375 resolver_->ResolveFromCache(request_info, &result, BoundNetLog())); 381 resolver_->ResolveFromCache(request_info, &result, BoundNetLog()));
376 ASSERT_EQ(2u, result.size()); 382 ASSERT_EQ(2u, result.size());
377 EXPECT_EQ(address_list[0], result[0]); 383 EXPECT_EQ(address_list[0], result[0]);
378 EXPECT_EQ(address_list[1], result[1]); 384 EXPECT_EQ(address_list[1], result[1]);
379 EXPECT_EQ(1u, mock_resolver_->requests().size()); 385 EXPECT_EQ(1u, mock_resolver_->requests().size());
380 } 386 }
381 387
382 TEST_F(HostResolverMojoTest, ResolveFromCache_CacheNotAllowed) { 388 TEST_F(HostResolverMojoTest, ResolveFromCache_CacheNotAllowed) {
383 AddressList address_list; 389 AddressList address_list;
384 IPAddress address(1, 2, 3, 4); 390 IPAddress address(1, 2, 3, 4);
385 address_list.push_back(IPEndPoint(address, 12345)); 391 address_list.push_back(IPEndPoint(address, 12345));
386 address_list.push_back( 392 address_list.push_back(
387 IPEndPoint(ConvertIPv4ToIPv4MappedIPv6(address), 12345)); 393 IPEndPoint(ConvertIPv4ToIPv4MappedIPv6(address), 12345));
388 mock_resolver_->AddAction(HostResolverAction::ReturnResult(address_list)); 394 mock_resolver_->AddAction(HostResolverAction::ReturnResult(address_list));
389 HostResolver::RequestInfo request_info( 395 HostResolver::RequestInfo request_info(
390 HostPortPair::FromString("example.com:12345")); 396 HostPortPair::FromString("example.com:12345"));
391 AddressList result; 397 AddressList result;
392 ASSERT_EQ(OK, Resolve(request_info, &result)); 398 ASSERT_THAT(Resolve(request_info, &result), IsOk());
393 EXPECT_EQ(1u, mock_resolver_->requests().size()); 399 EXPECT_EQ(1u, mock_resolver_->requests().size());
394 400
395 result.clear(); 401 result.clear();
396 request_info.set_allow_cached_response(false); 402 request_info.set_allow_cached_response(false);
397 EXPECT_EQ(ERR_DNS_CACHE_MISS, 403 EXPECT_EQ(ERR_DNS_CACHE_MISS,
398 resolver_->ResolveFromCache(request_info, &result, BoundNetLog())); 404 resolver_->ResolveFromCache(request_info, &result, BoundNetLog()));
399 EXPECT_TRUE(result.empty()); 405 EXPECT_TRUE(result.empty());
400 } 406 }
401 407
402 TEST_F(HostResolverMojoTest, GetHostCache) { 408 TEST_F(HostResolverMojoTest, GetHostCache) {
403 EXPECT_TRUE(resolver_->GetHostCache()); 409 EXPECT_TRUE(resolver_->GetHostCache());
404 } 410 }
405 411
406 } // namespace net 412 } // namespace net
OLDNEW
« no previous file with comments | « net/dns/host_resolver_impl_unittest.cc ('k') | net/dns/mapped_host_resolver_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698