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

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

Issue 8549004: base::Bind: Convert HostResolver::Resolve. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 9 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/base/mock_host_resolver.h » ('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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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"
(...skipping 15 matching lines...) Expand all
26 26
27 // Create a remapped resolver that uses |resolver_impl|. 27 // Create a remapped resolver that uses |resolver_impl|.
28 scoped_ptr<MappedHostResolver> resolver( 28 scoped_ptr<MappedHostResolver> resolver(
29 new MappedHostResolver(resolver_impl)); 29 new MappedHostResolver(resolver_impl));
30 30
31 int rv; 31 int rv;
32 AddressList address_list; 32 AddressList address_list;
33 33
34 // Try resolving "www.google.com:80". There are no mappings yet, so this 34 // Try resolving "www.google.com:80". There are no mappings yet, so this
35 // hits |resolver_impl| and fails. 35 // hits |resolver_impl| and fails.
36 TestOldCompletionCallback callback; 36 TestCompletionCallback callback;
37 rv = resolver->Resolve(HostResolver::RequestInfo( 37 rv = resolver->Resolve(HostResolver::RequestInfo(
38 HostPortPair("www.google.com", 80)), 38 HostPortPair("www.google.com", 80)),
39 &address_list, &callback, NULL, BoundNetLog()); 39 &address_list, callback.callback(), NULL,
40 BoundNetLog());
40 EXPECT_EQ(ERR_IO_PENDING, rv); 41 EXPECT_EQ(ERR_IO_PENDING, rv);
41 rv = callback.WaitForResult(); 42 rv = callback.WaitForResult();
42 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, rv); 43 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, rv);
43 44
44 // Remap *.google.com to baz.com. 45 // Remap *.google.com to baz.com.
45 EXPECT_TRUE(resolver->AddRuleFromString("map *.google.com baz.com")); 46 EXPECT_TRUE(resolver->AddRuleFromString("map *.google.com baz.com"));
46 47
47 // Try resolving "www.google.com:80". Should be remapped to "baz.com:80". 48 // Try resolving "www.google.com:80". Should be remapped to "baz.com:80".
48 rv = resolver->Resolve(HostResolver::RequestInfo( 49 rv = resolver->Resolve(HostResolver::RequestInfo(
49 HostPortPair("www.google.com", 80)), 50 HostPortPair("www.google.com", 80)),
50 &address_list, &callback, NULL, BoundNetLog()); 51 &address_list, callback.callback(), NULL,
52 BoundNetLog());
51 EXPECT_EQ(ERR_IO_PENDING, rv); 53 EXPECT_EQ(ERR_IO_PENDING, rv);
52 rv = callback.WaitForResult(); 54 rv = callback.WaitForResult();
53 EXPECT_EQ(OK, rv); 55 EXPECT_EQ(OK, rv);
54 EXPECT_EQ("192.168.1.5", NetAddressToString(address_list.head())); 56 EXPECT_EQ("192.168.1.5", NetAddressToString(address_list.head()));
55 EXPECT_EQ(80, address_list.GetPort()); 57 EXPECT_EQ(80, address_list.GetPort());
56 58
57 // Try resolving "foo.com:77". This will NOT be remapped, so result 59 // Try resolving "foo.com:77". This will NOT be remapped, so result
58 // is "foo.com:77". 60 // is "foo.com:77".
59 rv = resolver->Resolve(HostResolver::RequestInfo(HostPortPair("foo.com", 77)), 61 rv = resolver->Resolve(HostResolver::RequestInfo(HostPortPair("foo.com", 77)),
60 &address_list, &callback, NULL, BoundNetLog()); 62 &address_list, callback.callback(), NULL,
63 BoundNetLog());
61 EXPECT_EQ(ERR_IO_PENDING, rv); 64 EXPECT_EQ(ERR_IO_PENDING, rv);
62 rv = callback.WaitForResult(); 65 rv = callback.WaitForResult();
63 EXPECT_EQ(OK, rv); 66 EXPECT_EQ(OK, rv);
64 EXPECT_EQ("192.168.1.8", NetAddressToString(address_list.head())); 67 EXPECT_EQ("192.168.1.8", NetAddressToString(address_list.head()));
65 EXPECT_EQ(77, address_list.GetPort()); 68 EXPECT_EQ(77, address_list.GetPort());
66 69
67 // Remap "*.org" to "proxy:99". 70 // Remap "*.org" to "proxy:99".
68 EXPECT_TRUE(resolver->AddRuleFromString("Map *.org proxy:99")); 71 EXPECT_TRUE(resolver->AddRuleFromString("Map *.org proxy:99"));
69 72
70 // Try resolving "chromium.org:61". Should be remapped to "proxy:99". 73 // Try resolving "chromium.org:61". Should be remapped to "proxy:99".
71 rv = resolver->Resolve(HostResolver::RequestInfo 74 rv = resolver->Resolve(HostResolver::RequestInfo
72 (HostPortPair("chromium.org", 61)), 75 (HostPortPair("chromium.org", 61)),
73 &address_list, &callback, NULL, BoundNetLog()); 76 &address_list, callback.callback(), NULL,
77 BoundNetLog());
74 EXPECT_EQ(ERR_IO_PENDING, rv); 78 EXPECT_EQ(ERR_IO_PENDING, rv);
75 rv = callback.WaitForResult(); 79 rv = callback.WaitForResult();
76 EXPECT_EQ(OK, rv); 80 EXPECT_EQ(OK, rv);
77 EXPECT_EQ("192.168.1.11", NetAddressToString(address_list.head())); 81 EXPECT_EQ("192.168.1.11", NetAddressToString(address_list.head()));
78 EXPECT_EQ(99, address_list.GetPort()); 82 EXPECT_EQ(99, address_list.GetPort());
79 } 83 }
80 84
81 // Tests that exclusions are respected. 85 // Tests that exclusions are respected.
82 TEST(MappedHostResolverTest, Exclusion) { 86 TEST(MappedHostResolverTest, Exclusion) {
83 // Create a mock host resolver, with specific hostname to IP mappings. 87 // Create a mock host resolver, with specific hostname to IP mappings.
84 MockHostResolver* resolver_impl(new MockHostResolver()); 88 MockHostResolver* resolver_impl(new MockHostResolver());
85 resolver_impl->rules()->AddRule("baz", "192.168.1.5"); 89 resolver_impl->rules()->AddRule("baz", "192.168.1.5");
86 resolver_impl->rules()->AddRule("www.google.com", "192.168.1.3"); 90 resolver_impl->rules()->AddRule("www.google.com", "192.168.1.3");
87 91
88 // Create a remapped resolver that uses |resolver_impl|. 92 // Create a remapped resolver that uses |resolver_impl|.
89 scoped_ptr<MappedHostResolver> resolver( 93 scoped_ptr<MappedHostResolver> resolver(
90 new MappedHostResolver(resolver_impl)); 94 new MappedHostResolver(resolver_impl));
91 95
92 int rv; 96 int rv;
93 AddressList address_list; 97 AddressList address_list;
94 TestOldCompletionCallback callback; 98 TestCompletionCallback callback;
95 99
96 // Remap "*.com" to "baz". 100 // Remap "*.com" to "baz".
97 EXPECT_TRUE(resolver->AddRuleFromString("map *.com baz")); 101 EXPECT_TRUE(resolver->AddRuleFromString("map *.com baz"));
98 102
99 // Add an exclusion for "*.google.com". 103 // Add an exclusion for "*.google.com".
100 EXPECT_TRUE(resolver->AddRuleFromString("EXCLUDE *.google.com")); 104 EXPECT_TRUE(resolver->AddRuleFromString("EXCLUDE *.google.com"));
101 105
102 // Try resolving "www.google.com". Should not be remapped due to exclusion). 106 // Try resolving "www.google.com". Should not be remapped due to exclusion).
103 rv = resolver->Resolve(HostResolver::RequestInfo( 107 rv = resolver->Resolve(HostResolver::RequestInfo(
104 HostPortPair("www.google.com", 80)), 108 HostPortPair("www.google.com", 80)),
105 &address_list, &callback, NULL, BoundNetLog()); 109 &address_list, callback.callback(), NULL,
110 BoundNetLog());
106 EXPECT_EQ(ERR_IO_PENDING, rv); 111 EXPECT_EQ(ERR_IO_PENDING, rv);
107 rv = callback.WaitForResult(); 112 rv = callback.WaitForResult();
108 EXPECT_EQ(OK, rv); 113 EXPECT_EQ(OK, rv);
109 EXPECT_EQ("192.168.1.3", NetAddressToString(address_list.head())); 114 EXPECT_EQ("192.168.1.3", NetAddressToString(address_list.head()));
110 EXPECT_EQ(80, address_list.GetPort()); 115 EXPECT_EQ(80, address_list.GetPort());
111 116
112 // Try resolving "chrome.com:80". Should be remapped to "baz:80". 117 // Try resolving "chrome.com:80". Should be remapped to "baz:80".
113 rv = resolver->Resolve(HostResolver::RequestInfo( 118 rv = resolver->Resolve(HostResolver::RequestInfo(
114 HostPortPair("chrome.com", 80)), 119 HostPortPair("chrome.com", 80)),
115 &address_list, &callback, NULL, BoundNetLog()); 120 &address_list, callback.callback(), NULL,
121 BoundNetLog());
116 EXPECT_EQ(ERR_IO_PENDING, rv); 122 EXPECT_EQ(ERR_IO_PENDING, rv);
117 rv = callback.WaitForResult(); 123 rv = callback.WaitForResult();
118 EXPECT_EQ(OK, rv); 124 EXPECT_EQ(OK, rv);
119 EXPECT_EQ("192.168.1.5", NetAddressToString(address_list.head())); 125 EXPECT_EQ("192.168.1.5", NetAddressToString(address_list.head()));
120 EXPECT_EQ(80, address_list.GetPort()); 126 EXPECT_EQ(80, address_list.GetPort());
121 } 127 }
122 128
123 TEST(MappedHostResolverTest, SetRulesFromString) { 129 TEST(MappedHostResolverTest, SetRulesFromString) {
124 // Create a mock host resolver, with specific hostname to IP mappings. 130 // Create a mock host resolver, with specific hostname to IP mappings.
125 MockHostResolver* resolver_impl(new MockHostResolver()); 131 MockHostResolver* resolver_impl(new MockHostResolver());
126 resolver_impl->rules()->AddRule("baz", "192.168.1.7"); 132 resolver_impl->rules()->AddRule("baz", "192.168.1.7");
127 resolver_impl->rules()->AddRule("bar", "192.168.1.9"); 133 resolver_impl->rules()->AddRule("bar", "192.168.1.9");
128 134
129 // Create a remapped resolver that uses |resolver_impl|. 135 // Create a remapped resolver that uses |resolver_impl|.
130 scoped_ptr<MappedHostResolver> resolver( 136 scoped_ptr<MappedHostResolver> resolver(
131 new MappedHostResolver(resolver_impl)); 137 new MappedHostResolver(resolver_impl));
132 138
133 int rv; 139 int rv;
134 AddressList address_list; 140 AddressList address_list;
135 TestOldCompletionCallback callback; 141 TestCompletionCallback callback;
136 142
137 // Remap "*.com" to "baz", and *.net to "bar:60". 143 // Remap "*.com" to "baz", and *.net to "bar:60".
138 resolver->SetRulesFromString("map *.com baz , map *.net bar:60"); 144 resolver->SetRulesFromString("map *.com baz , map *.net bar:60");
139 145
140 // Try resolving "www.google.com". Should be remapped to "baz". 146 // Try resolving "www.google.com". Should be remapped to "baz".
141 rv = resolver->Resolve(HostResolver::RequestInfo( 147 rv = resolver->Resolve(HostResolver::RequestInfo(
142 HostPortPair("www.google.com", 80)), 148 HostPortPair("www.google.com", 80)),
143 &address_list, &callback, NULL, BoundNetLog()); 149 &address_list, callback.callback(), NULL,
150 BoundNetLog());
144 EXPECT_EQ(ERR_IO_PENDING, rv); 151 EXPECT_EQ(ERR_IO_PENDING, rv);
145 rv = callback.WaitForResult(); 152 rv = callback.WaitForResult();
146 EXPECT_EQ(OK, rv); 153 EXPECT_EQ(OK, rv);
147 EXPECT_EQ("192.168.1.7", NetAddressToString(address_list.head())); 154 EXPECT_EQ("192.168.1.7", NetAddressToString(address_list.head()));
148 EXPECT_EQ(80, address_list.GetPort()); 155 EXPECT_EQ(80, address_list.GetPort());
149 156
150 // Try resolving "chrome.net:80". Should be remapped to "bar:60". 157 // Try resolving "chrome.net:80". Should be remapped to "bar:60".
151 rv = resolver->Resolve(HostResolver::RequestInfo( 158 rv = resolver->Resolve(HostResolver::RequestInfo(
152 HostPortPair("chrome.net", 80)), 159 HostPortPair("chrome.net", 80)),
153 &address_list, &callback, NULL, BoundNetLog()); 160 &address_list, callback.callback(), NULL,
161 BoundNetLog());
154 EXPECT_EQ(ERR_IO_PENDING, rv); 162 EXPECT_EQ(ERR_IO_PENDING, rv);
155 rv = callback.WaitForResult(); 163 rv = callback.WaitForResult();
156 EXPECT_EQ(OK, rv); 164 EXPECT_EQ(OK, rv);
157 EXPECT_EQ("192.168.1.9", NetAddressToString(address_list.head())); 165 EXPECT_EQ("192.168.1.9", NetAddressToString(address_list.head()));
158 EXPECT_EQ(60, address_list.GetPort()); 166 EXPECT_EQ(60, address_list.GetPort());
159 } 167 }
160 168
161 // Parsing bad rules should silently discard the rule (and never crash). 169 // Parsing bad rules should silently discard the rule (and never crash).
162 TEST(MappedHostResolverTest, ParseInvalidRules) { 170 TEST(MappedHostResolverTest, ParseInvalidRules) {
163 scoped_ptr<MappedHostResolver> resolver(new MappedHostResolver(NULL)); 171 scoped_ptr<MappedHostResolver> resolver(new MappedHostResolver(NULL));
164 172
165 EXPECT_FALSE(resolver->AddRuleFromString("xyz")); 173 EXPECT_FALSE(resolver->AddRuleFromString("xyz"));
166 EXPECT_FALSE(resolver->AddRuleFromString("")); 174 EXPECT_FALSE(resolver->AddRuleFromString(""));
167 EXPECT_FALSE(resolver->AddRuleFromString(" ")); 175 EXPECT_FALSE(resolver->AddRuleFromString(" "));
168 EXPECT_FALSE(resolver->AddRuleFromString("EXCLUDE")); 176 EXPECT_FALSE(resolver->AddRuleFromString("EXCLUDE"));
169 EXPECT_FALSE(resolver->AddRuleFromString("EXCLUDE foo bar")); 177 EXPECT_FALSE(resolver->AddRuleFromString("EXCLUDE foo bar"));
170 EXPECT_FALSE(resolver->AddRuleFromString("INCLUDE")); 178 EXPECT_FALSE(resolver->AddRuleFromString("INCLUDE"));
171 EXPECT_FALSE(resolver->AddRuleFromString("INCLUDE x")); 179 EXPECT_FALSE(resolver->AddRuleFromString("INCLUDE x"));
172 EXPECT_FALSE(resolver->AddRuleFromString("INCLUDE x :10")); 180 EXPECT_FALSE(resolver->AddRuleFromString("INCLUDE x :10"));
173 } 181 }
174 182
175 } // namespace 183 } // namespace
176 184
177 } // namespace net 185 } // namespace net
OLDNEW
« no previous file with comments | « net/base/mapped_host_resolver.cc ('k') | net/base/mock_host_resolver.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698