| 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/quic/quic_stream_factory.h" | 5 #include "net/quic/quic_stream_factory.h" |
| 6 | 6 |
| 7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
| 8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
| 9 #include "base/thread_task_runner_handle.h" | 9 #include "base/thread_task_runner_handle.h" |
| 10 #include "net/base/test_data_directory.h" | 10 #include "net/base/test_data_directory.h" |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 } | 191 } |
| 192 | 192 |
| 193 int GetSourcePortForNewSessionAndGoAway(const HostPortPair& destination) { | 193 int GetSourcePortForNewSessionAndGoAway(const HostPortPair& destination) { |
| 194 return GetSourcePortForNewSessionInner(destination, true); | 194 return GetSourcePortForNewSessionInner(destination, true); |
| 195 } | 195 } |
| 196 | 196 |
| 197 int GetSourcePortForNewSessionInner(const HostPortPair& destination, | 197 int GetSourcePortForNewSessionInner(const HostPortPair& destination, |
| 198 bool goaway_received) { | 198 bool goaway_received) { |
| 199 // Should only be called if there is no active session for this destination. | 199 // Should only be called if there is no active session for this destination. |
| 200 EXPECT_FALSE(HasActiveSession(destination)); | 200 EXPECT_FALSE(HasActiveSession(destination)); |
| 201 size_t socket_count = socket_factory_.udp_client_sockets().size(); | 201 size_t socket_count = socket_factory_.udp_client_socket_ports().size(); |
| 202 | 202 |
| 203 MockRead reads[] = { | 203 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 204 MockRead(ASYNC, OK, 0) // EOF | 204 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 205 }; | |
| 206 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 207 socket_data.StopAfter(1); | |
| 208 socket_factory_.AddSocketDataProvider(&socket_data); | 205 socket_factory_.AddSocketDataProvider(&socket_data); |
| 209 | 206 |
| 210 QuicStreamRequest request(factory_.get()); | 207 QuicStreamRequest request(factory_.get()); |
| 211 EXPECT_EQ(ERR_IO_PENDING, | 208 EXPECT_EQ(ERR_IO_PENDING, |
| 212 request.Request(destination, privacy_mode_, | 209 request.Request(destination, privacy_mode_, |
| 213 /*cert_verify_flags=*/0, destination.host(), | 210 /*cert_verify_flags=*/0, destination.host(), |
| 214 "GET", net_log_, callback_.callback())); | 211 "GET", net_log_, callback_.callback())); |
| 215 | 212 |
| 216 EXPECT_EQ(OK, callback_.WaitForResult()); | 213 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 217 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 214 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 218 EXPECT_TRUE(stream.get()); | 215 EXPECT_TRUE(stream.get()); |
| 219 stream.reset(); | 216 stream.reset(); |
| 220 | 217 |
| 221 QuicChromiumClientSession* session = | 218 QuicChromiumClientSession* session = |
| 222 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), destination); | 219 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), destination); |
| 223 | 220 |
| 224 if (socket_count + 1 != socket_factory_.udp_client_sockets().size()) { | 221 if (socket_count + 1 != socket_factory_.udp_client_socket_ports().size()) { |
| 225 EXPECT_TRUE(false); | 222 ADD_FAILURE(); |
| 226 return 0; | 223 return 0; |
| 227 } | 224 } |
| 228 | 225 |
| 229 IPEndPoint endpoint; | |
| 230 socket_factory_.udp_client_sockets()[socket_count]->GetLocalAddress( | |
| 231 &endpoint); | |
| 232 int port = endpoint.port(); | |
| 233 if (goaway_received) { | 226 if (goaway_received) { |
| 234 QuicGoAwayFrame goaway(QUIC_NO_ERROR, 1, ""); | 227 QuicGoAwayFrame goaway(QUIC_NO_ERROR, 1, ""); |
| 235 session->connection()->OnGoAwayFrame(goaway); | 228 session->connection()->OnGoAwayFrame(goaway); |
| 236 } | 229 } |
| 237 | 230 |
| 238 factory_->OnSessionClosed(session); | 231 factory_->OnSessionClosed(session); |
| 239 EXPECT_FALSE(HasActiveSession(destination)); | 232 EXPECT_FALSE(HasActiveSession(destination)); |
| 240 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 233 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 241 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 234 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 242 return port; | 235 return socket_factory_.udp_client_socket_ports()[socket_count]; |
| 243 } | 236 } |
| 244 | 237 |
| 245 scoped_ptr<QuicEncryptedPacket> ConstructConnectionClosePacket( | 238 scoped_ptr<QuicEncryptedPacket> ConstructConnectionClosePacket( |
| 246 QuicPacketNumber num) { | 239 QuicPacketNumber num) { |
| 247 return maker_.MakeConnectionClosePacket(num); | 240 return maker_.MakeConnectionClosePacket(num); |
| 248 } | 241 } |
| 249 | 242 |
| 250 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket() { | 243 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket() { |
| 251 QuicStreamId stream_id = kClientDataStreamId1; | 244 QuicStreamId stream_id = kClientDataStreamId1; |
| 252 return maker_.MakeRstPacket( | 245 return maker_.MakeRstPacket( |
| (...skipping 14 matching lines...) Expand all Loading... |
| 267 } | 260 } |
| 268 | 261 |
| 269 void NotifyIPAddressChanged() { | 262 void NotifyIPAddressChanged() { |
| 270 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests(); | 263 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests(); |
| 271 // For thread safety, the NCN queues tasks to do the actual notifications, | 264 // For thread safety, the NCN queues tasks to do the actual notifications, |
| 272 // so we need to spin the message loop so the notification is delivered. | 265 // so we need to spin the message loop so the notification is delivered. |
| 273 base::MessageLoop::current()->RunUntilIdle(); | 266 base::MessageLoop::current()->RunUntilIdle(); |
| 274 } | 267 } |
| 275 | 268 |
| 276 MockHostResolver host_resolver_; | 269 MockHostResolver host_resolver_; |
| 277 DeterministicMockClientSocketFactory socket_factory_; | 270 MockClientSocketFactory socket_factory_; |
| 278 MockCryptoClientStreamFactory crypto_client_stream_factory_; | 271 MockCryptoClientStreamFactory crypto_client_stream_factory_; |
| 279 MockRandom random_generator_; | 272 MockRandom random_generator_; |
| 280 MockClock* clock_; // Owned by factory_. | 273 MockClock* clock_; // Owned by factory_. |
| 281 scoped_refptr<TestTaskRunner> runner_; | 274 scoped_refptr<TestTaskRunner> runner_; |
| 282 QuicTestPacketMaker maker_; | 275 QuicTestPacketMaker maker_; |
| 283 HttpServerPropertiesImpl http_server_properties_; | 276 HttpServerPropertiesImpl http_server_properties_; |
| 284 scoped_ptr<CertVerifier> cert_verifier_; | 277 scoped_ptr<CertVerifier> cert_verifier_; |
| 285 scoped_ptr<ChannelIDService> channel_id_service_; | 278 scoped_ptr<ChannelIDService> channel_id_service_; |
| 286 TransportSecurityState transport_security_state_; | 279 TransportSecurityState transport_security_state_; |
| 287 scoped_ptr<CTVerifier> cert_transparency_verifier_; | 280 scoped_ptr<CTVerifier> cert_transparency_verifier_; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 312 int idle_connection_timeout_seconds_; | 305 int idle_connection_timeout_seconds_; |
| 313 }; | 306 }; |
| 314 | 307 |
| 315 INSTANTIATE_TEST_CASE_P(Version, | 308 INSTANTIATE_TEST_CASE_P(Version, |
| 316 QuicStreamFactoryTest, | 309 QuicStreamFactoryTest, |
| 317 ::testing::ValuesIn(GetTestParams())); | 310 ::testing::ValuesIn(GetTestParams())); |
| 318 | 311 |
| 319 TEST_P(QuicStreamFactoryTest, Create) { | 312 TEST_P(QuicStreamFactoryTest, Create) { |
| 320 Initialize(); | 313 Initialize(); |
| 321 | 314 |
| 322 MockRead reads[] = { | 315 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 323 MockRead(ASYNC, OK, 0) // EOF | 316 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 324 }; | |
| 325 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 326 socket_factory_.AddSocketDataProvider(&socket_data); | 317 socket_factory_.AddSocketDataProvider(&socket_data); |
| 327 socket_data.StopAfter(1); | |
| 328 | 318 |
| 329 QuicStreamRequest request(factory_.get()); | 319 QuicStreamRequest request(factory_.get()); |
| 330 EXPECT_EQ(ERR_IO_PENDING, | 320 EXPECT_EQ(ERR_IO_PENDING, |
| 331 request.Request(host_port_pair_, privacy_mode_, | 321 request.Request(host_port_pair_, privacy_mode_, |
| 332 /*cert_verify_flags=*/0, host_port_pair_.host(), | 322 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 333 "GET", net_log_, callback_.callback())); | 323 "GET", net_log_, callback_.callback())); |
| 334 | 324 |
| 335 EXPECT_EQ(OK, callback_.WaitForResult()); | 325 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 336 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 326 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 337 EXPECT_TRUE(stream.get()); | 327 EXPECT_TRUE(stream.get()); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 350 stream = request2.ReleaseStream(); // Will reset stream 5. | 340 stream = request2.ReleaseStream(); // Will reset stream 5. |
| 351 stream.reset(); // Will reset stream 7. | 341 stream.reset(); // Will reset stream 7. |
| 352 | 342 |
| 353 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 343 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 354 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 344 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 355 } | 345 } |
| 356 | 346 |
| 357 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { | 347 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { |
| 358 Initialize(); | 348 Initialize(); |
| 359 | 349 |
| 360 MockRead reads[] = { | 350 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 361 MockRead(ASYNC, OK, 0) // EOF | 351 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 362 }; | |
| 363 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 364 socket_factory_.AddSocketDataProvider(&socket_data); | 352 socket_factory_.AddSocketDataProvider(&socket_data); |
| 365 socket_data.StopAfter(1); | |
| 366 | 353 |
| 367 crypto_client_stream_factory_.set_handshake_mode( | 354 crypto_client_stream_factory_.set_handshake_mode( |
| 368 MockCryptoClientStream::ZERO_RTT); | 355 MockCryptoClientStream::ZERO_RTT); |
| 369 host_resolver_.set_synchronous_mode(true); | 356 host_resolver_.set_synchronous_mode(true); |
| 370 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 357 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 371 "192.168.0.1", ""); | 358 "192.168.0.1", ""); |
| 372 | 359 |
| 373 QuicStreamRequest request(factory_.get()); | 360 QuicStreamRequest request(factory_.get()); |
| 374 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 361 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| 375 /*cert_verify_flags=*/0, host_port_pair_.host(), | 362 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 376 "GET", net_log_, callback_.callback())); | 363 "GET", net_log_, callback_.callback())); |
| 377 | 364 |
| 378 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 365 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 379 EXPECT_TRUE(stream.get()); | 366 EXPECT_TRUE(stream.get()); |
| 380 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 367 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 381 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 368 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 382 } | 369 } |
| 383 | 370 |
| 384 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { | 371 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { |
| 385 Initialize(); | 372 Initialize(); |
| 386 | 373 |
| 387 MockRead reads[] = { | 374 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 388 MockRead(ASYNC, OK, 0) // EOF | 375 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 389 }; | |
| 390 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 391 socket_factory_.AddSocketDataProvider(&socket_data); | 376 socket_factory_.AddSocketDataProvider(&socket_data); |
| 392 socket_data.StopAfter(1); | |
| 393 | 377 |
| 394 crypto_client_stream_factory_.set_handshake_mode( | 378 crypto_client_stream_factory_.set_handshake_mode( |
| 395 MockCryptoClientStream::ZERO_RTT); | 379 MockCryptoClientStream::ZERO_RTT); |
| 396 host_resolver_.set_synchronous_mode(true); | 380 host_resolver_.set_synchronous_mode(true); |
| 397 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 381 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 398 "192.168.0.1", ""); | 382 "192.168.0.1", ""); |
| 399 | 383 |
| 400 QuicStreamRequest request(factory_.get()); | 384 QuicStreamRequest request(factory_.get()); |
| 401 // Posts require handshake confirmation, so this will return asynchronously. | 385 // Posts require handshake confirmation, so this will return asynchronously. |
| 402 EXPECT_EQ(ERR_IO_PENDING, | 386 EXPECT_EQ(ERR_IO_PENDING, |
| 403 request.Request(host_port_pair_, privacy_mode_, | 387 request.Request(host_port_pair_, privacy_mode_, |
| 404 /*cert_verify_flags=*/0, host_port_pair_.host(), | 388 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 405 "POST", net_log_, callback_.callback())); | 389 "POST", net_log_, callback_.callback())); |
| 406 | 390 |
| 407 // Confirm the handshake and verify that the stream is created. | 391 // Confirm the handshake and verify that the stream is created. |
| 408 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( | 392 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( |
| 409 QuicSession::HANDSHAKE_CONFIRMED); | 393 QuicSession::HANDSHAKE_CONFIRMED); |
| 410 | 394 |
| 411 EXPECT_EQ(OK, callback_.WaitForResult()); | 395 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 412 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 396 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 413 EXPECT_TRUE(stream.get()); | 397 EXPECT_TRUE(stream.get()); |
| 414 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 398 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 415 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 399 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 416 } | 400 } |
| 417 | 401 |
| 418 TEST_P(QuicStreamFactoryTest, NoZeroRttForDifferentHost) { | 402 TEST_P(QuicStreamFactoryTest, NoZeroRttForDifferentHost) { |
| 419 Initialize(); | 403 Initialize(); |
| 420 | 404 |
| 421 MockRead reads[] = { | 405 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 422 MockRead(ASYNC, OK, 0), | 406 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 423 }; | |
| 424 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 425 socket_factory_.AddSocketDataProvider(&socket_data); | 407 socket_factory_.AddSocketDataProvider(&socket_data); |
| 426 socket_data.StopAfter(1); | |
| 427 | 408 |
| 428 crypto_client_stream_factory_.set_handshake_mode( | 409 crypto_client_stream_factory_.set_handshake_mode( |
| 429 MockCryptoClientStream::ZERO_RTT); | 410 MockCryptoClientStream::ZERO_RTT); |
| 430 host_resolver_.set_synchronous_mode(true); | 411 host_resolver_.set_synchronous_mode(true); |
| 431 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 412 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 432 "192.168.0.1", ""); | 413 "192.168.0.1", ""); |
| 433 | 414 |
| 434 QuicStreamRequest request(factory_.get()); | 415 QuicStreamRequest request(factory_.get()); |
| 435 int rv = request.Request( | 416 int rv = request.Request( |
| 436 host_port_pair_, privacy_mode_, /*cert_verify_flags=*/0, | 417 host_port_pair_, privacy_mode_, /*cert_verify_flags=*/0, |
| 437 "different.host.example.com", "GET", net_log_, callback_.callback()); | 418 "different.host.example.com", "GET", net_log_, callback_.callback()); |
| 438 // If server and origin have different hostnames, then handshake confirmation | 419 // If server and origin have different hostnames, then handshake confirmation |
| 439 // should be required, so Request will return asynchronously. | 420 // should be required, so Request will return asynchronously. |
| 440 EXPECT_EQ(ERR_IO_PENDING, rv); | 421 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 441 // Confirm handshake. | 422 // Confirm handshake. |
| 442 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( | 423 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( |
| 443 QuicSession::HANDSHAKE_CONFIRMED); | 424 QuicSession::HANDSHAKE_CONFIRMED); |
| 444 EXPECT_EQ(OK, callback_.WaitForResult()); | 425 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 445 | 426 |
| 446 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 427 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 447 EXPECT_TRUE(stream.get()); | 428 EXPECT_TRUE(stream.get()); |
| 448 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 429 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 449 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 430 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 450 } | 431 } |
| 451 | 432 |
| 452 TEST_P(QuicStreamFactoryTest, GoAway) { | 433 TEST_P(QuicStreamFactoryTest, GoAway) { |
| 453 Initialize(); | 434 Initialize(); |
| 454 | 435 |
| 455 MockRead reads[] = { | 436 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 456 MockRead(ASYNC, OK, 0) // EOF | 437 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 457 }; | |
| 458 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 459 socket_factory_.AddSocketDataProvider(&socket_data); | 438 socket_factory_.AddSocketDataProvider(&socket_data); |
| 460 socket_data.StopAfter(1); | |
| 461 | 439 |
| 462 QuicStreamRequest request(factory_.get()); | 440 QuicStreamRequest request(factory_.get()); |
| 463 EXPECT_EQ(ERR_IO_PENDING, | 441 EXPECT_EQ(ERR_IO_PENDING, |
| 464 request.Request(host_port_pair_, privacy_mode_, | 442 request.Request(host_port_pair_, privacy_mode_, |
| 465 /*cert_verify_flags=*/0, host_port_pair_.host(), | 443 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 466 "GET", net_log_, callback_.callback())); | 444 "GET", net_log_, callback_.callback())); |
| 467 | 445 |
| 468 EXPECT_EQ(OK, callback_.WaitForResult()); | 446 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 469 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 447 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 470 EXPECT_TRUE(stream.get()); | 448 EXPECT_TRUE(stream.get()); |
| 471 | 449 |
| 472 QuicChromiumClientSession* session = | 450 QuicChromiumClientSession* session = |
| 473 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 451 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
| 474 | 452 |
| 475 session->OnGoAway(QuicGoAwayFrame()); | 453 session->OnGoAway(QuicGoAwayFrame()); |
| 476 | 454 |
| 477 EXPECT_FALSE( | 455 EXPECT_FALSE( |
| 478 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); | 456 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); |
| 479 | 457 |
| 480 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 458 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 481 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 459 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 482 } | 460 } |
| 483 | 461 |
| 484 TEST_P(QuicStreamFactoryTest, Pooling) { | 462 TEST_P(QuicStreamFactoryTest, Pooling) { |
| 485 Initialize(); | 463 Initialize(); |
| 486 | 464 |
| 487 MockRead reads[] = { | 465 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 488 MockRead(ASYNC, OK, 0) // EOF | 466 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 489 }; | |
| 490 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 491 socket_factory_.AddSocketDataProvider(&socket_data); | 467 socket_factory_.AddSocketDataProvider(&socket_data); |
| 492 socket_data.StopAfter(1); | |
| 493 | 468 |
| 494 HostPortPair server2("mail.google.com", kDefaultServerPort); | 469 HostPortPair server2("mail.google.com", kDefaultServerPort); |
| 495 host_resolver_.set_synchronous_mode(true); | 470 host_resolver_.set_synchronous_mode(true); |
| 496 host_resolver_.rules()->AddIPLiteralRule(kDefaultServerHostName, | 471 host_resolver_.rules()->AddIPLiteralRule(kDefaultServerHostName, |
| 497 "192.168.0.1", ""); | 472 "192.168.0.1", ""); |
| 498 host_resolver_.rules()->AddIPLiteralRule("mail.google.com", "192.168.0.1", | 473 host_resolver_.rules()->AddIPLiteralRule("mail.google.com", "192.168.0.1", |
| 499 ""); | 474 ""); |
| 500 | 475 |
| 501 QuicStreamRequest request(factory_.get()); | 476 QuicStreamRequest request(factory_.get()); |
| 502 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 477 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| (...skipping 15 matching lines...) Expand all Loading... |
| 518 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 493 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
| 519 | 494 |
| 520 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 495 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 521 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 496 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 522 } | 497 } |
| 523 | 498 |
| 524 TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) { | 499 TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) { |
| 525 disable_connection_pooling_ = true; | 500 disable_connection_pooling_ = true; |
| 526 Initialize(); | 501 Initialize(); |
| 527 | 502 |
| 528 MockRead reads[] = { | 503 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 529 MockRead(ASYNC, OK, 0) // EOF | 504 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 530 }; | 505 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 531 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | |
| 532 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | |
| 533 socket_factory_.AddSocketDataProvider(&socket_data1); | 506 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 534 socket_factory_.AddSocketDataProvider(&socket_data2); | 507 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 535 socket_data1.StopAfter(1); | |
| 536 socket_data2.StopAfter(1); | |
| 537 | 508 |
| 538 HostPortPair server2("mail.google.com", kDefaultServerPort); | 509 HostPortPair server2("mail.google.com", kDefaultServerPort); |
| 539 host_resolver_.set_synchronous_mode(true); | 510 host_resolver_.set_synchronous_mode(true); |
| 540 host_resolver_.rules()->AddIPLiteralRule(kDefaultServerHostName, | 511 host_resolver_.rules()->AddIPLiteralRule(kDefaultServerHostName, |
| 541 "192.168.0.1", ""); | 512 "192.168.0.1", ""); |
| 542 host_resolver_.rules()->AddIPLiteralRule("mail.google.com", "192.168.0.1", | 513 host_resolver_.rules()->AddIPLiteralRule("mail.google.com", "192.168.0.1", |
| 543 ""); | 514 ""); |
| 544 | 515 |
| 545 QuicStreamRequest request(factory_.get()); | 516 QuicStreamRequest request(factory_.get()); |
| 546 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 517 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| (...skipping 16 matching lines...) Expand all Loading... |
| 563 | 534 |
| 564 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 535 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| 565 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 536 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
| 566 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 537 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 567 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 538 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 568 } | 539 } |
| 569 | 540 |
| 570 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { | 541 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { |
| 571 Initialize(); | 542 Initialize(); |
| 572 | 543 |
| 573 MockRead reads[] = { | 544 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 574 MockRead(ASYNC, OK, 0) // EOF | 545 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 575 }; | 546 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 576 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | |
| 577 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | |
| 578 socket_factory_.AddSocketDataProvider(&socket_data1); | 547 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 579 socket_factory_.AddSocketDataProvider(&socket_data2); | 548 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 580 socket_data1.StopAfter(1); | |
| 581 socket_data2.StopAfter(1); | |
| 582 | 549 |
| 583 HostPortPair server2("mail.google.com", kDefaultServerPort); | 550 HostPortPair server2("mail.google.com", kDefaultServerPort); |
| 584 host_resolver_.set_synchronous_mode(true); | 551 host_resolver_.set_synchronous_mode(true); |
| 585 host_resolver_.rules()->AddIPLiteralRule(kDefaultServerHostName, | 552 host_resolver_.rules()->AddIPLiteralRule(kDefaultServerHostName, |
| 586 "192.168.0.1", ""); | 553 "192.168.0.1", ""); |
| 587 host_resolver_.rules()->AddIPLiteralRule("mail.google.com", "192.168.0.1", | 554 host_resolver_.rules()->AddIPLiteralRule("mail.google.com", "192.168.0.1", |
| 588 ""); | 555 ""); |
| 589 | 556 |
| 590 QuicStreamRequest request(factory_.get()); | 557 QuicStreamRequest request(factory_.get()); |
| 591 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 558 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| (...skipping 28 matching lines...) Expand all Loading... |
| 620 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2)); | 587 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2)); |
| 621 | 588 |
| 622 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 589 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| 623 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 590 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
| 624 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 591 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 625 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 592 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 626 } | 593 } |
| 627 | 594 |
| 628 TEST_P(QuicStreamFactoryTest, HttpsPooling) { | 595 TEST_P(QuicStreamFactoryTest, HttpsPooling) { |
| 629 Initialize(); | 596 Initialize(); |
| 630 MockRead reads[] = { | 597 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 631 MockRead(ASYNC, OK, 0) // EOF | 598 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 632 }; | |
| 633 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 634 socket_factory_.AddSocketDataProvider(&socket_data); | 599 socket_factory_.AddSocketDataProvider(&socket_data); |
| 635 socket_data.StopAfter(1); | |
| 636 | 600 |
| 637 HostPortPair server1("www.example.org", 443); | 601 HostPortPair server1("www.example.org", 443); |
| 638 HostPortPair server2("mail.example.org", 443); | 602 HostPortPair server2("mail.example.org", 443); |
| 639 | 603 |
| 640 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 604 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 641 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 605 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 642 | 606 |
| 643 host_resolver_.set_synchronous_mode(true); | 607 host_resolver_.set_synchronous_mode(true); |
| 644 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 608 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
| 645 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 609 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 663 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 627 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
| 664 | 628 |
| 665 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 629 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 666 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 630 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 667 } | 631 } |
| 668 | 632 |
| 669 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) { | 633 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) { |
| 670 disable_connection_pooling_ = true; | 634 disable_connection_pooling_ = true; |
| 671 Initialize(); | 635 Initialize(); |
| 672 | 636 |
| 673 MockRead reads[] = { | 637 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 674 MockRead(ASYNC, OK, 0) // EOF | 638 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 675 }; | 639 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 676 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | |
| 677 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | |
| 678 socket_factory_.AddSocketDataProvider(&socket_data1); | 640 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 679 socket_factory_.AddSocketDataProvider(&socket_data2); | 641 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 680 socket_data1.StopAfter(1); | |
| 681 socket_data2.StopAfter(1); | |
| 682 | 642 |
| 683 HostPortPair server1("www.example.org", 443); | 643 HostPortPair server1("www.example.org", 443); |
| 684 HostPortPair server2("mail.example.org", 443); | 644 HostPortPair server2("mail.example.org", 443); |
| 685 | 645 |
| 686 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 646 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 687 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 647 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 688 | 648 |
| 689 host_resolver_.set_synchronous_mode(true); | 649 host_resolver_.set_synchronous_mode(true); |
| 690 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 650 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
| 691 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 651 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 711 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 671 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| 712 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 672 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
| 713 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 673 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 714 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 674 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 715 } | 675 } |
| 716 | 676 |
| 717 class QuicAlternativeServiceCertificateValidationPooling | 677 class QuicAlternativeServiceCertificateValidationPooling |
| 718 : public QuicStreamFactoryTest { | 678 : public QuicStreamFactoryTest { |
| 719 public: | 679 public: |
| 720 void Run(bool valid) { | 680 void Run(bool valid) { |
| 721 MockRead reads[] = { | 681 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 722 MockRead(ASYNC, OK, 0) // EOF | 682 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 723 }; | |
| 724 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | |
| 725 socket_factory_.AddSocketDataProvider(&socket_data1); | 683 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 726 socket_data1.StopAfter(1); | |
| 727 | 684 |
| 728 HostPortPair server1("www.example.org", 443); | 685 HostPortPair server1("www.example.org", 443); |
| 729 HostPortPair server2("mail.example.org", 443); | 686 HostPortPair server2("mail.example.org", 443); |
| 730 | 687 |
| 731 std::string origin_host(valid ? "mail.example.org" : "invalid.example.org"); | 688 std::string origin_host(valid ? "mail.example.org" : "invalid.example.org"); |
| 732 HostPortPair alternative("www.example.org", 443); | 689 HostPortPair alternative("www.example.org", 443); |
| 733 | 690 |
| 734 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 691 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 735 bool common_name_fallback_used; | 692 bool common_name_fallback_used; |
| 736 EXPECT_EQ(valid, | 693 EXPECT_EQ(valid, |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 783 Run(true); | 740 Run(true); |
| 784 } | 741 } |
| 785 | 742 |
| 786 TEST_P(QuicAlternativeServiceCertificateValidationPooling, Invalid) { | 743 TEST_P(QuicAlternativeServiceCertificateValidationPooling, Invalid) { |
| 787 Initialize(); | 744 Initialize(); |
| 788 Run(false); | 745 Run(false); |
| 789 } | 746 } |
| 790 | 747 |
| 791 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { | 748 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { |
| 792 Initialize(); | 749 Initialize(); |
| 793 MockRead reads[] = { | 750 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 794 MockRead(ASYNC, OK, 0) // EOF | 751 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 795 }; | |
| 796 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 797 socket_factory_.AddSocketDataProvider(&socket_data); | 752 socket_factory_.AddSocketDataProvider(&socket_data); |
| 798 socket_data.StopAfter(1); | |
| 799 | 753 |
| 800 HostPortPair server1("www.example.org", 443); | 754 HostPortPair server1("www.example.org", 443); |
| 801 HostPortPair server2("mail.example.org", 443); | 755 HostPortPair server2("mail.example.org", 443); |
| 802 uint8 primary_pin = 1; | 756 uint8 primary_pin = 1; |
| 803 uint8 backup_pin = 2; | 757 uint8 backup_pin = 2; |
| 804 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, | 758 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, |
| 805 backup_pin); | 759 backup_pin); |
| 806 | 760 |
| 807 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 761 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 808 verify_details.cert_verify_result.public_key_hashes.push_back( | 762 verify_details.cert_verify_result.public_key_hashes.push_back( |
| (...skipping 23 matching lines...) Expand all Loading... |
| 832 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 786 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
| 833 | 787 |
| 834 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 788 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 835 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 789 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 836 } | 790 } |
| 837 | 791 |
| 838 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { | 792 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { |
| 839 disable_connection_pooling_ = true; | 793 disable_connection_pooling_ = true; |
| 840 Initialize(); | 794 Initialize(); |
| 841 | 795 |
| 842 MockRead reads[] = { | 796 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 843 MockRead(ASYNC, OK, 0) // EOF | 797 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 844 }; | 798 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 845 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | |
| 846 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | |
| 847 socket_factory_.AddSocketDataProvider(&socket_data1); | 799 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 848 socket_factory_.AddSocketDataProvider(&socket_data2); | 800 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 849 socket_data1.StopAfter(1); | |
| 850 socket_data2.StopAfter(1); | |
| 851 | 801 |
| 852 HostPortPair server1("www.example.org", 443); | 802 HostPortPair server1("www.example.org", 443); |
| 853 HostPortPair server2("mail.example.org", 443); | 803 HostPortPair server2("mail.example.org", 443); |
| 854 uint8 primary_pin = 1; | 804 uint8 primary_pin = 1; |
| 855 uint8 backup_pin = 2; | 805 uint8 backup_pin = 2; |
| 856 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, | 806 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, |
| 857 backup_pin); | 807 backup_pin); |
| 858 | 808 |
| 859 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 809 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 860 verify_details.cert_verify_result.public_key_hashes.push_back( | 810 verify_details.cert_verify_result.public_key_hashes.push_back( |
| (...skipping 23 matching lines...) Expand all Loading... |
| 884 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 834 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
| 885 | 835 |
| 886 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 836 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| 887 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 837 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
| 888 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 838 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 889 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 839 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 890 } | 840 } |
| 891 | 841 |
| 892 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { | 842 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { |
| 893 Initialize(); | 843 Initialize(); |
| 894 MockRead reads[] = { | 844 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 895 MockRead(ASYNC, OK, 0) // EOF | 845 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 896 }; | 846 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 897 DeterministicSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | |
| 898 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | |
| 899 socket_factory_.AddSocketDataProvider(&socket_data1); | 847 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 900 socket_factory_.AddSocketDataProvider(&socket_data2); | 848 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 901 socket_data1.StopAfter(1); | |
| 902 socket_data2.StopAfter(1); | |
| 903 | 849 |
| 904 HostPortPair server1("www.example.org", 443); | 850 HostPortPair server1("www.example.org", 443); |
| 905 HostPortPair server2("mail.example.org", 443); | 851 HostPortPair server2("mail.example.org", 443); |
| 906 uint8 primary_pin = 1; | 852 uint8 primary_pin = 1; |
| 907 uint8 backup_pin = 2; | 853 uint8 backup_pin = 2; |
| 908 uint8 bad_pin = 3; | 854 uint8 bad_pin = 3; |
| 909 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, | 855 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, |
| 910 backup_pin); | 856 backup_pin); |
| 911 | 857 |
| 912 ProofVerifyDetailsChromium verify_details1 = DefaultProofVerifyDetails(); | 858 ProofVerifyDetailsChromium verify_details1 = DefaultProofVerifyDetails(); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 942 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 888 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
| 943 | 889 |
| 944 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 890 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| 945 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 891 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
| 946 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 892 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 947 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 893 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 948 } | 894 } |
| 949 | 895 |
| 950 TEST_P(QuicStreamFactoryTest, Goaway) { | 896 TEST_P(QuicStreamFactoryTest, Goaway) { |
| 951 Initialize(); | 897 Initialize(); |
| 952 MockRead reads[] = { | 898 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 953 MockRead(ASYNC, OK, 0) // EOF | 899 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 954 }; | |
| 955 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 956 socket_data.StopAfter(1); | |
| 957 socket_factory_.AddSocketDataProvider(&socket_data); | 900 socket_factory_.AddSocketDataProvider(&socket_data); |
| 958 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 901 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 959 socket_data2.StopAfter(1); | |
| 960 socket_factory_.AddSocketDataProvider(&socket_data2); | 902 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 961 | 903 |
| 962 QuicStreamRequest request(factory_.get()); | 904 QuicStreamRequest request(factory_.get()); |
| 963 EXPECT_EQ(ERR_IO_PENDING, | 905 EXPECT_EQ(ERR_IO_PENDING, |
| 964 request.Request(host_port_pair_, privacy_mode_, | 906 request.Request(host_port_pair_, privacy_mode_, |
| 965 /*cert_verify_flags=*/0, host_port_pair_.host(), | 907 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 966 "GET", net_log_, callback_.callback())); | 908 "GET", net_log_, callback_.callback())); |
| 967 | 909 |
| 968 EXPECT_EQ(OK, callback_.WaitForResult()); | 910 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 969 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 911 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1012 QuicStreamId stream_id = kClientDataStreamId1; | 954 QuicStreamId stream_id = kClientDataStreamId1; |
| 1013 scoped_ptr<QuicEncryptedPacket> client_rst( | 955 scoped_ptr<QuicEncryptedPacket> client_rst( |
| 1014 maker_.MakeRstPacket(1, true, stream_id, QUIC_STREAM_CANCELLED)); | 956 maker_.MakeRstPacket(1, true, stream_id, QUIC_STREAM_CANCELLED)); |
| 1015 MockWrite writes[] = { | 957 MockWrite writes[] = { |
| 1016 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 0), | 958 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 0), |
| 1017 }; | 959 }; |
| 1018 scoped_ptr<QuicEncryptedPacket> server_rst( | 960 scoped_ptr<QuicEncryptedPacket> server_rst( |
| 1019 maker_.MakeRstPacket(1, false, stream_id, QUIC_STREAM_CANCELLED)); | 961 maker_.MakeRstPacket(1, false, stream_id, QUIC_STREAM_CANCELLED)); |
| 1020 MockRead reads[] = { | 962 MockRead reads[] = { |
| 1021 MockRead(ASYNC, server_rst->data(), server_rst->length(), 1), | 963 MockRead(ASYNC, server_rst->data(), server_rst->length(), 1), |
| 1022 MockRead(ASYNC, OK, 2) // EOF | 964 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 2)}; |
| 1023 }; | 965 SequencedSocketData socket_data(reads, arraysize(reads), writes, |
| 1024 DeterministicSocketData socket_data(reads, arraysize(reads), writes, | 966 arraysize(writes)); |
| 1025 arraysize(writes)); | |
| 1026 socket_factory_.AddSocketDataProvider(&socket_data); | 967 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1027 socket_data.StopAfter(2); | |
| 1028 | 968 |
| 1029 HttpRequestInfo request_info; | 969 HttpRequestInfo request_info; |
| 1030 std::vector<QuicHttpStream*> streams; | 970 std::vector<QuicHttpStream*> streams; |
| 1031 // The MockCryptoClientStream sets max_open_streams to be | 971 // The MockCryptoClientStream sets max_open_streams to be |
| 1032 // kDefaultMaxStreamsPerConnection / 2. | 972 // kDefaultMaxStreamsPerConnection / 2. |
| 1033 for (size_t i = 0; i < kDefaultMaxStreamsPerConnection / 2; i++) { | 973 for (size_t i = 0; i < kDefaultMaxStreamsPerConnection / 2; i++) { |
| 1034 QuicStreamRequest request(factory_.get()); | 974 QuicStreamRequest request(factory_.get()); |
| 1035 int rv = request.Request(host_port_pair_, privacy_mode_, | 975 int rv = request.Request(host_port_pair_, privacy_mode_, |
| 1036 /*cert_verify_flags=*/0, host_port_pair_.host(), | 976 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1037 "GET", net_log_, callback_.callback()); | 977 "GET", net_log_, callback_.callback()); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1055 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 995 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 1056 EXPECT_TRUE(stream); | 996 EXPECT_TRUE(stream); |
| 1057 EXPECT_EQ(ERR_IO_PENDING, | 997 EXPECT_EQ(ERR_IO_PENDING, |
| 1058 stream->InitializeStream(&request_info, DEFAULT_PRIORITY, net_log_, | 998 stream->InitializeStream(&request_info, DEFAULT_PRIORITY, net_log_, |
| 1059 callback_.callback())); | 999 callback_.callback())); |
| 1060 | 1000 |
| 1061 // Close the first stream. | 1001 // Close the first stream. |
| 1062 streams.front()->Close(false); | 1002 streams.front()->Close(false); |
| 1063 // Trigger exchange of RSTs that in turn allow progress for the last | 1003 // Trigger exchange of RSTs that in turn allow progress for the last |
| 1064 // stream. | 1004 // stream. |
| 1065 socket_data.RunFor(2); | |
| 1066 | |
| 1067 ASSERT_TRUE(callback_.have_result()); | |
| 1068 EXPECT_EQ(OK, callback_.WaitForResult()); | 1005 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 1069 | 1006 |
| 1070 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1007 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1071 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1008 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1072 | 1009 |
| 1073 // Force close of the connection to suppress the generation of RST | 1010 // Force close of the connection to suppress the generation of RST |
| 1074 // packets when streams are torn down, which wouldn't be relevant to | 1011 // packets when streams are torn down, which wouldn't be relevant to |
| 1075 // this test anyway. | 1012 // this test anyway. |
| 1076 QuicChromiumClientSession* session = | 1013 QuicChromiumClientSession* session = |
| 1077 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 1014 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
| 1078 session->connection()->CloseConnection(QUIC_PUBLIC_RESET, true); | 1015 session->connection()->CloseConnection(QUIC_PUBLIC_RESET, true); |
| 1079 | 1016 |
| 1080 STLDeleteElements(&streams); | 1017 STLDeleteElements(&streams); |
| 1081 } | 1018 } |
| 1082 | 1019 |
| 1083 TEST_P(QuicStreamFactoryTest, ResolutionErrorInCreate) { | 1020 TEST_P(QuicStreamFactoryTest, ResolutionErrorInCreate) { |
| 1084 Initialize(); | 1021 Initialize(); |
| 1085 DeterministicSocketData socket_data(nullptr, 0, nullptr, 0); | 1022 SequencedSocketData socket_data(nullptr, 0, nullptr, 0); |
| 1086 socket_factory_.AddSocketDataProvider(&socket_data); | 1023 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1087 | 1024 |
| 1088 host_resolver_.rules()->AddSimulatedFailure(kDefaultServerHostName); | 1025 host_resolver_.rules()->AddSimulatedFailure(kDefaultServerHostName); |
| 1089 | 1026 |
| 1090 QuicStreamRequest request(factory_.get()); | 1027 QuicStreamRequest request(factory_.get()); |
| 1091 EXPECT_EQ(ERR_IO_PENDING, | 1028 EXPECT_EQ(ERR_IO_PENDING, |
| 1092 request.Request(host_port_pair_, privacy_mode_, | 1029 request.Request(host_port_pair_, privacy_mode_, |
| 1093 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1030 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1094 "GET", net_log_, callback_.callback())); | 1031 "GET", net_log_, callback_.callback())); |
| 1095 | 1032 |
| 1096 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback_.WaitForResult()); | 1033 EXPECT_EQ(ERR_NAME_NOT_RESOLVED, callback_.WaitForResult()); |
| 1097 | 1034 |
| 1098 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1035 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1099 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1036 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1100 } | 1037 } |
| 1101 | 1038 |
| 1102 TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) { | 1039 TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) { |
| 1103 Initialize(); | 1040 Initialize(); |
| 1104 MockConnect connect(SYNCHRONOUS, ERR_ADDRESS_IN_USE); | 1041 MockConnect connect(SYNCHRONOUS, ERR_ADDRESS_IN_USE); |
| 1105 DeterministicSocketData socket_data(nullptr, 0, nullptr, 0); | 1042 SequencedSocketData socket_data(nullptr, 0, nullptr, 0); |
| 1106 socket_data.set_connect_data(connect); | 1043 socket_data.set_connect_data(connect); |
| 1107 socket_factory_.AddSocketDataProvider(&socket_data); | 1044 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1108 socket_data.StopAfter(1); | |
| 1109 | 1045 |
| 1110 QuicStreamRequest request(factory_.get()); | 1046 QuicStreamRequest request(factory_.get()); |
| 1111 EXPECT_EQ(ERR_IO_PENDING, | 1047 EXPECT_EQ(ERR_IO_PENDING, |
| 1112 request.Request(host_port_pair_, privacy_mode_, | 1048 request.Request(host_port_pair_, privacy_mode_, |
| 1113 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1049 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1114 "GET", net_log_, callback_.callback())); | 1050 "GET", net_log_, callback_.callback())); |
| 1115 | 1051 |
| 1116 EXPECT_EQ(ERR_ADDRESS_IN_USE, callback_.WaitForResult()); | 1052 EXPECT_EQ(ERR_ADDRESS_IN_USE, callback_.WaitForResult()); |
| 1117 | 1053 |
| 1118 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1054 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1119 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1055 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1120 } | 1056 } |
| 1121 | 1057 |
| 1122 TEST_P(QuicStreamFactoryTest, CancelCreate) { | 1058 TEST_P(QuicStreamFactoryTest, CancelCreate) { |
| 1123 Initialize(); | 1059 Initialize(); |
| 1124 MockRead reads[] = { | 1060 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1125 MockRead(ASYNC, OK, 0) // EOF | 1061 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1126 }; | |
| 1127 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 1128 socket_factory_.AddSocketDataProvider(&socket_data); | 1062 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1129 { | 1063 { |
| 1130 QuicStreamRequest request(factory_.get()); | 1064 QuicStreamRequest request(factory_.get()); |
| 1131 EXPECT_EQ(ERR_IO_PENDING, | 1065 EXPECT_EQ(ERR_IO_PENDING, |
| 1132 request.Request(host_port_pair_, privacy_mode_, | 1066 request.Request(host_port_pair_, privacy_mode_, |
| 1133 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1067 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1134 "GET", net_log_, callback_.callback())); | 1068 "GET", net_log_, callback_.callback())); |
| 1135 } | 1069 } |
| 1136 | 1070 |
| 1137 socket_data.StopAfter(1); | 1071 base::RunLoop().RunUntilIdle(); |
| 1138 base::RunLoop run_loop; | |
| 1139 run_loop.RunUntilIdle(); | |
| 1140 | 1072 |
| 1141 scoped_ptr<QuicHttpStream> stream(CreateFromSession(host_port_pair_)); | 1073 scoped_ptr<QuicHttpStream> stream(CreateFromSession(host_port_pair_)); |
| 1142 EXPECT_TRUE(stream.get()); | 1074 EXPECT_TRUE(stream.get()); |
| 1143 stream.reset(); | 1075 stream.reset(); |
| 1144 | 1076 |
| 1145 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1077 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1146 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1078 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1147 } | 1079 } |
| 1148 | 1080 |
| 1149 TEST_P(QuicStreamFactoryTest, CreateConsistentEphemeralPort) { | 1081 TEST_P(QuicStreamFactoryTest, CreateConsistentEphemeralPort) { |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1168 // Get a session to the host using the port suggester. | 1100 // Get a session to the host using the port suggester. |
| 1169 int original_port = GetSourcePortForNewSessionAndGoAway(host_port_pair_); | 1101 int original_port = GetSourcePortForNewSessionAndGoAway(host_port_pair_); |
| 1170 // Verify that the port is different after the goaway. | 1102 // Verify that the port is different after the goaway. |
| 1171 EXPECT_NE(original_port, GetSourcePortForNewSession(host_port_pair_)); | 1103 EXPECT_NE(original_port, GetSourcePortForNewSession(host_port_pair_)); |
| 1172 // Since the previous session did not goaway we should see the original port. | 1104 // Since the previous session did not goaway we should see the original port. |
| 1173 EXPECT_EQ(original_port, GetSourcePortForNewSession(host_port_pair_)); | 1105 EXPECT_EQ(original_port, GetSourcePortForNewSession(host_port_pair_)); |
| 1174 } | 1106 } |
| 1175 | 1107 |
| 1176 TEST_P(QuicStreamFactoryTest, CloseAllSessions) { | 1108 TEST_P(QuicStreamFactoryTest, CloseAllSessions) { |
| 1177 Initialize(); | 1109 Initialize(); |
| 1178 MockRead reads[] = { | 1110 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1179 MockRead(ASYNC, 0, 0) // EOF | |
| 1180 }; | |
| 1181 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1111 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
| 1182 std::vector<MockWrite> writes; | 1112 std::vector<MockWrite> writes; |
| 1183 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1113 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
| 1184 DeterministicSocketData socket_data(reads, arraysize(reads), | 1114 SequencedSocketData socket_data(reads, arraysize(reads), |
| 1185 writes.empty() ? nullptr : &writes[0], | 1115 writes.empty() ? nullptr : &writes[0], |
| 1186 writes.size()); | 1116 writes.size()); |
| 1187 socket_factory_.AddSocketDataProvider(&socket_data); | 1117 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1188 socket_data.StopAfter(1); | |
| 1189 | 1118 |
| 1190 MockRead reads2[] = { | 1119 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1191 MockRead(ASYNC, 0, 0) // EOF | 1120 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
| 1192 }; | |
| 1193 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | |
| 1194 socket_factory_.AddSocketDataProvider(&socket_data2); | 1121 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1195 socket_data2.StopAfter(1); | |
| 1196 | 1122 |
| 1197 QuicStreamRequest request(factory_.get()); | 1123 QuicStreamRequest request(factory_.get()); |
| 1198 EXPECT_EQ(ERR_IO_PENDING, | 1124 EXPECT_EQ(ERR_IO_PENDING, |
| 1199 request.Request(host_port_pair_, privacy_mode_, | 1125 request.Request(host_port_pair_, privacy_mode_, |
| 1200 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1126 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1201 "GET", net_log_, callback_.callback())); | 1127 "GET", net_log_, callback_.callback())); |
| 1202 | 1128 |
| 1203 EXPECT_EQ(OK, callback_.WaitForResult()); | 1129 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 1204 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1130 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 1205 HttpRequestInfo request_info; | 1131 HttpRequestInfo request_info; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1227 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1153 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1228 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1154 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1229 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1155 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1230 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1156 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1231 } | 1157 } |
| 1232 | 1158 |
| 1233 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { | 1159 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { |
| 1234 close_sessions_on_ip_change_ = true; | 1160 close_sessions_on_ip_change_ = true; |
| 1235 Initialize(); | 1161 Initialize(); |
| 1236 | 1162 |
| 1237 MockRead reads[] = { | 1163 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1238 MockRead(ASYNC, 0, 0) // EOF | |
| 1239 }; | |
| 1240 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1164 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
| 1241 std::vector<MockWrite> writes; | 1165 std::vector<MockWrite> writes; |
| 1242 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1166 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
| 1243 DeterministicSocketData socket_data(reads, arraysize(reads), | 1167 SequencedSocketData socket_data(reads, arraysize(reads), |
| 1244 writes.empty() ? nullptr : &writes[0], | 1168 writes.empty() ? nullptr : &writes[0], |
| 1245 writes.size()); | 1169 writes.size()); |
| 1246 socket_factory_.AddSocketDataProvider(&socket_data); | 1170 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1247 socket_data.StopAfter(1); | |
| 1248 | 1171 |
| 1249 MockRead reads2[] = { | 1172 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1250 MockRead(ASYNC, 0, 0) // EOF | 1173 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
| 1251 }; | |
| 1252 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | |
| 1253 socket_factory_.AddSocketDataProvider(&socket_data2); | 1174 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1254 socket_data2.StopAfter(1); | |
| 1255 | 1175 |
| 1256 QuicStreamRequest request(factory_.get()); | 1176 QuicStreamRequest request(factory_.get()); |
| 1257 EXPECT_EQ(ERR_IO_PENDING, | 1177 EXPECT_EQ(ERR_IO_PENDING, |
| 1258 request.Request(host_port_pair_, privacy_mode_, | 1178 request.Request(host_port_pair_, privacy_mode_, |
| 1259 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1179 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1260 "GET", net_log_, callback_.callback())); | 1180 "GET", net_log_, callback_.callback())); |
| 1261 | 1181 |
| 1262 EXPECT_EQ(OK, callback_.WaitForResult()); | 1182 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 1263 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1183 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 1264 HttpRequestInfo request_info; | 1184 HttpRequestInfo request_info; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1285 stream.reset(); // Will reset stream 3. | 1205 stream.reset(); // Will reset stream 3. |
| 1286 | 1206 |
| 1287 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1207 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1288 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1208 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1289 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1209 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1290 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1210 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1291 } | 1211 } |
| 1292 | 1212 |
| 1293 TEST_P(QuicStreamFactoryTest, OnSSLConfigChanged) { | 1213 TEST_P(QuicStreamFactoryTest, OnSSLConfigChanged) { |
| 1294 Initialize(); | 1214 Initialize(); |
| 1295 MockRead reads[] = { | 1215 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1296 MockRead(ASYNC, 0, 0) // EOF | |
| 1297 }; | |
| 1298 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1216 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
| 1299 std::vector<MockWrite> writes; | 1217 std::vector<MockWrite> writes; |
| 1300 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1218 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
| 1301 DeterministicSocketData socket_data(reads, arraysize(reads), | 1219 SequencedSocketData socket_data(reads, arraysize(reads), |
| 1302 writes.empty() ? nullptr : &writes[0], | 1220 writes.empty() ? nullptr : &writes[0], |
| 1303 writes.size()); | 1221 writes.size()); |
| 1304 socket_factory_.AddSocketDataProvider(&socket_data); | 1222 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1305 socket_data.StopAfter(1); | |
| 1306 | 1223 |
| 1307 MockRead reads2[] = { | 1224 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1308 MockRead(ASYNC, 0, 0) // EOF | 1225 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
| 1309 }; | |
| 1310 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | |
| 1311 socket_factory_.AddSocketDataProvider(&socket_data2); | 1226 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1312 socket_data2.StopAfter(1); | |
| 1313 | 1227 |
| 1314 QuicStreamRequest request(factory_.get()); | 1228 QuicStreamRequest request(factory_.get()); |
| 1315 EXPECT_EQ(ERR_IO_PENDING, | 1229 EXPECT_EQ(ERR_IO_PENDING, |
| 1316 request.Request(host_port_pair_, privacy_mode_, | 1230 request.Request(host_port_pair_, privacy_mode_, |
| 1317 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1231 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1318 "GET", net_log_, callback_.callback())); | 1232 "GET", net_log_, callback_.callback())); |
| 1319 | 1233 |
| 1320 EXPECT_EQ(OK, callback_.WaitForResult()); | 1234 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 1321 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1235 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 1322 HttpRequestInfo request_info; | 1236 HttpRequestInfo request_info; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 1342 stream.reset(); // Will reset stream 3. | 1256 stream.reset(); // Will reset stream 3. |
| 1343 | 1257 |
| 1344 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1258 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1345 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1259 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1346 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1260 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1347 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1261 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1348 } | 1262 } |
| 1349 | 1263 |
| 1350 TEST_P(QuicStreamFactoryTest, OnCertAdded) { | 1264 TEST_P(QuicStreamFactoryTest, OnCertAdded) { |
| 1351 Initialize(); | 1265 Initialize(); |
| 1352 MockRead reads[] = { | 1266 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1353 MockRead(ASYNC, 0, 0) // EOF | |
| 1354 }; | |
| 1355 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1267 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
| 1356 std::vector<MockWrite> writes; | 1268 std::vector<MockWrite> writes; |
| 1357 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1269 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
| 1358 DeterministicSocketData socket_data(reads, arraysize(reads), | 1270 SequencedSocketData socket_data(reads, arraysize(reads), |
| 1359 writes.empty() ? nullptr : &writes[0], | 1271 writes.empty() ? nullptr : &writes[0], |
| 1360 writes.size()); | 1272 writes.size()); |
| 1361 socket_factory_.AddSocketDataProvider(&socket_data); | 1273 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1362 socket_data.StopAfter(1); | |
| 1363 | 1274 |
| 1364 MockRead reads2[] = { | 1275 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1365 MockRead(ASYNC, 0, 0) // EOF | 1276 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
| 1366 }; | |
| 1367 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | |
| 1368 socket_factory_.AddSocketDataProvider(&socket_data2); | 1277 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1369 socket_data2.StopAfter(1); | |
| 1370 | 1278 |
| 1371 QuicStreamRequest request(factory_.get()); | 1279 QuicStreamRequest request(factory_.get()); |
| 1372 EXPECT_EQ(ERR_IO_PENDING, | 1280 EXPECT_EQ(ERR_IO_PENDING, |
| 1373 request.Request(host_port_pair_, privacy_mode_, | 1281 request.Request(host_port_pair_, privacy_mode_, |
| 1374 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1282 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1375 "GET", net_log_, callback_.callback())); | 1283 "GET", net_log_, callback_.callback())); |
| 1376 | 1284 |
| 1377 EXPECT_EQ(OK, callback_.WaitForResult()); | 1285 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 1378 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1286 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 1379 HttpRequestInfo request_info; | 1287 HttpRequestInfo request_info; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1400 stream.reset(); // Will reset stream 3. | 1308 stream.reset(); // Will reset stream 3. |
| 1401 | 1309 |
| 1402 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1310 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1403 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1311 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1404 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1312 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1405 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1313 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1406 } | 1314 } |
| 1407 | 1315 |
| 1408 TEST_P(QuicStreamFactoryTest, OnCACertChanged) { | 1316 TEST_P(QuicStreamFactoryTest, OnCACertChanged) { |
| 1409 Initialize(); | 1317 Initialize(); |
| 1410 MockRead reads[] = { | 1318 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1411 MockRead(ASYNC, 0, 0) // EOF | |
| 1412 }; | |
| 1413 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1319 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
| 1414 std::vector<MockWrite> writes; | 1320 std::vector<MockWrite> writes; |
| 1415 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1321 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
| 1416 DeterministicSocketData socket_data(reads, arraysize(reads), | 1322 SequencedSocketData socket_data(reads, arraysize(reads), |
| 1417 writes.empty() ? nullptr : &writes[0], | 1323 writes.empty() ? nullptr : &writes[0], |
| 1418 writes.size()); | 1324 writes.size()); |
| 1419 socket_factory_.AddSocketDataProvider(&socket_data); | 1325 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1420 socket_data.StopAfter(1); | |
| 1421 | 1326 |
| 1422 MockRead reads2[] = { | 1327 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1423 MockRead(ASYNC, 0, 0) // EOF | 1328 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
| 1424 }; | |
| 1425 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | |
| 1426 socket_factory_.AddSocketDataProvider(&socket_data2); | 1329 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1427 socket_data2.StopAfter(1); | |
| 1428 | 1330 |
| 1429 QuicStreamRequest request(factory_.get()); | 1331 QuicStreamRequest request(factory_.get()); |
| 1430 EXPECT_EQ(ERR_IO_PENDING, | 1332 EXPECT_EQ(ERR_IO_PENDING, |
| 1431 request.Request(host_port_pair_, privacy_mode_, | 1333 request.Request(host_port_pair_, privacy_mode_, |
| 1432 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1334 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 1433 "GET", net_log_, callback_.callback())); | 1335 "GET", net_log_, callback_.callback())); |
| 1434 | 1336 |
| 1435 EXPECT_EQ(OK, callback_.WaitForResult()); | 1337 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 1436 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1338 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 1437 HttpRequestInfo request_info; | 1339 HttpRequestInfo request_info; |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1536 | 1438 |
| 1537 TEST_P(QuicStreamFactoryTest, RacingConnections) { | 1439 TEST_P(QuicStreamFactoryTest, RacingConnections) { |
| 1538 disable_disk_cache_ = false; | 1440 disable_disk_cache_ = false; |
| 1539 Initialize(); | 1441 Initialize(); |
| 1540 | 1442 |
| 1541 if (!GetParam().enable_connection_racing) | 1443 if (!GetParam().enable_connection_racing) |
| 1542 return; | 1444 return; |
| 1543 | 1445 |
| 1544 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 1446 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 1545 | 1447 |
| 1546 MockRead reads[] = { | 1448 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1547 MockRead(ASYNC, OK, 0) // EOF | 1449 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1548 }; | |
| 1549 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 1550 socket_factory_.AddSocketDataProvider(&socket_data); | 1450 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1551 socket_data.StopAfter(1); | |
| 1552 | 1451 |
| 1553 MockRead reads2[] = { | 1452 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1554 MockRead(ASYNC, 0, 0) // EOF | 1453 SequencedSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); |
| 1555 }; | |
| 1556 DeterministicSocketData socket_data2(reads2, arraysize(reads2), nullptr, 0); | |
| 1557 socket_factory_.AddSocketDataProvider(&socket_data2); | 1454 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1558 socket_data2.StopAfter(1); | |
| 1559 | 1455 |
| 1560 const AlternativeService alternative_service1(QUIC, host_port_pair_.host(), | 1456 const AlternativeService alternative_service1(QUIC, host_port_pair_.host(), |
| 1561 host_port_pair_.port()); | 1457 host_port_pair_.port()); |
| 1562 AlternativeServiceInfoVector alternative_service_info_vector; | 1458 AlternativeServiceInfoVector alternative_service_info_vector; |
| 1563 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 1459 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 1564 alternative_service_info_vector.push_back( | 1460 alternative_service_info_vector.push_back( |
| 1565 AlternativeServiceInfo(alternative_service1, 1.0, expiration)); | 1461 AlternativeServiceInfo(alternative_service1, 1.0, expiration)); |
| 1566 | 1462 |
| 1567 http_server_properties_.SetAlternativeServices( | 1463 http_server_properties_.SetAlternativeServices( |
| 1568 host_port_pair_, alternative_service_info_vector); | 1464 host_port_pair_, alternative_service_info_vector); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1590 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1486 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1591 EXPECT_EQ(0u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(), | 1487 EXPECT_EQ(0u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(), |
| 1592 server_id)); | 1488 server_id)); |
| 1593 } | 1489 } |
| 1594 | 1490 |
| 1595 TEST_P(QuicStreamFactoryTest, EnableNotLoadFromDiskCache) { | 1491 TEST_P(QuicStreamFactoryTest, EnableNotLoadFromDiskCache) { |
| 1596 disable_disk_cache_ = true; | 1492 disable_disk_cache_ = true; |
| 1597 Initialize(); | 1493 Initialize(); |
| 1598 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 1494 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 1599 | 1495 |
| 1600 MockRead reads[] = { | 1496 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1601 MockRead(ASYNC, OK, 0) // EOF | 1497 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1602 }; | |
| 1603 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 1604 socket_factory_.AddSocketDataProvider(&socket_data); | 1498 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1605 socket_data.StopAfter(1); | |
| 1606 | 1499 |
| 1607 crypto_client_stream_factory_.set_handshake_mode( | 1500 crypto_client_stream_factory_.set_handshake_mode( |
| 1608 MockCryptoClientStream::ZERO_RTT); | 1501 MockCryptoClientStream::ZERO_RTT); |
| 1609 host_resolver_.set_synchronous_mode(true); | 1502 host_resolver_.set_synchronous_mode(true); |
| 1610 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1503 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 1611 "192.168.0.1", ""); | 1504 "192.168.0.1", ""); |
| 1612 | 1505 |
| 1613 QuicStreamRequest request(factory_.get()); | 1506 QuicStreamRequest request(factory_.get()); |
| 1614 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 1507 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| 1615 /*cert_verify_flags=*/0, host_port_pair_.host(), | 1508 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1629 disable_disk_cache_ = false; | 1522 disable_disk_cache_ = false; |
| 1630 max_number_of_lossy_connections_ = 2; | 1523 max_number_of_lossy_connections_ = 2; |
| 1631 Initialize(); | 1524 Initialize(); |
| 1632 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 1525 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 1633 | 1526 |
| 1634 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 1527 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 1635 host_port_pair_.port())); | 1528 host_port_pair_.port())); |
| 1636 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 1529 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 1637 factory_.get(), host_port_pair_.port())); | 1530 factory_.get(), host_port_pair_.port())); |
| 1638 | 1531 |
| 1639 MockRead reads[] = { | 1532 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1640 MockRead(ASYNC, OK, 0) // EOF | 1533 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1641 }; | |
| 1642 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 1643 socket_factory_.AddSocketDataProvider(&socket_data); | 1534 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1644 socket_data.StopAfter(1); | |
| 1645 | 1535 |
| 1646 DeterministicSocketData socket_data2(nullptr, 0, nullptr, 0); | 1536 SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); |
| 1647 socket_factory_.AddSocketDataProvider(&socket_data2); | 1537 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1648 socket_data2.StopAfter(1); | |
| 1649 | 1538 |
| 1650 DeterministicSocketData socket_data3(nullptr, 0, nullptr, 0); | 1539 SequencedSocketData socket_data3(nullptr, 0, nullptr, 0); |
| 1651 socket_factory_.AddSocketDataProvider(&socket_data3); | 1540 socket_factory_.AddSocketDataProvider(&socket_data3); |
| 1652 socket_data3.StopAfter(1); | |
| 1653 | 1541 |
| 1654 DeterministicSocketData socket_data4(nullptr, 0, nullptr, 0); | 1542 SequencedSocketData socket_data4(nullptr, 0, nullptr, 0); |
| 1655 socket_factory_.AddSocketDataProvider(&socket_data4); | 1543 socket_factory_.AddSocketDataProvider(&socket_data4); |
| 1656 socket_data4.StopAfter(1); | |
| 1657 | 1544 |
| 1658 HostPortPair server2("mail.example.org", kDefaultServerPort); | 1545 HostPortPair server2("mail.example.org", kDefaultServerPort); |
| 1659 HostPortPair server3("docs.example.org", kDefaultServerPort); | 1546 HostPortPair server3("docs.example.org", kDefaultServerPort); |
| 1660 HostPortPair server4("images.example.org", kDefaultServerPort); | 1547 HostPortPair server4("images.example.org", kDefaultServerPort); |
| 1661 | 1548 |
| 1662 crypto_client_stream_factory_.set_handshake_mode( | 1549 crypto_client_stream_factory_.set_handshake_mode( |
| 1663 MockCryptoClientStream::ZERO_RTT); | 1550 MockCryptoClientStream::ZERO_RTT); |
| 1664 host_resolver_.set_synchronous_mode(true); | 1551 host_resolver_.set_synchronous_mode(true); |
| 1665 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1552 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 1666 "192.168.0.1", ""); | 1553 "192.168.0.1", ""); |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1802 disable_disk_cache_ = false; | 1689 disable_disk_cache_ = false; |
| 1803 threshold_public_resets_post_handshake_ = 2; | 1690 threshold_public_resets_post_handshake_ = 2; |
| 1804 Initialize(); | 1691 Initialize(); |
| 1805 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 1692 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 1806 | 1693 |
| 1807 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 1694 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 1808 host_port_pair_.port())); | 1695 host_port_pair_.port())); |
| 1809 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 1696 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 1810 factory_.get(), host_port_pair_.port())); | 1697 factory_.get(), host_port_pair_.port())); |
| 1811 | 1698 |
| 1812 MockRead reads[] = { | 1699 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1813 MockRead(ASYNC, OK, 0) // EOF | 1700 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1814 }; | |
| 1815 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 1816 socket_factory_.AddSocketDataProvider(&socket_data); | 1701 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1817 socket_data.StopAfter(1); | |
| 1818 | 1702 |
| 1819 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 1703 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 1820 socket_factory_.AddSocketDataProvider(&socket_data2); | 1704 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1821 socket_data2.StopAfter(1); | |
| 1822 | 1705 |
| 1823 HostPortPair server2("mail.example.org", kDefaultServerPort); | 1706 HostPortPair server2("mail.example.org", kDefaultServerPort); |
| 1824 | 1707 |
| 1825 crypto_client_stream_factory_.set_handshake_mode( | 1708 crypto_client_stream_factory_.set_handshake_mode( |
| 1826 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 1709 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 1827 host_resolver_.set_synchronous_mode(true); | 1710 host_resolver_.set_synchronous_mode(true); |
| 1828 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1711 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 1829 "192.168.0.1", ""); | 1712 "192.168.0.1", ""); |
| 1830 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1713 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 1831 | 1714 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1886 disable_disk_cache_ = true; | 1769 disable_disk_cache_ = true; |
| 1887 threshold_timeouts_with_open_streams_ = 2; | 1770 threshold_timeouts_with_open_streams_ = 2; |
| 1888 Initialize(); | 1771 Initialize(); |
| 1889 | 1772 |
| 1890 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 1773 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 1891 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 1774 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 1892 host_port_pair_.port())); | 1775 host_port_pair_.port())); |
| 1893 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 1776 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 1894 factory_.get(), host_port_pair_.port())); | 1777 factory_.get(), host_port_pair_.port())); |
| 1895 | 1778 |
| 1896 MockRead reads[] = { | 1779 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1897 MockRead(ASYNC, OK, 0) // EOF | 1780 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1898 }; | |
| 1899 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 1900 socket_factory_.AddSocketDataProvider(&socket_data); | 1781 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1901 socket_data.StopAfter(1); | |
| 1902 | 1782 |
| 1903 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 1783 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 1904 socket_factory_.AddSocketDataProvider(&socket_data2); | 1784 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1905 socket_data2.StopAfter(1); | |
| 1906 | 1785 |
| 1907 HostPortPair server2("mail.example.org", kDefaultServerPort); | 1786 HostPortPair server2("mail.example.org", kDefaultServerPort); |
| 1908 | 1787 |
| 1909 crypto_client_stream_factory_.set_handshake_mode( | 1788 crypto_client_stream_factory_.set_handshake_mode( |
| 1910 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 1789 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 1911 host_resolver_.set_synchronous_mode(true); | 1790 host_resolver_.set_synchronous_mode(true); |
| 1912 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1791 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 1913 "192.168.0.1", ""); | 1792 "192.168.0.1", ""); |
| 1914 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1793 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 1915 | 1794 |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1976 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) { | 1855 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) { |
| 1977 disable_disk_cache_ = true; | 1856 disable_disk_cache_ = true; |
| 1978 threshold_public_resets_post_handshake_ = 2; | 1857 threshold_public_resets_post_handshake_ = 2; |
| 1979 Initialize(); | 1858 Initialize(); |
| 1980 | 1859 |
| 1981 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 1860 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 1982 host_port_pair_.port())); | 1861 host_port_pair_.port())); |
| 1983 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 1862 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 1984 factory_.get(), host_port_pair_.port())); | 1863 factory_.get(), host_port_pair_.port())); |
| 1985 | 1864 |
| 1986 MockRead reads[] = { | 1865 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1987 MockRead(ASYNC, OK, 0) // EOF | 1866 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1988 }; | |
| 1989 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 1990 socket_factory_.AddSocketDataProvider(&socket_data); | 1867 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1991 socket_data.StopAfter(1); | |
| 1992 | 1868 |
| 1993 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 1869 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 1994 socket_factory_.AddSocketDataProvider(&socket_data2); | 1870 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1995 socket_data2.StopAfter(1); | |
| 1996 | 1871 |
| 1997 DeterministicSocketData socket_data3(reads, arraysize(reads), nullptr, 0); | 1872 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); |
| 1998 socket_factory_.AddSocketDataProvider(&socket_data3); | 1873 socket_factory_.AddSocketDataProvider(&socket_data3); |
| 1999 socket_data3.StopAfter(1); | |
| 2000 | 1874 |
| 2001 HostPortPair server2("mail.example.org", kDefaultServerPort); | 1875 HostPortPair server2("mail.example.org", kDefaultServerPort); |
| 2002 HostPortPair server3("docs.example.org", kDefaultServerPort); | 1876 HostPortPair server3("docs.example.org", kDefaultServerPort); |
| 2003 | 1877 |
| 2004 crypto_client_stream_factory_.set_handshake_mode( | 1878 crypto_client_stream_factory_.set_handshake_mode( |
| 2005 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 1879 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 2006 host_resolver_.set_synchronous_mode(true); | 1880 host_resolver_.set_synchronous_mode(true); |
| 2007 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1881 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 2008 "192.168.0.1", ""); | 1882 "192.168.0.1", ""); |
| 2009 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1883 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2091 disable_disk_cache_ = true; | 1965 disable_disk_cache_ = true; |
| 2092 threshold_public_resets_post_handshake_ = 2; | 1966 threshold_public_resets_post_handshake_ = 2; |
| 2093 Initialize(); | 1967 Initialize(); |
| 2094 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 1968 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 2095 | 1969 |
| 2096 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 1970 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 2097 host_port_pair_.port())); | 1971 host_port_pair_.port())); |
| 2098 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 1972 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 2099 factory_.get(), host_port_pair_.port())); | 1973 factory_.get(), host_port_pair_.port())); |
| 2100 | 1974 |
| 2101 MockRead reads[] = { | 1975 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 2102 MockRead(ASYNC, OK, 0) // EOF | 1976 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 2103 }; | |
| 2104 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 2105 socket_factory_.AddSocketDataProvider(&socket_data); | 1977 socket_factory_.AddSocketDataProvider(&socket_data); |
| 2106 socket_data.StopAfter(1); | |
| 2107 | 1978 |
| 2108 // DeterministicSocketData socket_data2(nullptr, 0, nullptr, 0); | 1979 // SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); |
| 2109 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 1980 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 2110 socket_factory_.AddSocketDataProvider(&socket_data2); | 1981 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 2111 socket_data2.StopAfter(1); | |
| 2112 | 1982 |
| 2113 DeterministicSocketData socket_data3(reads, arraysize(reads), nullptr, 0); | 1983 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); |
| 2114 socket_factory_.AddSocketDataProvider(&socket_data3); | 1984 socket_factory_.AddSocketDataProvider(&socket_data3); |
| 2115 socket_data3.StopAfter(1); | |
| 2116 | 1985 |
| 2117 HostPortPair server2("mail.example.org", kDefaultServerPort); | 1986 HostPortPair server2("mail.example.org", kDefaultServerPort); |
| 2118 HostPortPair server3("docs.example.org", kDefaultServerPort); | 1987 HostPortPair server3("docs.example.org", kDefaultServerPort); |
| 2119 | 1988 |
| 2120 crypto_client_stream_factory_.set_handshake_mode( | 1989 crypto_client_stream_factory_.set_handshake_mode( |
| 2121 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 1990 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 2122 host_resolver_.set_synchronous_mode(true); | 1991 host_resolver_.set_synchronous_mode(true); |
| 2123 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1992 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 2124 "192.168.0.1", ""); | 1993 "192.168.0.1", ""); |
| 2125 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1994 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2214 disable_disk_cache_ = true; | 2083 disable_disk_cache_ = true; |
| 2215 threshold_public_resets_post_handshake_ = 2; | 2084 threshold_public_resets_post_handshake_ = 2; |
| 2216 Initialize(); | 2085 Initialize(); |
| 2217 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 2086 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 2218 | 2087 |
| 2219 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 2088 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 2220 host_port_pair_.port())); | 2089 host_port_pair_.port())); |
| 2221 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 2090 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 2222 factory_.get(), host_port_pair_.port())); | 2091 factory_.get(), host_port_pair_.port())); |
| 2223 | 2092 |
| 2224 MockRead reads[] = { | 2093 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 2225 MockRead(ASYNC, OK, 0) // EOF | 2094 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 2226 }; | |
| 2227 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 2228 socket_factory_.AddSocketDataProvider(&socket_data); | 2095 socket_factory_.AddSocketDataProvider(&socket_data); |
| 2229 socket_data.StopAfter(1); | |
| 2230 | 2096 |
| 2231 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 2097 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 2232 socket_factory_.AddSocketDataProvider(&socket_data2); | 2098 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 2233 socket_data2.StopAfter(1); | |
| 2234 | 2099 |
| 2235 DeterministicSocketData socket_data3(reads, arraysize(reads), nullptr, 0); | 2100 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); |
| 2236 socket_factory_.AddSocketDataProvider(&socket_data3); | 2101 socket_factory_.AddSocketDataProvider(&socket_data3); |
| 2237 socket_data3.StopAfter(1); | |
| 2238 | 2102 |
| 2239 DeterministicSocketData socket_data4(reads, arraysize(reads), nullptr, 0); | 2103 SequencedSocketData socket_data4(reads, arraysize(reads), nullptr, 0); |
| 2240 socket_factory_.AddSocketDataProvider(&socket_data4); | 2104 socket_factory_.AddSocketDataProvider(&socket_data4); |
| 2241 socket_data4.StopAfter(1); | |
| 2242 | 2105 |
| 2243 HostPortPair server2("mail.example.org", kDefaultServerPort); | 2106 HostPortPair server2("mail.example.org", kDefaultServerPort); |
| 2244 HostPortPair server3("docs.example.org", kDefaultServerPort); | 2107 HostPortPair server3("docs.example.org", kDefaultServerPort); |
| 2245 HostPortPair server4("images.example.org", kDefaultServerPort); | 2108 HostPortPair server4("images.example.org", kDefaultServerPort); |
| 2246 | 2109 |
| 2247 crypto_client_stream_factory_.set_handshake_mode( | 2110 crypto_client_stream_factory_.set_handshake_mode( |
| 2248 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 2111 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 2249 host_resolver_.set_synchronous_mode(true); | 2112 host_resolver_.set_synchronous_mode(true); |
| 2250 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 2113 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 2251 "192.168.0.1", ""); | 2114 "192.168.0.1", ""); |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2354 disable_disk_cache_ = true; | 2217 disable_disk_cache_ = true; |
| 2355 threshold_public_resets_post_handshake_ = 2; | 2218 threshold_public_resets_post_handshake_ = 2; |
| 2356 Initialize(); | 2219 Initialize(); |
| 2357 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 2220 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 2358 | 2221 |
| 2359 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 2222 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 2360 host_port_pair_.port())); | 2223 host_port_pair_.port())); |
| 2361 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 2224 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 2362 factory_.get(), host_port_pair_.port())); | 2225 factory_.get(), host_port_pair_.port())); |
| 2363 | 2226 |
| 2364 MockRead reads[] = { | 2227 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 2365 MockRead(ASYNC, OK, 0) // EOF | 2228 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 2366 }; | |
| 2367 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 2368 socket_factory_.AddSocketDataProvider(&socket_data); | 2229 socket_factory_.AddSocketDataProvider(&socket_data); |
| 2369 socket_data.StopAfter(1); | |
| 2370 | 2230 |
| 2371 // DeterministicSocketData socket_data2(nullptr, 0, nullptr, 0); | 2231 // SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); |
| 2372 DeterministicSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 2232 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 2373 socket_factory_.AddSocketDataProvider(&socket_data2); | 2233 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 2374 socket_data2.StopAfter(1); | |
| 2375 | 2234 |
| 2376 DeterministicSocketData socket_data3(reads, arraysize(reads), nullptr, 0); | 2235 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); |
| 2377 socket_factory_.AddSocketDataProvider(&socket_data3); | 2236 socket_factory_.AddSocketDataProvider(&socket_data3); |
| 2378 socket_data3.StopAfter(1); | |
| 2379 | 2237 |
| 2380 DeterministicSocketData socket_data4(reads, arraysize(reads), nullptr, 0); | 2238 SequencedSocketData socket_data4(reads, arraysize(reads), nullptr, 0); |
| 2381 socket_factory_.AddSocketDataProvider(&socket_data4); | 2239 socket_factory_.AddSocketDataProvider(&socket_data4); |
| 2382 socket_data4.StopAfter(1); | |
| 2383 | 2240 |
| 2384 HostPortPair server2("mail.example.org", kDefaultServerPort); | 2241 HostPortPair server2("mail.example.org", kDefaultServerPort); |
| 2385 HostPortPair server3("docs.example.org", kDefaultServerPort); | 2242 HostPortPair server3("docs.example.org", kDefaultServerPort); |
| 2386 HostPortPair server4("images.example.org", kDefaultServerPort); | 2243 HostPortPair server4("images.example.org", kDefaultServerPort); |
| 2387 | 2244 |
| 2388 crypto_client_stream_factory_.set_handshake_mode( | 2245 crypto_client_stream_factory_.set_handshake_mode( |
| 2389 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 2246 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 2390 host_resolver_.set_synchronous_mode(true); | 2247 host_resolver_.set_synchronous_mode(true); |
| 2391 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 2248 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 2392 "192.168.0.1", ""); | 2249 "192.168.0.1", ""); |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2495 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); | 2352 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); |
| 2496 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); | 2353 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); |
| 2497 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); | 2354 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); |
| 2498 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); | 2355 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); |
| 2499 } | 2356 } |
| 2500 | 2357 |
| 2501 TEST_P(QuicStreamFactoryTest, EnableDelayTcpRace) { | 2358 TEST_P(QuicStreamFactoryTest, EnableDelayTcpRace) { |
| 2502 Initialize(); | 2359 Initialize(); |
| 2503 bool delay_tcp_race = QuicStreamFactoryPeer::GetDelayTcpRace(factory_.get()); | 2360 bool delay_tcp_race = QuicStreamFactoryPeer::GetDelayTcpRace(factory_.get()); |
| 2504 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), false); | 2361 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), false); |
| 2505 MockRead reads[] = { | 2362 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 2506 MockRead(ASYNC, OK, 0), | 2363 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 2507 }; | |
| 2508 DeterministicSocketData socket_data(reads, arraysize(reads), nullptr, 0); | |
| 2509 socket_factory_.AddSocketDataProvider(&socket_data); | 2364 socket_factory_.AddSocketDataProvider(&socket_data); |
| 2510 socket_data.StopAfter(1); | |
| 2511 | 2365 |
| 2512 ServerNetworkStats stats1; | 2366 ServerNetworkStats stats1; |
| 2513 stats1.srtt = base::TimeDelta::FromMicroseconds(10); | 2367 stats1.srtt = base::TimeDelta::FromMicroseconds(10); |
| 2514 http_server_properties_.SetServerNetworkStats(host_port_pair_, stats1); | 2368 http_server_properties_.SetServerNetworkStats(host_port_pair_, stats1); |
| 2515 | 2369 |
| 2516 crypto_client_stream_factory_.set_handshake_mode( | 2370 crypto_client_stream_factory_.set_handshake_mode( |
| 2517 MockCryptoClientStream::ZERO_RTT); | 2371 MockCryptoClientStream::ZERO_RTT); |
| 2518 host_resolver_.set_synchronous_mode(true); | 2372 host_resolver_.set_synchronous_mode(true); |
| 2519 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 2373 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 2520 "192.168.0.1", ""); | 2374 "192.168.0.1", ""); |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2644 TEST_P(QuicStreamFactoryTest, YieldAfterPackets) { | 2498 TEST_P(QuicStreamFactoryTest, YieldAfterPackets) { |
| 2645 Initialize(); | 2499 Initialize(); |
| 2646 QuicStreamFactoryPeer::SetYieldAfterPackets(factory_.get(), 0); | 2500 QuicStreamFactoryPeer::SetYieldAfterPackets(factory_.get(), 0); |
| 2647 | 2501 |
| 2648 scoped_ptr<QuicEncryptedPacket> close_packet( | 2502 scoped_ptr<QuicEncryptedPacket> close_packet( |
| 2649 ConstructConnectionClosePacket(0)); | 2503 ConstructConnectionClosePacket(0)); |
| 2650 vector<MockRead> reads; | 2504 vector<MockRead> reads; |
| 2651 reads.push_back( | 2505 reads.push_back( |
| 2652 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); | 2506 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); |
| 2653 reads.push_back(MockRead(ASYNC, OK, 1)); | 2507 reads.push_back(MockRead(ASYNC, OK, 1)); |
| 2654 DeterministicSocketData socket_data(&reads[0], reads.size(), nullptr, 0); | 2508 SequencedSocketData socket_data(&reads[0], reads.size(), nullptr, 0); |
| 2655 socket_factory_.AddSocketDataProvider(&socket_data); | 2509 socket_factory_.AddSocketDataProvider(&socket_data); |
| 2656 socket_data.StopAfter(1); | |
| 2657 | 2510 |
| 2658 crypto_client_stream_factory_.set_handshake_mode( | 2511 crypto_client_stream_factory_.set_handshake_mode( |
| 2659 MockCryptoClientStream::ZERO_RTT); | 2512 MockCryptoClientStream::ZERO_RTT); |
| 2660 host_resolver_.set_synchronous_mode(true); | 2513 host_resolver_.set_synchronous_mode(true); |
| 2661 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 2514 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 2662 "192.168.0.1", ""); | 2515 "192.168.0.1", ""); |
| 2663 | 2516 |
| 2664 // Set up the TaskObserver to verify QuicPacketReader::StartReading posts a | 2517 // Set up the TaskObserver to verify QuicPacketReader::StartReading posts a |
| 2665 // task. | 2518 // task. |
| 2666 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver?? | 2519 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver?? |
| (...skipping 23 matching lines...) Expand all Loading... |
| 2690 Initialize(); | 2543 Initialize(); |
| 2691 QuicStreamFactoryPeer::SetYieldAfterDuration( | 2544 QuicStreamFactoryPeer::SetYieldAfterDuration( |
| 2692 factory_.get(), QuicTime::Delta::FromMilliseconds(-1)); | 2545 factory_.get(), QuicTime::Delta::FromMilliseconds(-1)); |
| 2693 | 2546 |
| 2694 scoped_ptr<QuicEncryptedPacket> close_packet( | 2547 scoped_ptr<QuicEncryptedPacket> close_packet( |
| 2695 ConstructConnectionClosePacket(0)); | 2548 ConstructConnectionClosePacket(0)); |
| 2696 vector<MockRead> reads; | 2549 vector<MockRead> reads; |
| 2697 reads.push_back( | 2550 reads.push_back( |
| 2698 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); | 2551 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); |
| 2699 reads.push_back(MockRead(ASYNC, OK, 1)); | 2552 reads.push_back(MockRead(ASYNC, OK, 1)); |
| 2700 DeterministicSocketData socket_data(&reads[0], reads.size(), nullptr, 0); | 2553 SequencedSocketData socket_data(&reads[0], reads.size(), nullptr, 0); |
| 2701 socket_factory_.AddSocketDataProvider(&socket_data); | 2554 socket_factory_.AddSocketDataProvider(&socket_data); |
| 2702 socket_data.StopAfter(1); | |
| 2703 | 2555 |
| 2704 crypto_client_stream_factory_.set_handshake_mode( | 2556 crypto_client_stream_factory_.set_handshake_mode( |
| 2705 MockCryptoClientStream::ZERO_RTT); | 2557 MockCryptoClientStream::ZERO_RTT); |
| 2706 host_resolver_.set_synchronous_mode(true); | 2558 host_resolver_.set_synchronous_mode(true); |
| 2707 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 2559 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 2708 "192.168.0.1", ""); | 2560 "192.168.0.1", ""); |
| 2709 | 2561 |
| 2710 // Set up the TaskObserver to verify QuicPacketReader::StartReading posts a | 2562 // Set up the TaskObserver to verify QuicPacketReader::StartReading posts a |
| 2711 // task. | 2563 // task. |
| 2712 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver?? | 2564 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver?? |
| (...skipping 14 matching lines...) Expand all Loading... |
| 2727 EXPECT_EQ(1u, observer.executed_count()); | 2579 EXPECT_EQ(1u, observer.executed_count()); |
| 2728 | 2580 |
| 2729 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 2581 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 2730 EXPECT_TRUE(stream.get()); | 2582 EXPECT_TRUE(stream.get()); |
| 2731 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 2583 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 2732 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 2584 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 2733 } | 2585 } |
| 2734 | 2586 |
| 2735 } // namespace test | 2587 } // namespace test |
| 2736 } // namespace net | 2588 } // namespace net |
| OLD | NEW |