Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Side by Side Diff: net/base/mapped_host_resolver_unittest.cc

Issue 10831277: [net] Change factory methods for HostResolver and HostCache to return a scoped_ptr (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove unnecessary initialization; respond to review Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/base/mapped_host_resolver.cc ('k') | net/curvecp/test_client.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/base/mapped_host_resolver.h" 5 #include "net/base/mapped_host_resolver.h"
6 6
7 #include "net/base/address_list.h" 7 #include "net/base/address_list.h"
8 #include "net/base/mock_host_resolver.h" 8 #include "net/base/mock_host_resolver.h"
9 #include "net/base/net_errors.h" 9 #include "net/base/net_errors.h"
10 #include "net/base/net_log.h" 10 #include "net/base/net_log.h"
11 #include "net/base/net_util.h" 11 #include "net/base/net_util.h"
12 #include "net/base/test_completion_callback.h" 12 #include "net/base/test_completion_callback.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 14
15 namespace net { 15 namespace net {
16 16
17 namespace { 17 namespace {
18 18
19 std::string FirstAddress(const AddressList& address_list) { 19 std::string FirstAddress(const AddressList& address_list) {
20 if (address_list.empty()) 20 if (address_list.empty())
21 return ""; 21 return "";
22 return address_list.front().ToString(); 22 return address_list.front().ToString();
23 } 23 }
24 24
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 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)); 35 new MappedHostResolver(resolver_impl.PassAs<HostResolver>()));
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(HostResolver::RequestInfo( 43 rv = resolver->Resolve(HostResolver::RequestInfo(
44 HostPortPair("www.google.com", 80)), 44 HostPortPair("www.google.com", 80)),
45 &address_list, callback.callback(), NULL, 45 &address_list, callback.callback(), NULL,
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 BoundNetLog()); 81 BoundNetLog());
82 EXPECT_EQ(ERR_IO_PENDING, rv); 82 EXPECT_EQ(ERR_IO_PENDING, rv);
83 rv = callback.WaitForResult(); 83 rv = callback.WaitForResult();
84 EXPECT_EQ(OK, rv); 84 EXPECT_EQ(OK, rv);
85 EXPECT_EQ("192.168.1.11:99", FirstAddress(address_list)); 85 EXPECT_EQ("192.168.1.11:99", FirstAddress(address_list));
86 } 86 }
87 87
88 // Tests that exclusions are respected. 88 // Tests that exclusions are respected.
89 TEST(MappedHostResolverTest, Exclusion) { 89 TEST(MappedHostResolverTest, Exclusion) {
90 // Create a mock host resolver, with specific hostname to IP mappings. 90 // Create a mock host resolver, with specific hostname to IP mappings.
91 MockHostResolver* resolver_impl(new MockHostResolver()); 91 scoped_ptr<MockHostResolver> resolver_impl(new MockHostResolver());
92 resolver_impl->rules()->AddRule("baz", "192.168.1.5"); 92 resolver_impl->rules()->AddRule("baz", "192.168.1.5");
93 resolver_impl->rules()->AddRule("www.google.com", "192.168.1.3"); 93 resolver_impl->rules()->AddRule("www.google.com", "192.168.1.3");
94 94
95 // Create a remapped resolver that uses |resolver_impl|. 95 // Create a remapped resolver that uses |resolver_impl|.
96 scoped_ptr<MappedHostResolver> resolver( 96 scoped_ptr<MappedHostResolver> resolver(
97 new MappedHostResolver(resolver_impl)); 97 new MappedHostResolver(resolver_impl.PassAs<HostResolver>()));
98 98
99 int rv; 99 int rv;
100 AddressList address_list; 100 AddressList address_list;
101 TestCompletionCallback callback; 101 TestCompletionCallback callback;
102 102
103 // Remap "*.com" to "baz". 103 // Remap "*.com" to "baz".
104 EXPECT_TRUE(resolver->AddRuleFromString("map *.com baz")); 104 EXPECT_TRUE(resolver->AddRuleFromString("map *.com baz"));
105 105
106 // Add an exclusion for "*.google.com". 106 // Add an exclusion for "*.google.com".
107 EXPECT_TRUE(resolver->AddRuleFromString("EXCLUDE *.google.com")); 107 EXPECT_TRUE(resolver->AddRuleFromString("EXCLUDE *.google.com"));
(...skipping 14 matching lines...) Expand all
122 &address_list, callback.callback(), NULL, 122 &address_list, callback.callback(), NULL,
123 BoundNetLog()); 123 BoundNetLog());
124 EXPECT_EQ(ERR_IO_PENDING, rv); 124 EXPECT_EQ(ERR_IO_PENDING, rv);
125 rv = callback.WaitForResult(); 125 rv = callback.WaitForResult();
126 EXPECT_EQ(OK, rv); 126 EXPECT_EQ(OK, rv);
127 EXPECT_EQ("192.168.1.5:80", FirstAddress(address_list)); 127 EXPECT_EQ("192.168.1.5:80", FirstAddress(address_list));
128 } 128 }
129 129
130 TEST(MappedHostResolverTest, SetRulesFromString) { 130 TEST(MappedHostResolverTest, SetRulesFromString) {
131 // Create a mock host resolver, with specific hostname to IP mappings. 131 // Create a mock host resolver, with specific hostname to IP mappings.
132 MockHostResolver* resolver_impl(new MockHostResolver()); 132 scoped_ptr<MockHostResolver> resolver_impl(new MockHostResolver());
133 resolver_impl->rules()->AddRule("baz", "192.168.1.7"); 133 resolver_impl->rules()->AddRule("baz", "192.168.1.7");
134 resolver_impl->rules()->AddRule("bar", "192.168.1.9"); 134 resolver_impl->rules()->AddRule("bar", "192.168.1.9");
135 135
136 // Create a remapped resolver that uses |resolver_impl|. 136 // Create a remapped resolver that uses |resolver_impl|.
137 scoped_ptr<MappedHostResolver> resolver( 137 scoped_ptr<MappedHostResolver> resolver(
138 new MappedHostResolver(resolver_impl)); 138 new MappedHostResolver(resolver_impl.PassAs<HostResolver>()));
139 139
140 int rv; 140 int rv;
141 AddressList address_list; 141 AddressList address_list;
142 TestCompletionCallback callback; 142 TestCompletionCallback callback;
143 143
144 // Remap "*.com" to "baz", and *.net to "bar:60". 144 // Remap "*.com" to "baz", and *.net to "bar:60".
145 resolver->SetRulesFromString("map *.com baz , map *.net bar:60"); 145 resolver->SetRulesFromString("map *.com baz , map *.net bar:60");
146 146
147 // Try resolving "www.google.com". Should be remapped to "baz". 147 // Try resolving "www.google.com". Should be remapped to "baz".
148 rv = resolver->Resolve(HostResolver::RequestInfo( 148 rv = resolver->Resolve(HostResolver::RequestInfo(
(...skipping 11 matching lines...) Expand all
160 &address_list, callback.callback(), NULL, 160 &address_list, callback.callback(), NULL,
161 BoundNetLog()); 161 BoundNetLog());
162 EXPECT_EQ(ERR_IO_PENDING, rv); 162 EXPECT_EQ(ERR_IO_PENDING, rv);
163 rv = callback.WaitForResult(); 163 rv = callback.WaitForResult();
164 EXPECT_EQ(OK, rv); 164 EXPECT_EQ(OK, rv);
165 EXPECT_EQ("192.168.1.9:60", FirstAddress(address_list)); 165 EXPECT_EQ("192.168.1.9:60", FirstAddress(address_list));
166 } 166 }
167 167
168 // Parsing bad rules should silently discard the rule (and never crash). 168 // Parsing bad rules should silently discard the rule (and never crash).
169 TEST(MappedHostResolverTest, ParseInvalidRules) { 169 TEST(MappedHostResolverTest, ParseInvalidRules) {
170 scoped_ptr<MappedHostResolver> resolver(new MappedHostResolver(NULL)); 170 scoped_ptr<MappedHostResolver> resolver(
171 new MappedHostResolver(scoped_ptr<HostResolver>()));
171 172
172 EXPECT_FALSE(resolver->AddRuleFromString("xyz")); 173 EXPECT_FALSE(resolver->AddRuleFromString("xyz"));
173 EXPECT_FALSE(resolver->AddRuleFromString("")); 174 EXPECT_FALSE(resolver->AddRuleFromString(""));
174 EXPECT_FALSE(resolver->AddRuleFromString(" ")); 175 EXPECT_FALSE(resolver->AddRuleFromString(" "));
175 EXPECT_FALSE(resolver->AddRuleFromString("EXCLUDE")); 176 EXPECT_FALSE(resolver->AddRuleFromString("EXCLUDE"));
176 EXPECT_FALSE(resolver->AddRuleFromString("EXCLUDE foo bar")); 177 EXPECT_FALSE(resolver->AddRuleFromString("EXCLUDE foo bar"));
177 EXPECT_FALSE(resolver->AddRuleFromString("INCLUDE")); 178 EXPECT_FALSE(resolver->AddRuleFromString("INCLUDE"));
178 EXPECT_FALSE(resolver->AddRuleFromString("INCLUDE x")); 179 EXPECT_FALSE(resolver->AddRuleFromString("INCLUDE x"));
179 EXPECT_FALSE(resolver->AddRuleFromString("INCLUDE x :10")); 180 EXPECT_FALSE(resolver->AddRuleFromString("INCLUDE x :10"));
180 } 181 }
181 182
182 } // namespace 183 } // namespace
183 184
184 } // namespace net 185 } // namespace net
OLDNEW
« no previous file with comments | « net/base/mapped_host_resolver.cc ('k') | net/curvecp/test_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698