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 29227588aa8dc013a176555517a613914f2fa11b..a4d1954ab391a7da8e78f9e94ab3242e1e6337a2 100644 |
--- a/net/base/host_resolver_impl_unittest.cc |
+++ b/net/base/host_resolver_impl_unittest.cc |
@@ -23,7 +23,6 @@ |
#include "net/base/net_util.h" |
#include "net/base/sys_addrinfo.h" |
#include "net/base/test_completion_callback.h" |
-#include "net/base/test_host_resolver_observer.h" |
#include "testing/gtest/include/gtest/gtest.h" |
// TODO(eroman): |
@@ -982,162 +981,6 @@ TEST_F(HostResolverImplTest, BypassCache) { |
MessageLoop::current()->Run(); |
} |
-// Test that registering, unregistering, and notifying of observers works. |
-// Does not test the cancellation notification since all resolves are |
-// synchronous. |
-TEST_F(HostResolverImplTest, Observers) { |
- scoped_ptr<HostResolver> host_resolver( |
- CreateHostResolverImpl(NULL)); |
- |
- TestHostResolverObserver observer; |
- |
- host_resolver->AddObserver(&observer); |
- |
- AddressList addrlist; |
- |
- // Resolve "host1". |
- HostResolver::RequestInfo info1(HostPortPair("host1", 70)); |
- CapturingBoundNetLog log(CapturingNetLog::kUnbounded); |
- TestOldCompletionCallback callback; |
- int rv = host_resolver->Resolve(info1, &addrlist, &callback, NULL, |
- log.bound()); |
- EXPECT_EQ(ERR_IO_PENDING, rv); |
- rv = callback.WaitForResult(); |
- EXPECT_EQ(OK, rv); |
- |
- CapturingNetLog::EntryList entries; |
- log.GetEntries(&entries); |
- |
- EXPECT_EQ(2u, entries.size()); |
- EXPECT_TRUE(LogContainsBeginEvent( |
- entries, 0, NetLog::TYPE_HOST_RESOLVER_IMPL)); |
- EXPECT_TRUE(LogContainsEndEvent( |
- entries, 1, NetLog::TYPE_HOST_RESOLVER_IMPL)); |
- |
- EXPECT_EQ(1U, observer.start_log.size()); |
- EXPECT_EQ(1U, observer.finish_log.size()); |
- EXPECT_EQ(0U, observer.cancel_log.size()); |
- EXPECT_TRUE(observer.start_log[0] == |
- TestHostResolverObserver::StartOrCancelEntry(0, info1)); |
- EXPECT_TRUE(observer.finish_log[0] == |
- TestHostResolverObserver::FinishEntry(0, true, info1)); |
- |
- // 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, BoundNetLog()); |
- ASSERT_EQ(OK, rv); // Should complete synchronously. |
- |
- EXPECT_EQ(2U, observer.start_log.size()); |
- EXPECT_EQ(2U, observer.finish_log.size()); |
- EXPECT_EQ(0U, observer.cancel_log.size()); |
- EXPECT_TRUE(observer.start_log[1] == |
- TestHostResolverObserver::StartOrCancelEntry(1, info1)); |
- EXPECT_TRUE(observer.finish_log[1] == |
- TestHostResolverObserver::FinishEntry(1, true, info1)); |
- |
- // Resolve "host2", setting referrer to "http://foobar.com" |
- HostResolver::RequestInfo info2(HostPortPair("host2", 70)); |
- info2.set_referrer(GURL("http://foobar.com")); |
- rv = host_resolver->Resolve(info2, &addrlist, &callback, NULL, BoundNetLog()); |
- EXPECT_EQ(ERR_IO_PENDING, rv); |
- rv = callback.WaitForResult(); |
- EXPECT_EQ(OK, rv); |
- |
- EXPECT_EQ(3U, observer.start_log.size()); |
- EXPECT_EQ(3U, observer.finish_log.size()); |
- EXPECT_EQ(0U, observer.cancel_log.size()); |
- EXPECT_TRUE(observer.start_log[2] == |
- TestHostResolverObserver::StartOrCancelEntry(2, info2)); |
- EXPECT_TRUE(observer.finish_log[2] == |
- TestHostResolverObserver::FinishEntry(2, true, info2)); |
- |
- // Unregister the observer. |
- host_resolver->RemoveObserver(&observer); |
- |
- // Resolve "host3" |
- HostResolver::RequestInfo info3(HostPortPair("host3", 70)); |
- host_resolver->Resolve(info3, &addrlist, &callback, NULL, BoundNetLog()); |
- |
- // No effect this time, since observer was removed. |
- EXPECT_EQ(3U, observer.start_log.size()); |
- EXPECT_EQ(3U, observer.finish_log.size()); |
- EXPECT_EQ(0U, observer.cancel_log.size()); |
-} |
- |
-// Tests that observers are sent OnCancelResolution() whenever a request is |
-// cancelled. There are two ways to cancel a request: |
-// (1) Delete the HostResolver while job is outstanding. |
-// (2) Call HostResolver::CancelRequest() while a request is outstanding. |
-TEST_F(HostResolverImplTest, CancellationObserver) { |
- TestHostResolverObserver observer; |
- { |
- // Create a host resolver and attach an observer. |
- scoped_ptr<HostResolver> host_resolver( |
- CreateHostResolverImpl(NULL)); |
- host_resolver->AddObserver(&observer); |
- |
- TestOldCompletionCallback callback; |
- |
- EXPECT_EQ(0U, observer.start_log.size()); |
- EXPECT_EQ(0U, observer.finish_log.size()); |
- EXPECT_EQ(0U, observer.cancel_log.size()); |
- |
- // Start an async resolve for (host1:70). |
- HostResolver::RequestInfo info1(HostPortPair("host1", 70)); |
- HostResolver::RequestHandle req = NULL; |
- AddressList addrlist; |
- int rv = host_resolver->Resolve(info1, &addrlist, &callback, &req, |
- BoundNetLog()); |
- EXPECT_EQ(ERR_IO_PENDING, rv); |
- EXPECT_TRUE(NULL != req); |
- |
- EXPECT_EQ(1U, observer.start_log.size()); |
- EXPECT_EQ(0U, observer.finish_log.size()); |
- EXPECT_EQ(0U, observer.cancel_log.size()); |
- |
- EXPECT_TRUE(observer.start_log[0] == |
- TestHostResolverObserver::StartOrCancelEntry(0, info1)); |
- |
- // Cancel the request. |
- host_resolver->CancelRequest(req); |
- |
- EXPECT_EQ(1U, observer.start_log.size()); |
- EXPECT_EQ(0U, observer.finish_log.size()); |
- EXPECT_EQ(1U, observer.cancel_log.size()); |
- |
- EXPECT_TRUE(observer.cancel_log[0] == |
- TestHostResolverObserver::StartOrCancelEntry(0, info1)); |
- |
- // Start an async request for (host2:60) |
- HostResolver::RequestInfo info2(HostPortPair("host2", 60)); |
- rv = host_resolver->Resolve(info2, &addrlist, &callback, NULL, |
- BoundNetLog()); |
- EXPECT_EQ(ERR_IO_PENDING, rv); |
- EXPECT_TRUE(NULL != req); |
- |
- EXPECT_EQ(2U, observer.start_log.size()); |
- EXPECT_EQ(0U, observer.finish_log.size()); |
- EXPECT_EQ(1U, observer.cancel_log.size()); |
- |
- EXPECT_TRUE(observer.start_log[1] == |
- TestHostResolverObserver::StartOrCancelEntry(1, info2)); |
- |
- // Upon exiting this scope, HostResolver is destroyed, so all requests are |
- // implicitly cancelled. |
- } |
- |
- // Check that destroying the HostResolver sent a notification for |
- // cancellation of host2:60 request. |
- |
- EXPECT_EQ(2U, observer.start_log.size()); |
- EXPECT_EQ(0U, observer.finish_log.size()); |
- EXPECT_EQ(2U, observer.cancel_log.size()); |
- |
- HostResolver::RequestInfo info(HostPortPair("host2", 60)); |
- EXPECT_TRUE(observer.cancel_log[1] == |
- TestHostResolverObserver::StartOrCancelEntry(1, info)); |
-} |
- |
// Test that IP address changes flush the cache. |
TEST_F(HostResolverImplTest, FlushCacheOnIPAddressChange) { |
scoped_ptr<HostResolver> host_resolver( |
@@ -1301,9 +1144,6 @@ TEST_F(HostResolverImplTest, HigherPriorityRequestsStartedFirst) { |
new HostResolverImpl(resolver_proc, HostCache::CreateDefaultCache(), |
kMaxJobs, kRetryAttempts, NULL)); |
- TestHostResolverObserver observer; |
- host_resolver->AddObserver(&observer); |
- |
// Note that at this point the CapturingHostResolverProc is blocked, so any |
// requests we make will not complete. |
@@ -1336,8 +1176,6 @@ TEST_F(HostResolverImplTest, HigherPriorityRequestsStartedFirst) { |
EXPECT_EQ(OK, callback[i].WaitForResult()) << "i=" << i; |
} |
- host_resolver->RemoveObserver(&observer); |
- |
// Since we have restricted to a single concurrent thread in the jobpool, |
// the requests should complete in order of priority (with the exception |
// of the first request, which gets started right away, since there is |
@@ -1353,26 +1191,6 @@ TEST_F(HostResolverImplTest, HigherPriorityRequestsStartedFirst) { |
EXPECT_EQ("req2", capture_list[4].hostname); |
EXPECT_EQ("req3", capture_list[5].hostname); |
EXPECT_EQ("req6", capture_list[6].hostname); |
- |
- // Also check using the observer's trace. |
- EXPECT_EQ(8U, observer.start_log.size()); |
- EXPECT_EQ(8U, observer.finish_log.size()); |
- EXPECT_EQ(0U, observer.cancel_log.size()); |
- |
- EXPECT_EQ("req0", observer.finish_log[0].info.hostname()); |
- EXPECT_EQ("req4", observer.finish_log[1].info.hostname()); |
- |
- // There were two requests for "req5". The highest priority |
- // one should have been dispatched earlier. |
- EXPECT_EQ("req5", observer.finish_log[2].info.hostname()); |
- EXPECT_EQ("req5", observer.finish_log[3].info.hostname()); |
- EXPECT_EQ(HIGHEST, observer.finish_log[2].info.priority()); |
- EXPECT_EQ(LOW, observer.finish_log[3].info.priority()); |
- |
- EXPECT_EQ("req1", observer.finish_log[4].info.hostname()); |
- EXPECT_EQ("req2", observer.finish_log[5].info.hostname()); |
- EXPECT_EQ("req3", observer.finish_log[6].info.hostname()); |
- EXPECT_EQ("req6", observer.finish_log[7].info.hostname()); |
} |
// Try cancelling a request which has not been attached to a job yet. |