OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "net/dns/mapped_host_resolver.h" | 5 #include "net/dns/mapped_host_resolver.h" |
6 | 6 |
7 #include "net/base/address_list.h" | 7 #include "net/base/address_list.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_log.h" |
10 #include "net/base/net_util.h" | 10 #include "net/base/net_util.h" |
(...skipping 14 matching lines...) Expand all Loading... |
25 TEST(MappedHostResolverTest, Inclusion) { | 25 TEST(MappedHostResolverTest, Inclusion) { |
26 // Create a mock host resolver, with specific hostname to IP mappings. | 26 // Create a mock host resolver, with specific hostname to IP mappings. |
27 scoped_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); | 27 scoped_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); |
28 resolver_impl->rules()->AddSimulatedFailure("*google.com"); | 28 resolver_impl->rules()->AddSimulatedFailure("*google.com"); |
29 resolver_impl->rules()->AddRule("baz.com", "192.168.1.5"); | 29 resolver_impl->rules()->AddRule("baz.com", "192.168.1.5"); |
30 resolver_impl->rules()->AddRule("foo.com", "192.168.1.8"); | 30 resolver_impl->rules()->AddRule("foo.com", "192.168.1.8"); |
31 resolver_impl->rules()->AddRule("proxy", "192.168.1.11"); | 31 resolver_impl->rules()->AddRule("proxy", "192.168.1.11"); |
32 | 32 |
33 // Create a remapped resolver that uses |resolver_impl|. | 33 // Create a remapped resolver that uses |resolver_impl|. |
34 scoped_ptr<MappedHostResolver> resolver( | 34 scoped_ptr<MappedHostResolver> resolver( |
35 new MappedHostResolver(resolver_impl.PassAs<HostResolver>())); | 35 new MappedHostResolver(resolver_impl.Pass())); |
36 | 36 |
37 int rv; | 37 int rv; |
38 AddressList address_list; | 38 AddressList address_list; |
39 | 39 |
40 // Try resolving "www.google.com:80". There are no mappings yet, so this | 40 // Try resolving "www.google.com:80". There are no mappings yet, so this |
41 // hits |resolver_impl| and fails. | 41 // hits |resolver_impl| and fails. |
42 TestCompletionCallback callback; | 42 TestCompletionCallback callback; |
43 rv = resolver->Resolve( | 43 rv = resolver->Resolve( |
44 HostResolver::RequestInfo(HostPortPair("www.google.com", 80)), | 44 HostResolver::RequestInfo(HostPortPair("www.google.com", 80)), |
45 DEFAULT_PRIORITY, | 45 DEFAULT_PRIORITY, |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 | 99 |
100 // Tests that exclusions are respected. | 100 // Tests that exclusions are respected. |
101 TEST(MappedHostResolverTest, Exclusion) { | 101 TEST(MappedHostResolverTest, Exclusion) { |
102 // Create a mock host resolver, with specific hostname to IP mappings. | 102 // Create a mock host resolver, with specific hostname to IP mappings. |
103 scoped_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); | 103 scoped_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); |
104 resolver_impl->rules()->AddRule("baz", "192.168.1.5"); | 104 resolver_impl->rules()->AddRule("baz", "192.168.1.5"); |
105 resolver_impl->rules()->AddRule("www.google.com", "192.168.1.3"); | 105 resolver_impl->rules()->AddRule("www.google.com", "192.168.1.3"); |
106 | 106 |
107 // Create a remapped resolver that uses |resolver_impl|. | 107 // Create a remapped resolver that uses |resolver_impl|. |
108 scoped_ptr<MappedHostResolver> resolver( | 108 scoped_ptr<MappedHostResolver> resolver( |
109 new MappedHostResolver(resolver_impl.PassAs<HostResolver>())); | 109 new MappedHostResolver(resolver_impl.Pass())); |
110 | 110 |
111 int rv; | 111 int rv; |
112 AddressList address_list; | 112 AddressList address_list; |
113 TestCompletionCallback callback; | 113 TestCompletionCallback callback; |
114 | 114 |
115 // Remap "*.com" to "baz". | 115 // Remap "*.com" to "baz". |
116 EXPECT_TRUE(resolver->AddRuleFromString("map *.com baz")); | 116 EXPECT_TRUE(resolver->AddRuleFromString("map *.com baz")); |
117 | 117 |
118 // Add an exclusion for "*.google.com". | 118 // Add an exclusion for "*.google.com". |
119 EXPECT_TRUE(resolver->AddRuleFromString("EXCLUDE *.google.com")); | 119 EXPECT_TRUE(resolver->AddRuleFromString("EXCLUDE *.google.com")); |
(...skipping 26 matching lines...) Expand all Loading... |
146 } | 146 } |
147 | 147 |
148 TEST(MappedHostResolverTest, SetRulesFromString) { | 148 TEST(MappedHostResolverTest, SetRulesFromString) { |
149 // Create a mock host resolver, with specific hostname to IP mappings. | 149 // Create a mock host resolver, with specific hostname to IP mappings. |
150 scoped_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); | 150 scoped_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); |
151 resolver_impl->rules()->AddRule("baz", "192.168.1.7"); | 151 resolver_impl->rules()->AddRule("baz", "192.168.1.7"); |
152 resolver_impl->rules()->AddRule("bar", "192.168.1.9"); | 152 resolver_impl->rules()->AddRule("bar", "192.168.1.9"); |
153 | 153 |
154 // Create a remapped resolver that uses |resolver_impl|. | 154 // Create a remapped resolver that uses |resolver_impl|. |
155 scoped_ptr<MappedHostResolver> resolver( | 155 scoped_ptr<MappedHostResolver> resolver( |
156 new MappedHostResolver(resolver_impl.PassAs<HostResolver>())); | 156 new MappedHostResolver(resolver_impl.Pass())); |
157 | 157 |
158 int rv; | 158 int rv; |
159 AddressList address_list; | 159 AddressList address_list; |
160 TestCompletionCallback callback; | 160 TestCompletionCallback callback; |
161 | 161 |
162 // Remap "*.com" to "baz", and *.net to "bar:60". | 162 // Remap "*.com" to "baz", and *.net to "bar:60". |
163 resolver->SetRulesFromString("map *.com baz , map *.net bar:60"); | 163 resolver->SetRulesFromString("map *.com baz , map *.net bar:60"); |
164 | 164 |
165 // Try resolving "www.google.com". Should be remapped to "baz". | 165 // Try resolving "www.google.com". Should be remapped to "baz". |
166 rv = resolver->Resolve( | 166 rv = resolver->Resolve( |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 EXPECT_FALSE(resolver->AddRuleFromString("INCLUDE x")); | 203 EXPECT_FALSE(resolver->AddRuleFromString("INCLUDE x")); |
204 EXPECT_FALSE(resolver->AddRuleFromString("INCLUDE x :10")); | 204 EXPECT_FALSE(resolver->AddRuleFromString("INCLUDE x :10")); |
205 } | 205 } |
206 | 206 |
207 // Test mapping hostnames to resolving failures. | 207 // Test mapping hostnames to resolving failures. |
208 TEST(MappedHostResolverTest, MapToError) { | 208 TEST(MappedHostResolverTest, MapToError) { |
209 scoped_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); | 209 scoped_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); |
210 resolver_impl->rules()->AddRule("*", "192.168.1.5"); | 210 resolver_impl->rules()->AddRule("*", "192.168.1.5"); |
211 | 211 |
212 scoped_ptr<MappedHostResolver> resolver( | 212 scoped_ptr<MappedHostResolver> resolver( |
213 new MappedHostResolver(resolver_impl.PassAs<HostResolver>())); | 213 new MappedHostResolver(resolver_impl.Pass())); |
214 | 214 |
215 int rv; | 215 int rv; |
216 AddressList address_list; | 216 AddressList address_list; |
217 | 217 |
218 // Remap *.google.com to resolving failures. | 218 // Remap *.google.com to resolving failures. |
219 EXPECT_TRUE(resolver->AddRuleFromString("MAP *.google.com ~NOTFOUND")); | 219 EXPECT_TRUE(resolver->AddRuleFromString("MAP *.google.com ~NOTFOUND")); |
220 | 220 |
221 // Try resolving www.google.com --> Should give an error. | 221 // Try resolving www.google.com --> Should give an error. |
222 TestCompletionCallback callback1; | 222 TestCompletionCallback callback1; |
223 rv = resolver->Resolve( | 223 rv = resolver->Resolve( |
(...skipping 16 matching lines...) Expand all Loading... |
240 BoundNetLog()); | 240 BoundNetLog()); |
241 EXPECT_EQ(ERR_IO_PENDING, rv); | 241 EXPECT_EQ(ERR_IO_PENDING, rv); |
242 rv = callback2.WaitForResult(); | 242 rv = callback2.WaitForResult(); |
243 EXPECT_EQ(OK, rv); | 243 EXPECT_EQ(OK, rv); |
244 EXPECT_EQ("192.168.1.5:80", FirstAddress(address_list)); | 244 EXPECT_EQ("192.168.1.5:80", FirstAddress(address_list)); |
245 } | 245 } |
246 | 246 |
247 } // namespace | 247 } // namespace |
248 | 248 |
249 } // namespace net | 249 } // namespace net |
OLD | NEW |