OLD | NEW |
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/transport_client_socket_pool.h" | 5 #include "net/socket/transport_client_socket_pool.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 1192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1203 MockClientSocketFactory::ClientSocketType case_types[] = { | 1203 MockClientSocketFactory::ClientSocketType case_types[] = { |
1204 // This is the IPv6 socket. | 1204 // This is the IPv6 socket. |
1205 MockClientSocketFactory::MOCK_STALLED_CLIENT_SOCKET, | 1205 MockClientSocketFactory::MOCK_STALLED_CLIENT_SOCKET, |
1206 // This is the IPv4 socket. | 1206 // This is the IPv4 socket. |
1207 MockClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET | 1207 MockClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET |
1208 }; | 1208 }; |
1209 | 1209 |
1210 client_socket_factory_.set_client_socket_types(case_types, 2); | 1210 client_socket_factory_.set_client_socket_types(case_types, 2); |
1211 | 1211 |
1212 // Resolve an AddressList with a IPv6 address first and then a IPv4 address. | 1212 // Resolve an AddressList with a IPv6 address first and then a IPv4 address. |
1213 host_resolver_->rules()->AddIPLiteralRule( | 1213 host_resolver_->rules() |
1214 "*", "2:abcd::3:4:ff,2.2.2.2", ""); | 1214 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,2.2.2.2", std::string()); |
1215 | 1215 |
1216 TestCompletionCallback callback; | 1216 TestCompletionCallback callback; |
1217 ClientSocketHandle handle; | 1217 ClientSocketHandle handle; |
1218 int rv = handle.Init("a", low_params_, LOW, callback.callback(), &pool, | 1218 int rv = handle.Init("a", low_params_, LOW, callback.callback(), &pool, |
1219 BoundNetLog()); | 1219 BoundNetLog()); |
1220 EXPECT_EQ(ERR_IO_PENDING, rv); | 1220 EXPECT_EQ(ERR_IO_PENDING, rv); |
1221 EXPECT_FALSE(handle.is_initialized()); | 1221 EXPECT_FALSE(handle.is_initialized()); |
1222 EXPECT_FALSE(handle.socket()); | 1222 EXPECT_FALSE(handle.socket()); |
1223 | 1223 |
1224 EXPECT_EQ(OK, callback.WaitForResult()); | 1224 EXPECT_EQ(OK, callback.WaitForResult()); |
(...skipping 23 matching lines...) Expand all Loading... |
1248 MockClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET, | 1248 MockClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET, |
1249 // This is the IPv4 socket. | 1249 // This is the IPv4 socket. |
1250 MockClientSocketFactory::MOCK_STALLED_CLIENT_SOCKET | 1250 MockClientSocketFactory::MOCK_STALLED_CLIENT_SOCKET |
1251 }; | 1251 }; |
1252 | 1252 |
1253 client_socket_factory_.set_client_socket_types(case_types, 2); | 1253 client_socket_factory_.set_client_socket_types(case_types, 2); |
1254 client_socket_factory_.set_delay(base::TimeDelta::FromMilliseconds( | 1254 client_socket_factory_.set_delay(base::TimeDelta::FromMilliseconds( |
1255 TransportConnectJob::kIPv6FallbackTimerInMs + 50)); | 1255 TransportConnectJob::kIPv6FallbackTimerInMs + 50)); |
1256 | 1256 |
1257 // Resolve an AddressList with a IPv6 address first and then a IPv4 address. | 1257 // Resolve an AddressList with a IPv6 address first and then a IPv4 address. |
1258 host_resolver_->rules()->AddIPLiteralRule( | 1258 host_resolver_->rules() |
1259 "*", "2:abcd::3:4:ff,2.2.2.2", ""); | 1259 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,2.2.2.2", std::string()); |
1260 | 1260 |
1261 TestCompletionCallback callback; | 1261 TestCompletionCallback callback; |
1262 ClientSocketHandle handle; | 1262 ClientSocketHandle handle; |
1263 int rv = handle.Init("a", low_params_, LOW, callback.callback(), &pool, | 1263 int rv = handle.Init("a", low_params_, LOW, callback.callback(), &pool, |
1264 BoundNetLog()); | 1264 BoundNetLog()); |
1265 EXPECT_EQ(ERR_IO_PENDING, rv); | 1265 EXPECT_EQ(ERR_IO_PENDING, rv); |
1266 EXPECT_FALSE(handle.is_initialized()); | 1266 EXPECT_FALSE(handle.is_initialized()); |
1267 EXPECT_FALSE(handle.socket()); | 1267 EXPECT_FALSE(handle.socket()); |
1268 | 1268 |
1269 EXPECT_EQ(OK, callback.WaitForResult()); | 1269 EXPECT_EQ(OK, callback.WaitForResult()); |
(...skipping 12 matching lines...) Expand all Loading... |
1282 kMaxSocketsPerGroup, | 1282 kMaxSocketsPerGroup, |
1283 histograms_.get(), | 1283 histograms_.get(), |
1284 host_resolver_.get(), | 1284 host_resolver_.get(), |
1285 &client_socket_factory_, | 1285 &client_socket_factory_, |
1286 NULL); | 1286 NULL); |
1287 | 1287 |
1288 client_socket_factory_.set_client_socket_type( | 1288 client_socket_factory_.set_client_socket_type( |
1289 MockClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); | 1289 MockClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); |
1290 | 1290 |
1291 // Resolve an AddressList with only IPv6 addresses. | 1291 // Resolve an AddressList with only IPv6 addresses. |
1292 host_resolver_->rules()->AddIPLiteralRule( | 1292 host_resolver_->rules() |
1293 "*", "2:abcd::3:4:ff,3:abcd::3:4:ff", ""); | 1293 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,3:abcd::3:4:ff", std::string()); |
1294 | 1294 |
1295 TestCompletionCallback callback; | 1295 TestCompletionCallback callback; |
1296 ClientSocketHandle handle; | 1296 ClientSocketHandle handle; |
1297 int rv = handle.Init("a", low_params_, LOW, callback.callback(), &pool, | 1297 int rv = handle.Init("a", low_params_, LOW, callback.callback(), &pool, |
1298 BoundNetLog()); | 1298 BoundNetLog()); |
1299 EXPECT_EQ(ERR_IO_PENDING, rv); | 1299 EXPECT_EQ(ERR_IO_PENDING, rv); |
1300 EXPECT_FALSE(handle.is_initialized()); | 1300 EXPECT_FALSE(handle.is_initialized()); |
1301 EXPECT_FALSE(handle.socket()); | 1301 EXPECT_FALSE(handle.socket()); |
1302 | 1302 |
1303 EXPECT_EQ(OK, callback.WaitForResult()); | 1303 EXPECT_EQ(OK, callback.WaitForResult()); |
(...skipping 12 matching lines...) Expand all Loading... |
1316 kMaxSocketsPerGroup, | 1316 kMaxSocketsPerGroup, |
1317 histograms_.get(), | 1317 histograms_.get(), |
1318 host_resolver_.get(), | 1318 host_resolver_.get(), |
1319 &client_socket_factory_, | 1319 &client_socket_factory_, |
1320 NULL); | 1320 NULL); |
1321 | 1321 |
1322 client_socket_factory_.set_client_socket_type( | 1322 client_socket_factory_.set_client_socket_type( |
1323 MockClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); | 1323 MockClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); |
1324 | 1324 |
1325 // Resolve an AddressList with only IPv4 addresses. | 1325 // Resolve an AddressList with only IPv4 addresses. |
1326 host_resolver_->rules()->AddIPLiteralRule( | 1326 host_resolver_->rules()->AddIPLiteralRule("*", "1.1.1.1", std::string()); |
1327 "*", "1.1.1.1", ""); | |
1328 | 1327 |
1329 TestCompletionCallback callback; | 1328 TestCompletionCallback callback; |
1330 ClientSocketHandle handle; | 1329 ClientSocketHandle handle; |
1331 int rv = handle.Init("a", low_params_, LOW, callback.callback(), &pool, | 1330 int rv = handle.Init("a", low_params_, LOW, callback.callback(), &pool, |
1332 BoundNetLog()); | 1331 BoundNetLog()); |
1333 EXPECT_EQ(ERR_IO_PENDING, rv); | 1332 EXPECT_EQ(ERR_IO_PENDING, rv); |
1334 EXPECT_FALSE(handle.is_initialized()); | 1333 EXPECT_FALSE(handle.is_initialized()); |
1335 EXPECT_FALSE(handle.socket()); | 1334 EXPECT_FALSE(handle.socket()); |
1336 | 1335 |
1337 EXPECT_EQ(OK, callback.WaitForResult()); | 1336 EXPECT_EQ(OK, callback.WaitForResult()); |
1338 EXPECT_TRUE(handle.is_initialized()); | 1337 EXPECT_TRUE(handle.is_initialized()); |
1339 EXPECT_TRUE(handle.socket()); | 1338 EXPECT_TRUE(handle.socket()); |
1340 IPEndPoint endpoint; | 1339 IPEndPoint endpoint; |
1341 handle.socket()->GetLocalAddress(&endpoint); | 1340 handle.socket()->GetLocalAddress(&endpoint); |
1342 EXPECT_EQ(kIPv4AddressSize, endpoint.address().size()); | 1341 EXPECT_EQ(kIPv4AddressSize, endpoint.address().size()); |
1343 EXPECT_EQ(1, client_socket_factory_.allocation_count()); | 1342 EXPECT_EQ(1, client_socket_factory_.allocation_count()); |
1344 } | 1343 } |
1345 | 1344 |
1346 } // namespace | 1345 } // namespace |
1347 | 1346 |
1348 } // namespace net | 1347 } // namespace net |
OLD | NEW |