| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 "base/scoped_ptr.h" | 5 #include "base/scoped_ptr.h" |
| 6 #include "net/base/address_list.h" | 6 #include "net/base/address_list.h" |
| 7 #include "net/base/mock_host_resolver.h" | 7 #include "net/base/mock_host_resolver.h" |
| 8 #include "net/base/net_errors.h" | 8 #include "net/base/net_errors.h" |
| 9 #include "net/base/net_log.h" |
| 9 #include "net/base/net_util.h" | 10 #include "net/base/net_util.h" |
| 10 #include "net/base/sys_addrinfo.h" | 11 #include "net/base/sys_addrinfo.h" |
| 11 #include "net/proxy/proxy_resolver_js_bindings.h" | 12 #include "net/proxy/proxy_resolver_js_bindings.h" |
| 12 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
| 13 | 14 |
| 14 namespace net { | 15 namespace net { |
| 15 namespace { | 16 namespace { |
| 16 | 17 |
| 17 // This is a HostResolver that synchronously resolves all hosts to the | 18 // This is a HostResolver that synchronously resolves all hosts to the |
| 18 // following address list of length 3: | 19 // following address list of length 3: |
| 19 // 192.168.1.1 | 20 // 192.168.1.1 |
| 20 // 172.22.34.1 | 21 // 172.22.34.1 |
| 21 // 200.100.1.2 | 22 // 200.100.1.2 |
| 22 class MockHostResolverWithMultipleResults : public HostResolver { | 23 class MockHostResolverWithMultipleResults : public HostResolver { |
| 23 public: | 24 public: |
| 24 // HostResolver methods: | 25 // HostResolver methods: |
| 25 virtual int Resolve(const RequestInfo& info, | 26 virtual int Resolve(const RequestInfo& info, |
| 26 AddressList* addresses, | 27 AddressList* addresses, |
| 27 CompletionCallback* callback, | 28 CompletionCallback* callback, |
| 28 RequestHandle* out_req, | 29 RequestHandle* out_req, |
| 29 LoadLog* load_log) { | 30 const BoundNetLog& net_log) { |
| 30 // Build up the result list (in reverse). | 31 // Build up the result list (in reverse). |
| 31 AddressList temp_list = ResolveIPLiteral("200.100.1.2"); | 32 AddressList temp_list = ResolveIPLiteral("200.100.1.2"); |
| 32 temp_list = PrependAddressToList("172.22.34.1", temp_list); | 33 temp_list = PrependAddressToList("172.22.34.1", temp_list); |
| 33 temp_list = PrependAddressToList("192.168.1.1", temp_list); | 34 temp_list = PrependAddressToList("192.168.1.1", temp_list); |
| 34 *addresses = temp_list; | 35 *addresses = temp_list; |
| 35 return OK; | 36 return OK; |
| 36 } | 37 } |
| 37 virtual void CancelRequest(RequestHandle req) {} | 38 virtual void CancelRequest(RequestHandle req) {} |
| 38 virtual void AddObserver(Observer* observer) {} | 39 virtual void AddObserver(Observer* observer) {} |
| 39 virtual void RemoveObserver(Observer* observer) {} | 40 virtual void RemoveObserver(Observer* observer) {} |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 "*", ADDRESS_FAMILY_IPV4, "192.168.1.2"); | 143 "*", ADDRESS_FAMILY_IPV4, "192.168.1.2"); |
| 143 host_resolver->rules()->AddRuleForAddressFamily( | 144 host_resolver->rules()->AddRuleForAddressFamily( |
| 144 "foo", ADDRESS_FAMILY_UNSPECIFIED, "192.168.2.1"); | 145 "foo", ADDRESS_FAMILY_UNSPECIFIED, "192.168.2.1"); |
| 145 host_resolver->rules()->AddRuleForAddressFamily( | 146 host_resolver->rules()->AddRuleForAddressFamily( |
| 146 "*", ADDRESS_FAMILY_UNSPECIFIED, "192.168.2.2"); | 147 "*", ADDRESS_FAMILY_UNSPECIFIED, "192.168.2.2"); |
| 147 | 148 |
| 148 // Verify that our mock setups works as expected, and we get different results | 149 // Verify that our mock setups works as expected, and we get different results |
| 149 // depending if the address family was IPV4_ONLY or not. | 150 // depending if the address family was IPV4_ONLY or not. |
| 150 HostResolver::RequestInfo info("foo", 80); | 151 HostResolver::RequestInfo info("foo", 80); |
| 151 AddressList address_list; | 152 AddressList address_list; |
| 152 EXPECT_EQ(OK, host_resolver->Resolve(info, &address_list, NULL, NULL, NULL)); | 153 EXPECT_EQ(OK, host_resolver->Resolve(info, &address_list, NULL, NULL, |
| 154 BoundNetLog())); |
| 153 EXPECT_EQ("192.168.2.1", NetAddressToString(address_list.head())); | 155 EXPECT_EQ("192.168.2.1", NetAddressToString(address_list.head())); |
| 154 | 156 |
| 155 info.set_address_family(ADDRESS_FAMILY_IPV4); | 157 info.set_address_family(ADDRESS_FAMILY_IPV4); |
| 156 EXPECT_EQ(OK, host_resolver->Resolve(info, &address_list, NULL, NULL, NULL)); | 158 EXPECT_EQ(OK, host_resolver->Resolve(info, &address_list, NULL, NULL, |
| 159 BoundNetLog())); |
| 157 EXPECT_EQ("192.168.1.1", NetAddressToString(address_list.head())); | 160 EXPECT_EQ("192.168.1.1", NetAddressToString(address_list.head())); |
| 158 | 161 |
| 159 // Now the actual test. | 162 // Now the actual test. |
| 160 EXPECT_EQ("192.168.1.2", bindings->MyIpAddress()); // IPv4 restricted. | 163 EXPECT_EQ("192.168.1.2", bindings->MyIpAddress()); // IPv4 restricted. |
| 161 EXPECT_EQ("192.168.1.1", bindings->DnsResolve("foo")); // IPv4 restricted. | 164 EXPECT_EQ("192.168.1.1", bindings->DnsResolve("foo")); // IPv4 restricted. |
| 162 EXPECT_EQ("192.168.1.2", bindings->DnsResolve("foo2")); // IPv4 restricted. | 165 EXPECT_EQ("192.168.1.2", bindings->DnsResolve("foo2")); // IPv4 restricted. |
| 163 | 166 |
| 164 EXPECT_EQ("192.168.2.2", bindings->MyIpAddressEx()); // Unrestricted. | 167 EXPECT_EQ("192.168.2.2", bindings->MyIpAddressEx()); // Unrestricted. |
| 165 EXPECT_EQ("192.168.2.1", bindings->DnsResolveEx("foo")); // Unrestricted. | 168 EXPECT_EQ("192.168.2.1", bindings->DnsResolveEx("foo")); // Unrestricted. |
| 166 EXPECT_EQ("192.168.2.2", bindings->DnsResolveEx("foo2")); // Unrestricted. | 169 EXPECT_EQ("192.168.2.2", bindings->DnsResolveEx("foo2")); // Unrestricted. |
| (...skipping 12 matching lines...) Expand all Loading... |
| 179 | 182 |
| 180 EXPECT_EQ("192.168.1.1;172.22.34.1;200.100.1.2", | 183 EXPECT_EQ("192.168.1.1;172.22.34.1;200.100.1.2", |
| 181 bindings->MyIpAddressEx()); | 184 bindings->MyIpAddressEx()); |
| 182 | 185 |
| 183 EXPECT_EQ("192.168.1.1;172.22.34.1;200.100.1.2", | 186 EXPECT_EQ("192.168.1.1;172.22.34.1;200.100.1.2", |
| 184 bindings->DnsResolveEx("FOO")); | 187 bindings->DnsResolveEx("FOO")); |
| 185 } | 188 } |
| 186 | 189 |
| 187 } // namespace | 190 } // namespace |
| 188 } // namespace net | 191 } // namespace net |
| OLD | NEW |