diff options
author | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-25 21:30:38 +0000 |
---|---|---|
committer | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-25 21:30:38 +0000 |
commit | 66761b95332549f825999e482c17c94675275f49 (patch) | |
tree | fc5307808a2c62f1eff2a9f37db3aff11c5455d9 /net/base/host_resolver_impl_unittest.cc | |
parent | e313f3b11360902a3da9b3b1cc0df2a4792d0867 (diff) | |
download | chromium_src-66761b95332549f825999e482c17c94675275f49.zip chromium_src-66761b95332549f825999e482c17c94675275f49.tar.gz chromium_src-66761b95332549f825999e482c17c94675275f49.tar.bz2 |
Massively simplify the NetworkChangeNotifier infrastructure:
* Use a process-wide object (singleton pattern)
* Create/destroy this object on the main thread, make it outlive all consumers
* Make observer-related functions threadsafe
As a result, the notifier can now be used by any thread (eliminating things like NetworkChangeObserverProxy and NetworkChangeNotifierProxy, and expanding its usefulness); its creation and inner workings are much simplified (eliminating implementation-specific classes); and it is simpler to access (eliminating things like NetworkChangeNotifierThread and a LOT of passing pointers around).
BUG=none
TEST=Unittests; network changes still trigger notifications
Review URL: http://codereview.chromium.org/2802015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50895 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/host_resolver_impl_unittest.cc')
-rw-r--r-- | net/base/host_resolver_impl_unittest.cc | 43 |
1 files changed, 15 insertions, 28 deletions
diff --git a/net/base/host_resolver_impl_unittest.cc b/net/base/host_resolver_impl_unittest.cc index 3d7e02a..6b33a56 100644 --- a/net/base/host_resolver_impl_unittest.cc +++ b/net/base/host_resolver_impl_unittest.cc @@ -13,7 +13,6 @@ #include "net/base/address_list.h" #include "net/base/completion_callback.h" #include "net/base/mock_host_resolver.h" -#include "net/base/mock_network_change_notifier.h" #include "net/base/net_errors.h" #include "net/base/net_log_unittest.h" #include "net/base/net_util.h" @@ -39,11 +38,7 @@ HostCache* CreateDefaultCache() { static const size_t kMaxJobs = 10u; HostResolverImpl* CreateHostResolverImpl(HostResolverProc* resolver_proc) { - return new HostResolverImpl( - resolver_proc, - CreateDefaultCache(), - NULL, // network_change_notifier - kMaxJobs); + return new HostResolverImpl(resolver_proc, CreateDefaultCache(), kMaxJobs); } // Helper to create a HostResolver::RequestInfo. @@ -748,7 +743,7 @@ TEST_F(HostResolverImplTest, StartWithinCallback) { // Turn off caching for this host resolver. scoped_refptr<HostResolver> host_resolver( - new HostResolverImpl(resolver_proc, NULL, NULL, kMaxJobs)); + new HostResolverImpl(resolver_proc, NULL, kMaxJobs)); // The class will receive callbacks for when each resolve completes. It // checks that the right things happened. @@ -1044,11 +1039,8 @@ TEST_F(HostResolverImplTest, CancellationObserver) { // 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)); + new HostResolverImpl(NULL, CreateDefaultCache(), kMaxJobs)); AddressList addrlist; @@ -1066,7 +1058,8 @@ TEST_F(HostResolverImplTest, FlushCacheOnIPAddressChange) { ASSERT_EQ(OK, rv); // Should complete synchronously. // Flush cache by triggering an IP address change. - mock_network_change_notifier.NotifyIPAddressChange(); + NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests(); + MessageLoop::current()->RunAllPending(); // Notification happens async. // Resolve "host1" again -- this time it won't be served from cache, so it // will complete asynchronously. @@ -1084,8 +1077,7 @@ TEST_F(HostResolverImplTest, HigherPriorityRequestsStartedFirst) { // This HostResolverImpl will only allow 1 outstanding resolve at a time. size_t kMaxJobs = 1u; scoped_refptr<HostResolver> host_resolver( - new HostResolverImpl(resolver_proc, CreateDefaultCache(), - NULL, kMaxJobs)); + new HostResolverImpl(resolver_proc, CreateDefaultCache(), kMaxJobs)); CapturingObserver observer; host_resolver->AddObserver(&observer); @@ -1169,8 +1161,7 @@ TEST_F(HostResolverImplTest, CancelPendingRequest) { // This HostResolverImpl will only allow 1 outstanding resolve at a time. const size_t kMaxJobs = 1u; scoped_refptr<HostResolver> host_resolver( - new HostResolverImpl(resolver_proc, CreateDefaultCache(), - NULL, kMaxJobs)); + new HostResolverImpl(resolver_proc, CreateDefaultCache(), kMaxJobs)); // Note that at this point the CapturingHostResolverProc is blocked, so any // requests we make will not complete. @@ -1231,9 +1222,8 @@ TEST_F(HostResolverImplTest, QueueOverflow) { // This HostResolverImpl will only allow 1 outstanding resolve at a time. const size_t kMaxOutstandingJobs = 1u; - scoped_refptr<HostResolverImpl> host_resolver( - new HostResolverImpl(resolver_proc, CreateDefaultCache(), - NULL, kMaxOutstandingJobs)); + scoped_refptr<HostResolverImpl> host_resolver(new HostResolverImpl( + resolver_proc, CreateDefaultCache(), kMaxOutstandingJobs)); // Only allow up to 3 requests to be enqueued at a time. const size_t kMaxPendingRequests = 3u; @@ -1310,9 +1300,8 @@ TEST_F(HostResolverImplTest, SetDefaultAddressFamily_IPv4) { // This HostResolverImpl will only allow 1 outstanding resolve at a time. const size_t kMaxOutstandingJobs = 1u; - scoped_refptr<HostResolverImpl> host_resolver( - new HostResolverImpl(resolver_proc, CreateDefaultCache(), - NULL, kMaxOutstandingJobs)); + scoped_refptr<HostResolverImpl> host_resolver(new HostResolverImpl( + resolver_proc, CreateDefaultCache(), kMaxOutstandingJobs)); host_resolver->SetDefaultAddressFamily(ADDRESS_FAMILY_IPV4); @@ -1379,9 +1368,8 @@ TEST_F(HostResolverImplTest, SetDefaultAddressFamily_IPv6) { // This HostResolverImpl will only allow 1 outstanding resolve at a time. const size_t kMaxOutstandingJobs = 1u; - scoped_refptr<HostResolverImpl> host_resolver( - new HostResolverImpl(resolver_proc, CreateDefaultCache(), - NULL, kMaxOutstandingJobs)); + scoped_refptr<HostResolverImpl> host_resolver(new HostResolverImpl( + resolver_proc, CreateDefaultCache(), kMaxOutstandingJobs)); host_resolver->SetDefaultAddressFamily(ADDRESS_FAMILY_IPV6); @@ -1446,9 +1434,8 @@ TEST_F(HostResolverImplTest, SetDefaultAddressFamily_Synchronous) { new CapturingHostResolverProc(new EchoingHostResolverProc); const size_t kMaxOutstandingJobs = 10u; - scoped_refptr<HostResolverImpl> host_resolver( - new HostResolverImpl(resolver_proc, CreateDefaultCache(), - NULL, kMaxOutstandingJobs)); + scoped_refptr<HostResolverImpl> host_resolver(new HostResolverImpl( + resolver_proc, CreateDefaultCache(), kMaxOutstandingJobs)); host_resolver->SetDefaultAddressFamily(ADDRESS_FAMILY_IPV4); |