| 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 e9a721c5d4f497173dbfad5a3107d463c26e8e91..a17fb6a8b2b90c520ab158b1925f15977ea65d58 100644
|
| --- a/net/base/host_resolver_impl_unittest.cc
|
| +++ b/net/base/host_resolver_impl_unittest.cc
|
| @@ -1043,6 +1043,38 @@ TEST_F(HostResolverImplTest, CancellationObserver) {
|
| CapturingObserver::StartOrCancelEntry(1, info));
|
| }
|
|
|
| +// Test that IP address changes flush the cache.
|
| +TEST_F(HostResolverImplTest, FlushCacheOnIPAddressChange) {
|
| + MockNetworkChangeNotifier mock_network_change_notifier;
|
| + scoped_refptr<HostResolver> host_resolver(
|
| + new HostResolverImpl(NULL, CreateDefaultCache(),
|
| + &mock_network_change_notifier,
|
| + kMaxJobs));
|
| +
|
| + AddressList addrlist;
|
| +
|
| + // Resolve "host1".
|
| + HostResolver::RequestInfo info1("host1", 70);
|
| + TestCompletionCallback callback;
|
| + int rv = host_resolver->Resolve(info1, &addrlist, &callback, NULL, NULL);
|
| + 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, NULL);
|
| + ASSERT_EQ(OK, rv); // Should complete synchronously.
|
| +
|
| + // Flush cache by triggering an IP address change.
|
| + mock_network_change_notifier.NotifyIPAddressChange();
|
| +
|
| + // 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, NULL);
|
| + ASSERT_EQ(ERR_IO_PENDING, rv); // Should complete asynchronously.
|
| + EXPECT_EQ(OK, callback.WaitForResult());
|
| +}
|
| +
|
| // Tests that when the maximum threads is set to 1, requests are dequeued
|
| // in order of priority.
|
| TEST_F(HostResolverImplTest, HigherPriorityRequestsStartedFirst) {
|
|
|