| 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 |