OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 MockNetworkChangeNotifier socks_notifier_; | 192 MockNetworkChangeNotifier socks_notifier_; |
193 scoped_refptr<SOCKSClientSocketPool> pool_; | 193 scoped_refptr<SOCKSClientSocketPool> pool_; |
194 }; | 194 }; |
195 | 195 |
196 TEST_F(SOCKSClientSocketPoolTest, Simple) { | 196 TEST_F(SOCKSClientSocketPoolTest, Simple) { |
197 SOCKS5MockData data(false); | 197 SOCKS5MockData data(false); |
198 data.data_provider()->set_connect_data(MockConnect(false, 0)); | 198 data.data_provider()->set_connect_data(MockConnect(false, 0)); |
199 tcp_client_socket_factory_.AddSocketDataProvider(data.data_provider()); | 199 tcp_client_socket_factory_.AddSocketDataProvider(data.data_provider()); |
200 | 200 |
201 ClientSocketHandle handle; | 201 ClientSocketHandle handle; |
202 int rv = handle.Init("a", ignored_socket_params_, LOW, NULL, pool_, NULL); | 202 int rv = handle.Init("a", ignored_socket_params_, LOW, NULL, pool_, |
| 203 BoundNetLog()); |
203 EXPECT_EQ(OK, rv); | 204 EXPECT_EQ(OK, rv); |
204 EXPECT_TRUE(handle.is_initialized()); | 205 EXPECT_TRUE(handle.is_initialized()); |
205 EXPECT_TRUE(handle.socket()); | 206 EXPECT_TRUE(handle.socket()); |
206 } | 207 } |
207 | 208 |
208 TEST_F(SOCKSClientSocketPoolTest, Async) { | 209 TEST_F(SOCKSClientSocketPoolTest, Async) { |
209 SOCKS5MockData data(true); | 210 SOCKS5MockData data(true); |
210 tcp_client_socket_factory_.AddSocketDataProvider(data.data_provider()); | 211 tcp_client_socket_factory_.AddSocketDataProvider(data.data_provider()); |
211 | 212 |
212 TestCompletionCallback callback; | 213 TestCompletionCallback callback; |
213 ClientSocketHandle handle; | 214 ClientSocketHandle handle; |
214 int rv = handle.Init("a", ignored_socket_params_, LOW, &callback, pool_, | 215 int rv = handle.Init("a", ignored_socket_params_, LOW, &callback, pool_, |
215 NULL); | 216 BoundNetLog()); |
216 EXPECT_EQ(ERR_IO_PENDING, rv); | 217 EXPECT_EQ(ERR_IO_PENDING, rv); |
217 EXPECT_FALSE(handle.is_initialized()); | 218 EXPECT_FALSE(handle.is_initialized()); |
218 EXPECT_FALSE(handle.socket()); | 219 EXPECT_FALSE(handle.socket()); |
219 | 220 |
220 EXPECT_EQ(OK, callback.WaitForResult()); | 221 EXPECT_EQ(OK, callback.WaitForResult()); |
221 EXPECT_TRUE(handle.is_initialized()); | 222 EXPECT_TRUE(handle.is_initialized()); |
222 EXPECT_TRUE(handle.socket()); | 223 EXPECT_TRUE(handle.socket()); |
223 } | 224 } |
224 | 225 |
225 TEST_F(SOCKSClientSocketPoolTest, TCPConnectError) { | 226 TEST_F(SOCKSClientSocketPoolTest, TCPConnectError) { |
226 scoped_ptr<SocketDataProvider> socket_data(new StaticSocketDataProvider()); | 227 scoped_ptr<SocketDataProvider> socket_data(new StaticSocketDataProvider()); |
227 socket_data->set_connect_data(MockConnect(false, ERR_CONNECTION_REFUSED)); | 228 socket_data->set_connect_data(MockConnect(false, ERR_CONNECTION_REFUSED)); |
228 tcp_client_socket_factory_.AddSocketDataProvider(socket_data.get()); | 229 tcp_client_socket_factory_.AddSocketDataProvider(socket_data.get()); |
229 | 230 |
230 ClientSocketHandle handle; | 231 ClientSocketHandle handle; |
231 int rv = handle.Init("a", ignored_socket_params_, LOW, NULL, pool_, NULL); | 232 int rv = handle.Init("a", ignored_socket_params_, LOW, NULL, pool_, |
| 233 BoundNetLog()); |
232 EXPECT_EQ(ERR_CONNECTION_REFUSED, rv); | 234 EXPECT_EQ(ERR_CONNECTION_REFUSED, rv); |
233 EXPECT_FALSE(handle.is_initialized()); | 235 EXPECT_FALSE(handle.is_initialized()); |
234 EXPECT_FALSE(handle.socket()); | 236 EXPECT_FALSE(handle.socket()); |
235 } | 237 } |
236 | 238 |
237 TEST_F(SOCKSClientSocketPoolTest, AsyncTCPConnectError) { | 239 TEST_F(SOCKSClientSocketPoolTest, AsyncTCPConnectError) { |
238 scoped_ptr<SocketDataProvider> socket_data(new StaticSocketDataProvider()); | 240 scoped_ptr<SocketDataProvider> socket_data(new StaticSocketDataProvider()); |
239 socket_data->set_connect_data(MockConnect(true, ERR_CONNECTION_REFUSED)); | 241 socket_data->set_connect_data(MockConnect(true, ERR_CONNECTION_REFUSED)); |
240 tcp_client_socket_factory_.AddSocketDataProvider(socket_data.get()); | 242 tcp_client_socket_factory_.AddSocketDataProvider(socket_data.get()); |
241 | 243 |
242 TestCompletionCallback callback; | 244 TestCompletionCallback callback; |
243 ClientSocketHandle handle; | 245 ClientSocketHandle handle; |
244 int rv = handle.Init("a", ignored_socket_params_, LOW, &callback, pool_, | 246 int rv = handle.Init("a", ignored_socket_params_, LOW, &callback, pool_, |
245 NULL); | 247 BoundNetLog()); |
246 EXPECT_EQ(ERR_IO_PENDING, rv); | 248 EXPECT_EQ(ERR_IO_PENDING, rv); |
247 EXPECT_FALSE(handle.is_initialized()); | 249 EXPECT_FALSE(handle.is_initialized()); |
248 EXPECT_FALSE(handle.socket()); | 250 EXPECT_FALSE(handle.socket()); |
249 | 251 |
250 EXPECT_EQ(ERR_CONNECTION_REFUSED, callback.WaitForResult()); | 252 EXPECT_EQ(ERR_CONNECTION_REFUSED, callback.WaitForResult()); |
251 EXPECT_FALSE(handle.is_initialized()); | 253 EXPECT_FALSE(handle.is_initialized()); |
252 EXPECT_FALSE(handle.socket()); | 254 EXPECT_FALSE(handle.socket()); |
253 } | 255 } |
254 | 256 |
255 TEST_F(SOCKSClientSocketPoolTest, SOCKSConnectError) { | 257 TEST_F(SOCKSClientSocketPoolTest, SOCKSConnectError) { |
256 MockRead failed_read[] = { | 258 MockRead failed_read[] = { |
257 MockRead(false, 0), | 259 MockRead(false, 0), |
258 }; | 260 }; |
259 scoped_ptr<SocketDataProvider> socket_data(new StaticSocketDataProvider( | 261 scoped_ptr<SocketDataProvider> socket_data(new StaticSocketDataProvider( |
260 failed_read, arraysize(failed_read), NULL, 0)); | 262 failed_read, arraysize(failed_read), NULL, 0)); |
261 socket_data->set_connect_data(MockConnect(false, 0)); | 263 socket_data->set_connect_data(MockConnect(false, 0)); |
262 tcp_client_socket_factory_.AddSocketDataProvider(socket_data.get()); | 264 tcp_client_socket_factory_.AddSocketDataProvider(socket_data.get()); |
263 | 265 |
264 ClientSocketHandle handle; | 266 ClientSocketHandle handle; |
265 EXPECT_EQ(0, tcp_socket_pool_->release_count()); | 267 EXPECT_EQ(0, tcp_socket_pool_->release_count()); |
266 int rv = handle.Init("a", ignored_socket_params_, LOW, NULL, pool_, NULL); | 268 int rv = handle.Init("a", ignored_socket_params_, LOW, NULL, pool_, |
| 269 BoundNetLog()); |
267 EXPECT_EQ(ERR_SOCKS_CONNECTION_FAILED, rv); | 270 EXPECT_EQ(ERR_SOCKS_CONNECTION_FAILED, rv); |
268 EXPECT_FALSE(handle.is_initialized()); | 271 EXPECT_FALSE(handle.is_initialized()); |
269 EXPECT_FALSE(handle.socket()); | 272 EXPECT_FALSE(handle.socket()); |
270 EXPECT_EQ(1, tcp_socket_pool_->release_count()); | 273 EXPECT_EQ(1, tcp_socket_pool_->release_count()); |
271 } | 274 } |
272 | 275 |
273 TEST_F(SOCKSClientSocketPoolTest, AsyncSOCKSConnectError) { | 276 TEST_F(SOCKSClientSocketPoolTest, AsyncSOCKSConnectError) { |
274 MockRead failed_read[] = { | 277 MockRead failed_read[] = { |
275 MockRead(true, 0), | 278 MockRead(true, 0), |
276 }; | 279 }; |
277 scoped_ptr<SocketDataProvider> socket_data(new StaticSocketDataProvider( | 280 scoped_ptr<SocketDataProvider> socket_data(new StaticSocketDataProvider( |
278 failed_read, arraysize(failed_read), NULL, 0)); | 281 failed_read, arraysize(failed_read), NULL, 0)); |
279 socket_data->set_connect_data(MockConnect(false, 0)); | 282 socket_data->set_connect_data(MockConnect(false, 0)); |
280 tcp_client_socket_factory_.AddSocketDataProvider(socket_data.get()); | 283 tcp_client_socket_factory_.AddSocketDataProvider(socket_data.get()); |
281 | 284 |
282 TestCompletionCallback callback; | 285 TestCompletionCallback callback; |
283 ClientSocketHandle handle; | 286 ClientSocketHandle handle; |
284 EXPECT_EQ(0, tcp_socket_pool_->release_count()); | 287 EXPECT_EQ(0, tcp_socket_pool_->release_count()); |
285 int rv = handle.Init("a", ignored_socket_params_, LOW, &callback, pool_, | 288 int rv = handle.Init("a", ignored_socket_params_, LOW, &callback, pool_, |
286 NULL); | 289 BoundNetLog()); |
287 EXPECT_EQ(ERR_IO_PENDING, rv); | 290 EXPECT_EQ(ERR_IO_PENDING, rv); |
288 EXPECT_FALSE(handle.is_initialized()); | 291 EXPECT_FALSE(handle.is_initialized()); |
289 EXPECT_FALSE(handle.socket()); | 292 EXPECT_FALSE(handle.socket()); |
290 | 293 |
291 EXPECT_EQ(ERR_SOCKS_CONNECTION_FAILED, callback.WaitForResult()); | 294 EXPECT_EQ(ERR_SOCKS_CONNECTION_FAILED, callback.WaitForResult()); |
292 EXPECT_FALSE(handle.is_initialized()); | 295 EXPECT_FALSE(handle.is_initialized()); |
293 EXPECT_FALSE(handle.socket()); | 296 EXPECT_FALSE(handle.socket()); |
294 EXPECT_EQ(1, tcp_socket_pool_->release_count()); | 297 EXPECT_EQ(1, tcp_socket_pool_->release_count()); |
295 } | 298 } |
296 | 299 |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
359 | 362 |
360 requests_[0]->handle()->Reset(); | 363 requests_[0]->handle()->Reset(); |
361 requests_[1]->handle()->Reset(); | 364 requests_[1]->handle()->Reset(); |
362 } | 365 } |
363 | 366 |
364 // It would be nice to also test the timeouts in SOCKSClientSocketPool. | 367 // It would be nice to also test the timeouts in SOCKSClientSocketPool. |
365 | 368 |
366 } // namespace | 369 } // namespace |
367 | 370 |
368 } // namespace net | 371 } // namespace net |
OLD | NEW |