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

Side by Side Diff: net/socket/socks_client_socket_pool_unittest.cc

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
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/socket/socks_client_socket_pool.h" 5 #include "net/socket/socks_client_socket_pool.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/time/time.h" 9 #include "base/time/time.h"
10 #include "net/base/load_timing_info.h" 10 #include "net/base/load_timing_info.h"
(...skipping 23 matching lines...) Expand all
34 // None of these tests use a NetLog. 34 // None of these tests use a NetLog.
35 EXPECT_EQ(NetLog::Source::kInvalidId, load_timing_info.socket_log_id); 35 EXPECT_EQ(NetLog::Source::kInvalidId, load_timing_info.socket_log_id);
36 36
37 EXPECT_FALSE(load_timing_info.socket_reused); 37 EXPECT_FALSE(load_timing_info.socket_reused);
38 38
39 ExpectConnectTimingHasTimes(load_timing_info.connect_timing, 39 ExpectConnectTimingHasTimes(load_timing_info.connect_timing,
40 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY); 40 CONNECT_TIMING_HAS_CONNECT_TIMES_ONLY);
41 ExpectLoadTimingHasOnlyConnectionTimes(load_timing_info); 41 ExpectLoadTimingHasOnlyConnectionTimes(load_timing_info);
42 } 42 }
43 43
44
45 scoped_refptr<TransportSocketParams> CreateProxyHostParams() { 44 scoped_refptr<TransportSocketParams> CreateProxyHostParams() {
46 return new TransportSocketParams( 45 return new TransportSocketParams(
47 HostPortPair("proxy", 80), false, false, 46 HostPortPair("proxy", 80), false, false, OnHostResolutionCallback());
48 OnHostResolutionCallback());
49 } 47 }
50 48
51 scoped_refptr<SOCKSSocketParams> CreateSOCKSv4Params() { 49 scoped_refptr<SOCKSSocketParams> CreateSOCKSv4Params() {
52 return new SOCKSSocketParams( 50 return new SOCKSSocketParams(
53 CreateProxyHostParams(), false /* socks_v5 */, 51 CreateProxyHostParams(), false /* socks_v5 */, HostPortPair("host", 80));
54 HostPortPair("host", 80));
55 } 52 }
56 53
57 scoped_refptr<SOCKSSocketParams> CreateSOCKSv5Params() { 54 scoped_refptr<SOCKSSocketParams> CreateSOCKSv5Params() {
58 return new SOCKSSocketParams( 55 return new SOCKSSocketParams(
59 CreateProxyHostParams(), true /* socks_v5 */, 56 CreateProxyHostParams(), true /* socks_v5 */, HostPortPair("host", 80));
60 HostPortPair("host", 80));
61 } 57 }
62 58
63 class SOCKSClientSocketPoolTest : public testing::Test { 59 class SOCKSClientSocketPoolTest : public testing::Test {
64 protected: 60 protected:
65 class SOCKS5MockData { 61 class SOCKS5MockData {
66 public: 62 public:
67 explicit SOCKS5MockData(IoMode mode) { 63 explicit SOCKS5MockData(IoMode mode) {
68 writes_.reset(new MockWrite[3]); 64 writes_.reset(new MockWrite[3]);
69 writes_[0] = MockWrite(mode, kSOCKS5GreetRequest, 65 writes_[0] =
70 kSOCKS5GreetRequestLength); 66 MockWrite(mode, kSOCKS5GreetRequest, kSOCKS5GreetRequestLength);
71 writes_[1] = MockWrite(mode, kSOCKS5OkRequest, kSOCKS5OkRequestLength); 67 writes_[1] = MockWrite(mode, kSOCKS5OkRequest, kSOCKS5OkRequestLength);
72 writes_[2] = MockWrite(mode, 0); 68 writes_[2] = MockWrite(mode, 0);
73 69
74 reads_.reset(new MockRead[3]); 70 reads_.reset(new MockRead[3]);
75 reads_[0] = MockRead(mode, kSOCKS5GreetResponse, 71 reads_[0] =
76 kSOCKS5GreetResponseLength); 72 MockRead(mode, kSOCKS5GreetResponse, kSOCKS5GreetResponseLength);
77 reads_[1] = MockRead(mode, kSOCKS5OkResponse, kSOCKS5OkResponseLength); 73 reads_[1] = MockRead(mode, kSOCKS5OkResponse, kSOCKS5OkResponseLength);
78 reads_[2] = MockRead(mode, 0); 74 reads_[2] = MockRead(mode, 0);
79 75
80 data_.reset(new StaticSocketDataProvider(reads_.get(), 3, 76 data_.reset(
81 writes_.get(), 3)); 77 new StaticSocketDataProvider(reads_.get(), 3, writes_.get(), 3));
82 } 78 }
83 79
84 SocketDataProvider* data_provider() { return data_.get(); } 80 SocketDataProvider* data_provider() { return data_.get(); }
85 81
86 private: 82 private:
87 scoped_ptr<StaticSocketDataProvider> data_; 83 scoped_ptr<StaticSocketDataProvider> data_;
88 scoped_ptr<MockWrite[]> writes_; 84 scoped_ptr<MockWrite[]> writes_;
89 scoped_ptr<MockRead[]> reads_; 85 scoped_ptr<MockRead[]> reads_;
90 }; 86 };
91 87
92 SOCKSClientSocketPoolTest() 88 SOCKSClientSocketPoolTest()
93 : transport_histograms_("MockTCP"), 89 : transport_histograms_("MockTCP"),
94 transport_socket_pool_( 90 transport_socket_pool_(kMaxSockets,
95 kMaxSockets, kMaxSocketsPerGroup, 91 kMaxSocketsPerGroup,
96 &transport_histograms_, 92 &transport_histograms_,
97 &transport_client_socket_factory_), 93 &transport_client_socket_factory_),
98 socks_histograms_("SOCKSUnitTest"), 94 socks_histograms_("SOCKSUnitTest"),
99 pool_(kMaxSockets, kMaxSocketsPerGroup, 95 pool_(kMaxSockets,
96 kMaxSocketsPerGroup,
100 &socks_histograms_, 97 &socks_histograms_,
101 &host_resolver_, 98 &host_resolver_,
102 &transport_socket_pool_, 99 &transport_socket_pool_,
103 NULL) { 100 NULL) {}
104 }
105 101
106 virtual ~SOCKSClientSocketPoolTest() {} 102 virtual ~SOCKSClientSocketPoolTest() {}
107 103
108 int StartRequestV5(const std::string& group_name, RequestPriority priority) { 104 int StartRequestV5(const std::string& group_name, RequestPriority priority) {
109 return test_base_.StartRequestUsingPool( 105 return test_base_.StartRequestUsingPool(
110 &pool_, group_name, priority, CreateSOCKSv5Params()); 106 &pool_, group_name, priority, CreateSOCKSv5Params());
111 } 107 }
112 108
113 int GetOrderOfRequest(size_t index) const { 109 int GetOrderOfRequest(size_t index) const {
114 return test_base_.GetOrderOfRequest(index); 110 return test_base_.GetOrderOfRequest(index);
(...skipping 10 matching lines...) Expand all
125 SOCKSClientSocketPool pool_; 121 SOCKSClientSocketPool pool_;
126 ClientSocketPoolTest test_base_; 122 ClientSocketPoolTest test_base_;
127 }; 123 };
128 124
129 TEST_F(SOCKSClientSocketPoolTest, Simple) { 125 TEST_F(SOCKSClientSocketPoolTest, Simple) {
130 SOCKS5MockData data(SYNCHRONOUS); 126 SOCKS5MockData data(SYNCHRONOUS);
131 data.data_provider()->set_connect_data(MockConnect(SYNCHRONOUS, OK)); 127 data.data_provider()->set_connect_data(MockConnect(SYNCHRONOUS, OK));
132 transport_client_socket_factory_.AddSocketDataProvider(data.data_provider()); 128 transport_client_socket_factory_.AddSocketDataProvider(data.data_provider());
133 129
134 ClientSocketHandle handle; 130 ClientSocketHandle handle;
135 int rv = handle.Init("a", CreateSOCKSv5Params(), LOW, CompletionCallback(), 131 int rv = handle.Init("a",
136 &pool_, BoundNetLog()); 132 CreateSOCKSv5Params(),
133 LOW,
134 CompletionCallback(),
135 &pool_,
136 BoundNetLog());
137 EXPECT_EQ(OK, rv); 137 EXPECT_EQ(OK, rv);
138 EXPECT_TRUE(handle.is_initialized()); 138 EXPECT_TRUE(handle.is_initialized());
139 EXPECT_TRUE(handle.socket()); 139 EXPECT_TRUE(handle.socket());
140 TestLoadTimingInfo(handle); 140 TestLoadTimingInfo(handle);
141 } 141 }
142 142
143 // Make sure that SOCKSConnectJob passes on its priority to its 143 // Make sure that SOCKSConnectJob passes on its priority to its
144 // socket request on Init. 144 // socket request on Init.
145 TEST_F(SOCKSClientSocketPoolTest, SetSocketRequestPriorityOnInit) { 145 TEST_F(SOCKSClientSocketPoolTest, SetSocketRequestPriorityOnInit) {
146 for (int i = MINIMUM_PRIORITY; i <= MAXIMUM_PRIORITY; ++i) { 146 for (int i = MINIMUM_PRIORITY; i <= MAXIMUM_PRIORITY; ++i) {
147 RequestPriority priority = static_cast<RequestPriority>(i); 147 RequestPriority priority = static_cast<RequestPriority>(i);
148 SOCKS5MockData data(SYNCHRONOUS); 148 SOCKS5MockData data(SYNCHRONOUS);
149 data.data_provider()->set_connect_data(MockConnect(SYNCHRONOUS, OK)); 149 data.data_provider()->set_connect_data(MockConnect(SYNCHRONOUS, OK));
150 transport_client_socket_factory_.AddSocketDataProvider( 150 transport_client_socket_factory_.AddSocketDataProvider(
151 data.data_provider()); 151 data.data_provider());
152 152
153 ClientSocketHandle handle; 153 ClientSocketHandle handle;
154 EXPECT_EQ(OK, 154 EXPECT_EQ(OK,
155 handle.Init("a", CreateSOCKSv5Params(), priority, 155 handle.Init("a",
156 CompletionCallback(), &pool_, BoundNetLog())); 156 CreateSOCKSv5Params(),
157 priority,
158 CompletionCallback(),
159 &pool_,
160 BoundNetLog()));
157 EXPECT_EQ(priority, transport_socket_pool_.last_request_priority()); 161 EXPECT_EQ(priority, transport_socket_pool_.last_request_priority());
158 handle.socket()->Disconnect(); 162 handle.socket()->Disconnect();
159 } 163 }
160 } 164 }
161 165
162 // Make sure that SOCKSConnectJob passes on its priority to its 166 // Make sure that SOCKSConnectJob passes on its priority to its
163 // HostResolver request (for non-SOCKS5) on Init. 167 // HostResolver request (for non-SOCKS5) on Init.
164 TEST_F(SOCKSClientSocketPoolTest, SetResolvePriorityOnInit) { 168 TEST_F(SOCKSClientSocketPoolTest, SetResolvePriorityOnInit) {
165 for (int i = MINIMUM_PRIORITY; i <= MAXIMUM_PRIORITY; ++i) { 169 for (int i = MINIMUM_PRIORITY; i <= MAXIMUM_PRIORITY; ++i) {
166 RequestPriority priority = static_cast<RequestPriority>(i); 170 RequestPriority priority = static_cast<RequestPriority>(i);
167 SOCKS5MockData data(SYNCHRONOUS); 171 SOCKS5MockData data(SYNCHRONOUS);
168 data.data_provider()->set_connect_data(MockConnect(SYNCHRONOUS, OK)); 172 data.data_provider()->set_connect_data(MockConnect(SYNCHRONOUS, OK));
169 transport_client_socket_factory_.AddSocketDataProvider( 173 transport_client_socket_factory_.AddSocketDataProvider(
170 data.data_provider()); 174 data.data_provider());
171 175
172 ClientSocketHandle handle; 176 ClientSocketHandle handle;
173 EXPECT_EQ(ERR_IO_PENDING, 177 EXPECT_EQ(ERR_IO_PENDING,
174 handle.Init("a", CreateSOCKSv4Params(), priority, 178 handle.Init("a",
175 CompletionCallback(), &pool_, BoundNetLog())); 179 CreateSOCKSv4Params(),
180 priority,
181 CompletionCallback(),
182 &pool_,
183 BoundNetLog()));
176 EXPECT_EQ(priority, transport_socket_pool_.last_request_priority()); 184 EXPECT_EQ(priority, transport_socket_pool_.last_request_priority());
177 EXPECT_EQ(priority, host_resolver_.last_request_priority()); 185 EXPECT_EQ(priority, host_resolver_.last_request_priority());
178 EXPECT_TRUE(handle.socket() == NULL); 186 EXPECT_TRUE(handle.socket() == NULL);
179 } 187 }
180 } 188 }
181 189
182 TEST_F(SOCKSClientSocketPoolTest, Async) { 190 TEST_F(SOCKSClientSocketPoolTest, Async) {
183 SOCKS5MockData data(ASYNC); 191 SOCKS5MockData data(ASYNC);
184 transport_client_socket_factory_.AddSocketDataProvider(data.data_provider()); 192 transport_client_socket_factory_.AddSocketDataProvider(data.data_provider());
185 193
186 TestCompletionCallback callback; 194 TestCompletionCallback callback;
187 ClientSocketHandle handle; 195 ClientSocketHandle handle;
188 int rv = handle.Init("a", CreateSOCKSv5Params(), LOW, callback.callback(), 196 int rv = handle.Init("a",
189 &pool_, BoundNetLog()); 197 CreateSOCKSv5Params(),
198 LOW,
199 callback.callback(),
200 &pool_,
201 BoundNetLog());
190 EXPECT_EQ(ERR_IO_PENDING, rv); 202 EXPECT_EQ(ERR_IO_PENDING, rv);
191 EXPECT_FALSE(handle.is_initialized()); 203 EXPECT_FALSE(handle.is_initialized());
192 EXPECT_FALSE(handle.socket()); 204 EXPECT_FALSE(handle.socket());
193 205
194 EXPECT_EQ(OK, callback.WaitForResult()); 206 EXPECT_EQ(OK, callback.WaitForResult());
195 EXPECT_TRUE(handle.is_initialized()); 207 EXPECT_TRUE(handle.is_initialized());
196 EXPECT_TRUE(handle.socket()); 208 EXPECT_TRUE(handle.socket());
197 TestLoadTimingInfo(handle); 209 TestLoadTimingInfo(handle);
198 } 210 }
199 211
200 TEST_F(SOCKSClientSocketPoolTest, TransportConnectError) { 212 TEST_F(SOCKSClientSocketPoolTest, TransportConnectError) {
201 StaticSocketDataProvider socket_data; 213 StaticSocketDataProvider socket_data;
202 socket_data.set_connect_data(MockConnect(SYNCHRONOUS, 214 socket_data.set_connect_data(
203 ERR_CONNECTION_REFUSED)); 215 MockConnect(SYNCHRONOUS, ERR_CONNECTION_REFUSED));
204 transport_client_socket_factory_.AddSocketDataProvider(&socket_data); 216 transport_client_socket_factory_.AddSocketDataProvider(&socket_data);
205 217
206 ClientSocketHandle handle; 218 ClientSocketHandle handle;
207 int rv = handle.Init("a", CreateSOCKSv5Params(), LOW, CompletionCallback(), 219 int rv = handle.Init("a",
208 &pool_, BoundNetLog()); 220 CreateSOCKSv5Params(),
221 LOW,
222 CompletionCallback(),
223 &pool_,
224 BoundNetLog());
209 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, rv); 225 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, rv);
210 EXPECT_FALSE(handle.is_initialized()); 226 EXPECT_FALSE(handle.is_initialized());
211 EXPECT_FALSE(handle.socket()); 227 EXPECT_FALSE(handle.socket());
212 } 228 }
213 229
214 TEST_F(SOCKSClientSocketPoolTest, AsyncTransportConnectError) { 230 TEST_F(SOCKSClientSocketPoolTest, AsyncTransportConnectError) {
215 StaticSocketDataProvider socket_data; 231 StaticSocketDataProvider socket_data;
216 socket_data.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED)); 232 socket_data.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED));
217 transport_client_socket_factory_.AddSocketDataProvider(&socket_data); 233 transport_client_socket_factory_.AddSocketDataProvider(&socket_data);
218 234
219 TestCompletionCallback callback; 235 TestCompletionCallback callback;
220 ClientSocketHandle handle; 236 ClientSocketHandle handle;
221 int rv = handle.Init("a", CreateSOCKSv5Params(), LOW, callback.callback(), 237 int rv = handle.Init("a",
222 &pool_, BoundNetLog()); 238 CreateSOCKSv5Params(),
239 LOW,
240 callback.callback(),
241 &pool_,
242 BoundNetLog());
223 EXPECT_EQ(ERR_IO_PENDING, rv); 243 EXPECT_EQ(ERR_IO_PENDING, rv);
224 EXPECT_FALSE(handle.is_initialized()); 244 EXPECT_FALSE(handle.is_initialized());
225 EXPECT_FALSE(handle.socket()); 245 EXPECT_FALSE(handle.socket());
226 246
227 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, callback.WaitForResult()); 247 EXPECT_EQ(ERR_PROXY_CONNECTION_FAILED, callback.WaitForResult());
228 EXPECT_FALSE(handle.is_initialized()); 248 EXPECT_FALSE(handle.is_initialized());
229 EXPECT_FALSE(handle.socket()); 249 EXPECT_FALSE(handle.socket());
230 } 250 }
231 251
232 TEST_F(SOCKSClientSocketPoolTest, SOCKSConnectError) { 252 TEST_F(SOCKSClientSocketPoolTest, SOCKSConnectError) {
233 MockRead failed_read[] = { 253 MockRead failed_read[] = {
234 MockRead(SYNCHRONOUS, 0), 254 MockRead(SYNCHRONOUS, 0),
235 }; 255 };
236 StaticSocketDataProvider socket_data( 256 StaticSocketDataProvider socket_data(
237 failed_read, arraysize(failed_read), NULL, 0); 257 failed_read, arraysize(failed_read), NULL, 0);
238 socket_data.set_connect_data(MockConnect(SYNCHRONOUS, OK)); 258 socket_data.set_connect_data(MockConnect(SYNCHRONOUS, OK));
239 transport_client_socket_factory_.AddSocketDataProvider(&socket_data); 259 transport_client_socket_factory_.AddSocketDataProvider(&socket_data);
240 260
241 ClientSocketHandle handle; 261 ClientSocketHandle handle;
242 EXPECT_EQ(0, transport_socket_pool_.release_count()); 262 EXPECT_EQ(0, transport_socket_pool_.release_count());
243 int rv = handle.Init("a", CreateSOCKSv5Params(), LOW, CompletionCallback(), 263 int rv = handle.Init("a",
244 &pool_, BoundNetLog()); 264 CreateSOCKSv5Params(),
265 LOW,
266 CompletionCallback(),
267 &pool_,
268 BoundNetLog());
245 EXPECT_EQ(ERR_SOCKS_CONNECTION_FAILED, rv); 269 EXPECT_EQ(ERR_SOCKS_CONNECTION_FAILED, rv);
246 EXPECT_FALSE(handle.is_initialized()); 270 EXPECT_FALSE(handle.is_initialized());
247 EXPECT_FALSE(handle.socket()); 271 EXPECT_FALSE(handle.socket());
248 EXPECT_EQ(1, transport_socket_pool_.release_count()); 272 EXPECT_EQ(1, transport_socket_pool_.release_count());
249 } 273 }
250 274
251 TEST_F(SOCKSClientSocketPoolTest, AsyncSOCKSConnectError) { 275 TEST_F(SOCKSClientSocketPoolTest, AsyncSOCKSConnectError) {
252 MockRead failed_read[] = { 276 MockRead failed_read[] = {
253 MockRead(ASYNC, 0), 277 MockRead(ASYNC, 0),
254 }; 278 };
255 StaticSocketDataProvider socket_data( 279 StaticSocketDataProvider socket_data(
256 failed_read, arraysize(failed_read), NULL, 0); 280 failed_read, arraysize(failed_read), NULL, 0);
257 socket_data.set_connect_data(MockConnect(SYNCHRONOUS, OK)); 281 socket_data.set_connect_data(MockConnect(SYNCHRONOUS, OK));
258 transport_client_socket_factory_.AddSocketDataProvider(&socket_data); 282 transport_client_socket_factory_.AddSocketDataProvider(&socket_data);
259 283
260 TestCompletionCallback callback; 284 TestCompletionCallback callback;
261 ClientSocketHandle handle; 285 ClientSocketHandle handle;
262 EXPECT_EQ(0, transport_socket_pool_.release_count()); 286 EXPECT_EQ(0, transport_socket_pool_.release_count());
263 int rv = handle.Init("a", CreateSOCKSv5Params(), LOW, callback.callback(), 287 int rv = handle.Init("a",
264 &pool_, BoundNetLog()); 288 CreateSOCKSv5Params(),
289 LOW,
290 callback.callback(),
291 &pool_,
292 BoundNetLog());
265 EXPECT_EQ(ERR_IO_PENDING, rv); 293 EXPECT_EQ(ERR_IO_PENDING, rv);
266 EXPECT_FALSE(handle.is_initialized()); 294 EXPECT_FALSE(handle.is_initialized());
267 EXPECT_FALSE(handle.socket()); 295 EXPECT_FALSE(handle.socket());
268 296
269 EXPECT_EQ(ERR_SOCKS_CONNECTION_FAILED, callback.WaitForResult()); 297 EXPECT_EQ(ERR_SOCKS_CONNECTION_FAILED, callback.WaitForResult());
270 EXPECT_FALSE(handle.is_initialized()); 298 EXPECT_FALSE(handle.is_initialized());
271 EXPECT_FALSE(handle.socket()); 299 EXPECT_FALSE(handle.socket());
272 EXPECT_EQ(1, transport_socket_pool_.release_count()); 300 EXPECT_EQ(1, transport_socket_pool_.release_count());
273 } 301 }
274 302
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 367
340 (*requests())[0]->handle()->Reset(); 368 (*requests())[0]->handle()->Reset();
341 (*requests())[1]->handle()->Reset(); 369 (*requests())[1]->handle()->Reset();
342 } 370 }
343 371
344 // It would be nice to also test the timeouts in SOCKSClientSocketPool. 372 // It would be nice to also test the timeouts in SOCKSClientSocketPool.
345 373
346 } // namespace 374 } // namespace
347 375
348 } // namespace net 376 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698