| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |