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

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

Issue 2109503009: Refactor net tests to use GMock matchers for checking net::Error results (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Revert changes to contents.txt files Created 4 years, 5 months 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
« no previous file with comments | « net/dns/host_resolver_mojo_unittest.cc ('k') | net/dns/mojo_host_resolver_impl_unittest.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/dns/mapped_host_resolver.h" 5 #include "net/dns/mapped_host_resolver.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "net/base/address_list.h" 9 #include "net/base/address_list.h"
10 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
11 #include "net/base/test_completion_callback.h" 11 #include "net/base/test_completion_callback.h"
12 #include "net/dns/mock_host_resolver.h" 12 #include "net/dns/mock_host_resolver.h"
13 #include "net/log/net_log.h" 13 #include "net/log/net_log.h"
14 #include "net/test/gtest_util.h"
15 #include "testing/gmock/include/gmock/gmock.h"
14 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
15 17
18 using net::test::IsError;
19 using net::test::IsOk;
20
16 namespace net { 21 namespace net {
17 22
18 namespace { 23 namespace {
19 24
20 std::string FirstAddress(const AddressList& address_list) { 25 std::string FirstAddress(const AddressList& address_list) {
21 if (address_list.empty()) 26 if (address_list.empty())
22 return std::string(); 27 return std::string();
23 return address_list.front().ToString(); 28 return address_list.front().ToString();
24 } 29 }
25 30
(...skipping 15 matching lines...) Expand all
41 // Try resolving "www.google.com:80". There are no mappings yet, so this 46 // Try resolving "www.google.com:80". There are no mappings yet, so this
42 // hits |resolver_impl| and fails. 47 // hits |resolver_impl| and fails.
43 TestCompletionCallback callback; 48 TestCompletionCallback callback;
44 rv = resolver->Resolve( 49 rv = resolver->Resolve(
45 HostResolver::RequestInfo(HostPortPair("www.google.com", 80)), 50 HostResolver::RequestInfo(HostPortPair("www.google.com", 80)),
46 DEFAULT_PRIORITY, 51 DEFAULT_PRIORITY,
47 &address_list, 52 &address_list,
48 callback.callback(), 53 callback.callback(),
49 NULL, 54 NULL,
50 BoundNetLog()); 55 BoundNetLog());
51 EXPECT_EQ(ERR_IO_PENDING, rv); 56 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
52 rv = callback.WaitForResult(); 57 rv = callback.WaitForResult();
53 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, rv); 58 EXPECT_THAT(rv, IsError(ERR_NAME_NOT_RESOLVED));
54 59
55 // Remap *.google.com to baz.com. 60 // Remap *.google.com to baz.com.
56 EXPECT_TRUE(resolver->AddRuleFromString("map *.google.com baz.com")); 61 EXPECT_TRUE(resolver->AddRuleFromString("map *.google.com baz.com"));
57 62
58 // Try resolving "www.google.com:80". Should be remapped to "baz.com:80". 63 // Try resolving "www.google.com:80". Should be remapped to "baz.com:80".
59 rv = resolver->Resolve( 64 rv = resolver->Resolve(
60 HostResolver::RequestInfo(HostPortPair("www.google.com", 80)), 65 HostResolver::RequestInfo(HostPortPair("www.google.com", 80)),
61 DEFAULT_PRIORITY, 66 DEFAULT_PRIORITY,
62 &address_list, 67 &address_list,
63 callback.callback(), 68 callback.callback(),
64 NULL, 69 NULL,
65 BoundNetLog()); 70 BoundNetLog());
66 EXPECT_EQ(ERR_IO_PENDING, rv); 71 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
67 rv = callback.WaitForResult(); 72 rv = callback.WaitForResult();
68 EXPECT_EQ(OK, rv); 73 EXPECT_THAT(rv, IsOk());
69 EXPECT_EQ("192.168.1.5:80", FirstAddress(address_list)); 74 EXPECT_EQ("192.168.1.5:80", FirstAddress(address_list));
70 75
71 // Try resolving "foo.com:77". This will NOT be remapped, so result 76 // Try resolving "foo.com:77". This will NOT be remapped, so result
72 // is "foo.com:77". 77 // is "foo.com:77".
73 rv = resolver->Resolve(HostResolver::RequestInfo(HostPortPair("foo.com", 77)), 78 rv = resolver->Resolve(HostResolver::RequestInfo(HostPortPair("foo.com", 77)),
74 DEFAULT_PRIORITY, 79 DEFAULT_PRIORITY,
75 &address_list, 80 &address_list,
76 callback.callback(), 81 callback.callback(),
77 NULL, 82 NULL,
78 BoundNetLog()); 83 BoundNetLog());
79 EXPECT_EQ(ERR_IO_PENDING, rv); 84 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
80 rv = callback.WaitForResult(); 85 rv = callback.WaitForResult();
81 EXPECT_EQ(OK, rv); 86 EXPECT_THAT(rv, IsOk());
82 EXPECT_EQ("192.168.1.8:77", FirstAddress(address_list)); 87 EXPECT_EQ("192.168.1.8:77", FirstAddress(address_list));
83 88
84 // Remap "*.org" to "proxy:99". 89 // Remap "*.org" to "proxy:99".
85 EXPECT_TRUE(resolver->AddRuleFromString("Map *.org proxy:99")); 90 EXPECT_TRUE(resolver->AddRuleFromString("Map *.org proxy:99"));
86 91
87 // Try resolving "chromium.org:61". Should be remapped to "proxy:99". 92 // Try resolving "chromium.org:61". Should be remapped to "proxy:99".
88 rv = resolver->Resolve( 93 rv = resolver->Resolve(
89 HostResolver::RequestInfo(HostPortPair("chromium.org", 61)), 94 HostResolver::RequestInfo(HostPortPair("chromium.org", 61)),
90 DEFAULT_PRIORITY, 95 DEFAULT_PRIORITY,
91 &address_list, 96 &address_list,
92 callback.callback(), 97 callback.callback(),
93 NULL, 98 NULL,
94 BoundNetLog()); 99 BoundNetLog());
95 EXPECT_EQ(ERR_IO_PENDING, rv); 100 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
96 rv = callback.WaitForResult(); 101 rv = callback.WaitForResult();
97 EXPECT_EQ(OK, rv); 102 EXPECT_THAT(rv, IsOk());
98 EXPECT_EQ("192.168.1.11:99", FirstAddress(address_list)); 103 EXPECT_EQ("192.168.1.11:99", FirstAddress(address_list));
99 } 104 }
100 105
101 // Tests that exclusions are respected. 106 // Tests that exclusions are respected.
102 TEST(MappedHostResolverTest, Exclusion) { 107 TEST(MappedHostResolverTest, Exclusion) {
103 // Create a mock host resolver, with specific hostname to IP mappings. 108 // Create a mock host resolver, with specific hostname to IP mappings.
104 std::unique_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); 109 std::unique_ptr<MockHostResolver> resolver_impl(new MockHostResolver());
105 resolver_impl->rules()->AddRule("baz", "192.168.1.5"); 110 resolver_impl->rules()->AddRule("baz", "192.168.1.5");
106 resolver_impl->rules()->AddRule("www.google.com", "192.168.1.3"); 111 resolver_impl->rules()->AddRule("www.google.com", "192.168.1.3");
107 112
(...skipping 12 matching lines...) Expand all
120 EXPECT_TRUE(resolver->AddRuleFromString("EXCLUDE *.google.com")); 125 EXPECT_TRUE(resolver->AddRuleFromString("EXCLUDE *.google.com"));
121 126
122 // Try resolving "www.google.com". Should not be remapped due to exclusion). 127 // Try resolving "www.google.com". Should not be remapped due to exclusion).
123 rv = resolver->Resolve( 128 rv = resolver->Resolve(
124 HostResolver::RequestInfo(HostPortPair("www.google.com", 80)), 129 HostResolver::RequestInfo(HostPortPair("www.google.com", 80)),
125 DEFAULT_PRIORITY, 130 DEFAULT_PRIORITY,
126 &address_list, 131 &address_list,
127 callback.callback(), 132 callback.callback(),
128 NULL, 133 NULL,
129 BoundNetLog()); 134 BoundNetLog());
130 EXPECT_EQ(ERR_IO_PENDING, rv); 135 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
131 rv = callback.WaitForResult(); 136 rv = callback.WaitForResult();
132 EXPECT_EQ(OK, rv); 137 EXPECT_THAT(rv, IsOk());
133 EXPECT_EQ("192.168.1.3:80", FirstAddress(address_list)); 138 EXPECT_EQ("192.168.1.3:80", FirstAddress(address_list));
134 139
135 // Try resolving "chrome.com:80". Should be remapped to "baz:80". 140 // Try resolving "chrome.com:80". Should be remapped to "baz:80".
136 rv = resolver->Resolve( 141 rv = resolver->Resolve(
137 HostResolver::RequestInfo(HostPortPair("chrome.com", 80)), 142 HostResolver::RequestInfo(HostPortPair("chrome.com", 80)),
138 DEFAULT_PRIORITY, 143 DEFAULT_PRIORITY,
139 &address_list, 144 &address_list,
140 callback.callback(), 145 callback.callback(),
141 NULL, 146 NULL,
142 BoundNetLog()); 147 BoundNetLog());
143 EXPECT_EQ(ERR_IO_PENDING, rv); 148 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
144 rv = callback.WaitForResult(); 149 rv = callback.WaitForResult();
145 EXPECT_EQ(OK, rv); 150 EXPECT_THAT(rv, IsOk());
146 EXPECT_EQ("192.168.1.5:80", FirstAddress(address_list)); 151 EXPECT_EQ("192.168.1.5:80", FirstAddress(address_list));
147 } 152 }
148 153
149 TEST(MappedHostResolverTest, SetRulesFromString) { 154 TEST(MappedHostResolverTest, SetRulesFromString) {
150 // Create a mock host resolver, with specific hostname to IP mappings. 155 // Create a mock host resolver, with specific hostname to IP mappings.
151 std::unique_ptr<MockHostResolver> resolver_impl(new MockHostResolver()); 156 std::unique_ptr<MockHostResolver> resolver_impl(new MockHostResolver());
152 resolver_impl->rules()->AddRule("baz", "192.168.1.7"); 157 resolver_impl->rules()->AddRule("baz", "192.168.1.7");
153 resolver_impl->rules()->AddRule("bar", "192.168.1.9"); 158 resolver_impl->rules()->AddRule("bar", "192.168.1.9");
154 159
155 // Create a remapped resolver that uses |resolver_impl|. 160 // Create a remapped resolver that uses |resolver_impl|.
156 std::unique_ptr<MappedHostResolver> resolver( 161 std::unique_ptr<MappedHostResolver> resolver(
157 new MappedHostResolver(std::move(resolver_impl))); 162 new MappedHostResolver(std::move(resolver_impl)));
158 163
159 int rv; 164 int rv;
160 AddressList address_list; 165 AddressList address_list;
161 TestCompletionCallback callback; 166 TestCompletionCallback callback;
162 167
163 // Remap "*.com" to "baz", and *.net to "bar:60". 168 // Remap "*.com" to "baz", and *.net to "bar:60".
164 resolver->SetRulesFromString("map *.com baz , map *.net bar:60"); 169 resolver->SetRulesFromString("map *.com baz , map *.net bar:60");
165 170
166 // Try resolving "www.google.com". Should be remapped to "baz". 171 // Try resolving "www.google.com". Should be remapped to "baz".
167 rv = resolver->Resolve( 172 rv = resolver->Resolve(
168 HostResolver::RequestInfo(HostPortPair("www.google.com", 80)), 173 HostResolver::RequestInfo(HostPortPair("www.google.com", 80)),
169 DEFAULT_PRIORITY, 174 DEFAULT_PRIORITY,
170 &address_list, 175 &address_list,
171 callback.callback(), 176 callback.callback(),
172 NULL, 177 NULL,
173 BoundNetLog()); 178 BoundNetLog());
174 EXPECT_EQ(ERR_IO_PENDING, rv); 179 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
175 rv = callback.WaitForResult(); 180 rv = callback.WaitForResult();
176 EXPECT_EQ(OK, rv); 181 EXPECT_THAT(rv, IsOk());
177 EXPECT_EQ("192.168.1.7:80", FirstAddress(address_list)); 182 EXPECT_EQ("192.168.1.7:80", FirstAddress(address_list));
178 183
179 // Try resolving "chrome.net:80". Should be remapped to "bar:60". 184 // Try resolving "chrome.net:80". Should be remapped to "bar:60".
180 rv = resolver->Resolve( 185 rv = resolver->Resolve(
181 HostResolver::RequestInfo(HostPortPair("chrome.net", 80)), 186 HostResolver::RequestInfo(HostPortPair("chrome.net", 80)),
182 DEFAULT_PRIORITY, 187 DEFAULT_PRIORITY,
183 &address_list, 188 &address_list,
184 callback.callback(), 189 callback.callback(),
185 NULL, 190 NULL,
186 BoundNetLog()); 191 BoundNetLog());
187 EXPECT_EQ(ERR_IO_PENDING, rv); 192 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
188 rv = callback.WaitForResult(); 193 rv = callback.WaitForResult();
189 EXPECT_EQ(OK, rv); 194 EXPECT_THAT(rv, IsOk());
190 EXPECT_EQ("192.168.1.9:60", FirstAddress(address_list)); 195 EXPECT_EQ("192.168.1.9:60", FirstAddress(address_list));
191 } 196 }
192 197
193 // Parsing bad rules should silently discard the rule (and never crash). 198 // Parsing bad rules should silently discard the rule (and never crash).
194 TEST(MappedHostResolverTest, ParseInvalidRules) { 199 TEST(MappedHostResolverTest, ParseInvalidRules) {
195 std::unique_ptr<MappedHostResolver> resolver( 200 std::unique_ptr<MappedHostResolver> resolver(
196 new MappedHostResolver(std::unique_ptr<HostResolver>())); 201 new MappedHostResolver(std::unique_ptr<HostResolver>()));
197 202
198 EXPECT_FALSE(resolver->AddRuleFromString("xyz")); 203 EXPECT_FALSE(resolver->AddRuleFromString("xyz"));
199 EXPECT_FALSE(resolver->AddRuleFromString(std::string())); 204 EXPECT_FALSE(resolver->AddRuleFromString(std::string()));
(...skipping 21 matching lines...) Expand all
221 226
222 // Try resolving www.google.com --> Should give an error. 227 // Try resolving www.google.com --> Should give an error.
223 TestCompletionCallback callback1; 228 TestCompletionCallback callback1;
224 rv = resolver->Resolve( 229 rv = resolver->Resolve(
225 HostResolver::RequestInfo(HostPortPair("www.google.com", 80)), 230 HostResolver::RequestInfo(HostPortPair("www.google.com", 80)),
226 DEFAULT_PRIORITY, 231 DEFAULT_PRIORITY,
227 &address_list, 232 &address_list,
228 callback1.callback(), 233 callback1.callback(),
229 NULL, 234 NULL,
230 BoundNetLog()); 235 BoundNetLog());
231 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, rv); 236 EXPECT_THAT(rv, IsError(ERR_NAME_NOT_RESOLVED));
232 237
233 // Try resolving www.foo.com --> Should succeed. 238 // Try resolving www.foo.com --> Should succeed.
234 TestCompletionCallback callback2; 239 TestCompletionCallback callback2;
235 rv = resolver->Resolve( 240 rv = resolver->Resolve(
236 HostResolver::RequestInfo(HostPortPair("www.foo.com", 80)), 241 HostResolver::RequestInfo(HostPortPair("www.foo.com", 80)),
237 DEFAULT_PRIORITY, 242 DEFAULT_PRIORITY,
238 &address_list, 243 &address_list,
239 callback2.callback(), 244 callback2.callback(),
240 NULL, 245 NULL,
241 BoundNetLog()); 246 BoundNetLog());
242 EXPECT_EQ(ERR_IO_PENDING, rv); 247 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
243 rv = callback2.WaitForResult(); 248 rv = callback2.WaitForResult();
244 EXPECT_EQ(OK, rv); 249 EXPECT_THAT(rv, IsOk());
245 EXPECT_EQ("192.168.1.5:80", FirstAddress(address_list)); 250 EXPECT_EQ("192.168.1.5:80", FirstAddress(address_list));
246 } 251 }
247 252
248 } // namespace 253 } // namespace
249 254
250 } // namespace net 255 } // namespace net
OLDNEW
« no previous file with comments | « net/dns/host_resolver_mojo_unittest.cc ('k') | net/dns/mojo_host_resolver_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698