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 |