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

Side by Side Diff: net/base/host_resolver_impl_unittest.cc

Issue 1615005: Flush socket pools and SPDY session pool properly on explicit requests and network changes. (Closed)
Patch Set: Fix minor leak. Created 10 years, 8 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/base/host_resolver_impl.cc ('k') | net/base/mapped_host_resolver.h » ('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 (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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/base/host_resolver_impl.h" 5 #include "net/base/host_resolver_impl.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 1021 matching lines...) Expand 10 before | Expand all | Expand 10 after
1032 1032
1033 EXPECT_EQ(2U, observer.start_log.size()); 1033 EXPECT_EQ(2U, observer.start_log.size());
1034 EXPECT_EQ(0U, observer.finish_log.size()); 1034 EXPECT_EQ(0U, observer.finish_log.size());
1035 EXPECT_EQ(2U, observer.cancel_log.size()); 1035 EXPECT_EQ(2U, observer.cancel_log.size());
1036 1036
1037 HostResolver::RequestInfo info("host2", 60); 1037 HostResolver::RequestInfo info("host2", 60);
1038 EXPECT_TRUE(observer.cancel_log[1] == 1038 EXPECT_TRUE(observer.cancel_log[1] ==
1039 CapturingObserver::StartOrCancelEntry(1, info)); 1039 CapturingObserver::StartOrCancelEntry(1, info));
1040 } 1040 }
1041 1041
1042 // Test that IP address changes flush the cache.
1043 TEST_F(HostResolverImplTest, FlushCacheOnIPAddressChange) {
1044 MockNetworkChangeNotifier mock_network_change_notifier;
1045 scoped_refptr<HostResolver> host_resolver(
1046 new HostResolverImpl(NULL, CreateDefaultCache(),
1047 &mock_network_change_notifier,
1048 kMaxJobs));
1049
1050 AddressList addrlist;
1051
1052 // Resolve "host1".
1053 HostResolver::RequestInfo info1("host1", 70);
1054 TestCompletionCallback callback;
1055 int rv = host_resolver->Resolve(info1, &addrlist, &callback, NULL, NULL);
1056 EXPECT_EQ(ERR_IO_PENDING, rv);
1057 EXPECT_EQ(OK, callback.WaitForResult());
1058
1059 // Resolve "host1" again -- this time it will be served from cache, but it
1060 // should still notify of completion.
1061 rv = host_resolver->Resolve(info1, &addrlist, &callback, NULL, NULL);
1062 ASSERT_EQ(OK, rv); // Should complete synchronously.
1063
1064 // Flush cache by triggering an IP address change.
1065 mock_network_change_notifier.NotifyIPAddressChange();
1066
1067 // Resolve "host1" again -- this time it won't be served from cache, so it
1068 // will complete asynchronously.
1069 rv = host_resolver->Resolve(info1, &addrlist, &callback, NULL, NULL);
1070 ASSERT_EQ(ERR_IO_PENDING, rv); // Should complete asynchronously.
1071 EXPECT_EQ(OK, callback.WaitForResult());
1072 }
1073
1074 // Tests that when the maximum threads is set to 1, requests are dequeued 1042 // Tests that when the maximum threads is set to 1, requests are dequeued
1075 // in order of priority. 1043 // in order of priority.
1076 TEST_F(HostResolverImplTest, HigherPriorityRequestsStartedFirst) { 1044 TEST_F(HostResolverImplTest, HigherPriorityRequestsStartedFirst) {
1077 scoped_refptr<CapturingHostResolverProc> resolver_proc = 1045 scoped_refptr<CapturingHostResolverProc> resolver_proc =
1078 new CapturingHostResolverProc(NULL); 1046 new CapturingHostResolverProc(NULL);
1079 1047
1080 // This HostResolverImpl will only allow 1 outstanding resolve at a time. 1048 // This HostResolverImpl will only allow 1 outstanding resolve at a time.
1081 size_t kMaxJobs = 1u; 1049 size_t kMaxJobs = 1u;
1082 scoped_refptr<HostResolver> host_resolver( 1050 scoped_refptr<HostResolver> host_resolver(
1083 new HostResolverImpl(resolver_proc, CreateDefaultCache(), 1051 new HostResolverImpl(resolver_proc, CreateDefaultCache(),
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
1487 // z = value of address family 1455 // z = value of address family
1488 EXPECT_EQ("192.1.98.1", NetAddressToString(addrlist[0].head())); 1456 EXPECT_EQ("192.1.98.1", NetAddressToString(addrlist[0].head()));
1489 EXPECT_EQ("192.1.98.2", NetAddressToString(addrlist[1].head())); 1457 EXPECT_EQ("192.1.98.2", NetAddressToString(addrlist[1].head()));
1490 EXPECT_EQ("192.1.98.1", NetAddressToString(addrlist[2].head())); 1458 EXPECT_EQ("192.1.98.1", NetAddressToString(addrlist[2].head()));
1491 EXPECT_EQ("192.1.98.1", NetAddressToString(addrlist[3].head())); 1459 EXPECT_EQ("192.1.98.1", NetAddressToString(addrlist[3].head()));
1492 } 1460 }
1493 1461
1494 } // namespace 1462 } // namespace
1495 1463
1496 } // namespace net 1464 } // namespace net
OLDNEW
« no previous file with comments | « net/base/host_resolver_impl.cc ('k') | net/base/mapped_host_resolver.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698