| 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 |