From de08f1b3cbe91b46e83f50a6068bcbf4ed3733f9 Mon Sep 17 00:00:00 2001 From: "szym@chromium.org" Date: Mon, 7 Nov 2011 22:10:16 +0000 Subject: Revert 108910 - Remove HostResolverImpl from Mock*HostResolver. MockHostResolver should not depend on the job dispatch machinery of HostResolverImpl. This implementation aims to be more readable/reliable while providing the same testing utility. MockHostResolver does not use extra threads hence cannot support WaitingHostResolverProc. To mock slow resolution, HangingHostResolver is provided for unit_tests:PredictorTest. Updated host_resolver_impl_unittest to test HostResolverImpl directly (rather than through MockHostResolver). BUG=99889 TEST=./net_unittests ; ./unit_tests --gtest_filter='PredictorTest.*' ; ./jingle_unittests Review URL: http://codereview.chromium.org/8267001 TBR=szym@chromium.org Review URL: http://codereview.chromium.org/8491023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108922 0039d316-1c4b-4281-b951-d872f2087c98 --- net/proxy/proxy_resolver_js_bindings_unittest.cc | 31 +++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) (limited to 'net/proxy') diff --git a/net/proxy/proxy_resolver_js_bindings_unittest.cc b/net/proxy/proxy_resolver_js_bindings_unittest.cc index e4fa389..1c580b9 100644 --- a/net/proxy/proxy_resolver_js_bindings_unittest.cc +++ b/net/proxy/proxy_resolver_js_bindings_unittest.cc @@ -8,7 +8,6 @@ #include "base/memory/scoped_ptr.h" #include "base/string_util.h" #include "net/base/address_list.h" -#include "net/base/host_cache.h" #include "net/base/mock_host_resolver.h" #include "net/base/net_errors.h" #include "net/base/net_log.h" @@ -34,14 +33,40 @@ class MockHostResolverWithMultipleResults : public SyncHostResolver { // HostResolver methods: virtual int Resolve(const HostResolver::RequestInfo& info, AddressList* addresses) OVERRIDE { - return ParseAddressList("192.168.1.1,172.22.34.1,200.100.1.2", "", - addresses); + // Build up the result list (in reverse). + AddressList temp_list = ResolveIPLiteral("200.100.1.2"); + temp_list = PrependAddressToList("172.22.34.1", temp_list); + temp_list = PrependAddressToList("192.168.1.1", temp_list); + *addresses = temp_list; + return OK; } virtual void Shutdown() OVERRIDE {} private: virtual ~MockHostResolverWithMultipleResults() {} + + // Resolves an IP literal to an address list. + AddressList ResolveIPLiteral(const char* ip_literal) { + AddressList result; + int rv = SystemHostResolverProc(ip_literal, + ADDRESS_FAMILY_UNSPECIFIED, + 0, + &result, NULL); + EXPECT_EQ(OK, rv); + EXPECT_EQ(NULL, result.head()->ai_next); + return result; + } + + // Builds an AddressList that is |ip_literal| + |orig_list|. + // |orig_list| must not be empty. + AddressList PrependAddressToList(const char* ip_literal, + const AddressList& orig_list) { + // Build an addrinfo for |ip_literal|. + AddressList result = ResolveIPLiteral(ip_literal); + result.Append(orig_list.head()); + return result; + } }; class MockFailingHostResolver : public SyncHostResolver { -- cgit v1.1