| 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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 | 42 |
| 43 using base::StringPiece; | 43 using base::StringPiece; |
| 44 using std::ostream; | 44 using std::ostream; |
| 45 using std::string; | 45 using std::string; |
| 46 using std::vector; | 46 using std::vector; |
| 47 | 47 |
| 48 namespace net { | 48 namespace net { |
| 49 namespace test { | 49 namespace test { |
| 50 | 50 |
| 51 namespace { | 51 namespace { |
| 52 const char kDefaultServerHostName[] = "www.google.com"; | 52 const char kDefaultServerHostName[] = "www.example.org"; |
| 53 const char kServer2HostName[] = "mail.example.org"; |
| 54 const char kServer3HostName[] = "docs.example.org"; |
| 55 const char kServer4HostName[] = "images.example.org"; |
| 53 const int kDefaultServerPort = 443; | 56 const int kDefaultServerPort = 443; |
| 54 | 57 |
| 55 // Run all tests with all the combinations of versions and | 58 // Run all tests with all the combinations of versions and |
| 56 // enable_connection_racing. | 59 // enable_connection_racing. |
| 57 struct TestParams { | 60 struct TestParams { |
| 58 TestParams(const QuicVersion version, bool enable_connection_racing) | 61 TestParams(const QuicVersion version, bool enable_connection_racing) |
| 59 : version(version), enable_connection_racing(enable_connection_racing) {} | 62 : version(version), enable_connection_racing(enable_connection_racing) {} |
| 60 | 63 |
| 61 friend ostream& operator<<(ostream& os, const TestParams& p) { | 64 friend ostream& operator<<(ostream& os, const TestParams& p) { |
| 62 os << "{ version: " << QuicVersionToString(p.version); | 65 os << "{ version: " << QuicVersionToString(p.version); |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 } | 244 } |
| 242 | 245 |
| 243 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket() { | 246 scoped_ptr<QuicEncryptedPacket> ConstructRstPacket() { |
| 244 QuicStreamId stream_id = kClientDataStreamId1; | 247 QuicStreamId stream_id = kClientDataStreamId1; |
| 245 return maker_.MakeRstPacket( | 248 return maker_.MakeRstPacket( |
| 246 1, true, stream_id, | 249 1, true, stream_id, |
| 247 AdjustErrorForVersion(QUIC_RST_ACKNOWLEDGEMENT, GetParam().version)); | 250 AdjustErrorForVersion(QUIC_RST_ACKNOWLEDGEMENT, GetParam().version)); |
| 248 } | 251 } |
| 249 | 252 |
| 250 static ProofVerifyDetailsChromium DefaultProofVerifyDetails() { | 253 static ProofVerifyDetailsChromium DefaultProofVerifyDetails() { |
| 251 // Load a certificate that is valid for www.example.org, mail.example.org, | 254 // Load a certificate that is valid for *.example.org |
| 252 // and mail.example.com. | |
| 253 scoped_refptr<X509Certificate> test_cert( | 255 scoped_refptr<X509Certificate> test_cert( |
| 254 ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem")); | 256 ImportCertFromFile(GetTestCertsDirectory(), "wildcard.pem")); |
| 255 EXPECT_TRUE(test_cert.get()); | 257 EXPECT_TRUE(test_cert.get()); |
| 256 ProofVerifyDetailsChromium verify_details; | 258 ProofVerifyDetailsChromium verify_details; |
| 257 verify_details.cert_verify_result.verified_cert = test_cert; | 259 verify_details.cert_verify_result.verified_cert = test_cert; |
| 258 verify_details.cert_verify_result.is_issued_by_known_root = true; | 260 verify_details.cert_verify_result.is_issued_by_known_root = true; |
| 259 return verify_details; | 261 return verify_details; |
| 260 } | 262 } |
| 261 | 263 |
| 262 void NotifyIPAddressChanged() { | 264 void NotifyIPAddressChanged() { |
| 263 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests(); | 265 NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests(); |
| 264 // For thread safety, the NCN queues tasks to do the actual notifications, | 266 // For thread safety, the NCN queues tasks to do the actual notifications, |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 bool close_sessions_on_ip_change_; | 306 bool close_sessions_on_ip_change_; |
| 305 int idle_connection_timeout_seconds_; | 307 int idle_connection_timeout_seconds_; |
| 306 }; | 308 }; |
| 307 | 309 |
| 308 INSTANTIATE_TEST_CASE_P(Version, | 310 INSTANTIATE_TEST_CASE_P(Version, |
| 309 QuicStreamFactoryTest, | 311 QuicStreamFactoryTest, |
| 310 ::testing::ValuesIn(GetTestParams())); | 312 ::testing::ValuesIn(GetTestParams())); |
| 311 | 313 |
| 312 TEST_P(QuicStreamFactoryTest, Create) { | 314 TEST_P(QuicStreamFactoryTest, Create) { |
| 313 Initialize(); | 315 Initialize(); |
| 316 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 317 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 314 | 318 |
| 315 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 319 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 316 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 320 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 317 socket_factory_.AddSocketDataProvider(&socket_data); | 321 socket_factory_.AddSocketDataProvider(&socket_data); |
| 318 | 322 |
| 319 QuicStreamRequest request(factory_.get()); | 323 QuicStreamRequest request(factory_.get()); |
| 320 EXPECT_EQ(ERR_IO_PENDING, | 324 EXPECT_EQ(ERR_IO_PENDING, |
| 321 request.Request(host_port_pair_, privacy_mode_, | 325 request.Request(host_port_pair_, privacy_mode_, |
| 322 /*cert_verify_flags=*/0, host_port_pair_.host(), | 326 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 323 "GET", net_log_, callback_.callback())); | 327 "GET", net_log_, callback_.callback())); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 339 "GET", net_log_, callback_.callback())); | 343 "GET", net_log_, callback_.callback())); |
| 340 stream = request2.ReleaseStream(); // Will reset stream 5. | 344 stream = request2.ReleaseStream(); // Will reset stream 5. |
| 341 stream.reset(); // Will reset stream 7. | 345 stream.reset(); // Will reset stream 7. |
| 342 | 346 |
| 343 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 347 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 344 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 348 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 345 } | 349 } |
| 346 | 350 |
| 347 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { | 351 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { |
| 348 Initialize(); | 352 Initialize(); |
| 353 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 354 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 349 | 355 |
| 350 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 356 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 351 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 357 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 352 socket_factory_.AddSocketDataProvider(&socket_data); | 358 socket_factory_.AddSocketDataProvider(&socket_data); |
| 353 | 359 |
| 354 crypto_client_stream_factory_.set_handshake_mode( | 360 crypto_client_stream_factory_.set_handshake_mode( |
| 355 MockCryptoClientStream::ZERO_RTT); | 361 MockCryptoClientStream::ZERO_RTT); |
| 356 host_resolver_.set_synchronous_mode(true); | 362 host_resolver_.set_synchronous_mode(true); |
| 357 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 363 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 358 "192.168.0.1", ""); | 364 "192.168.0.1", ""); |
| 359 | 365 |
| 360 QuicStreamRequest request(factory_.get()); | 366 QuicStreamRequest request(factory_.get()); |
| 361 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 367 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| 362 /*cert_verify_flags=*/0, host_port_pair_.host(), | 368 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 363 "GET", net_log_, callback_.callback())); | 369 "GET", net_log_, callback_.callback())); |
| 364 | 370 |
| 365 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 371 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 366 EXPECT_TRUE(stream.get()); | 372 EXPECT_TRUE(stream.get()); |
| 367 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 373 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 368 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 374 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 369 } | 375 } |
| 370 | 376 |
| 371 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { | 377 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { |
| 372 Initialize(); | 378 Initialize(); |
| 379 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 380 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 373 | 381 |
| 374 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 382 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 375 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 383 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 376 socket_factory_.AddSocketDataProvider(&socket_data); | 384 socket_factory_.AddSocketDataProvider(&socket_data); |
| 377 | 385 |
| 378 crypto_client_stream_factory_.set_handshake_mode( | 386 crypto_client_stream_factory_.set_handshake_mode( |
| 379 MockCryptoClientStream::ZERO_RTT); | 387 MockCryptoClientStream::ZERO_RTT); |
| 380 host_resolver_.set_synchronous_mode(true); | 388 host_resolver_.set_synchronous_mode(true); |
| 381 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 389 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 382 "192.168.0.1", ""); | 390 "192.168.0.1", ""); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 394 | 402 |
| 395 EXPECT_EQ(OK, callback_.WaitForResult()); | 403 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 396 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 404 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 397 EXPECT_TRUE(stream.get()); | 405 EXPECT_TRUE(stream.get()); |
| 398 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 406 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 399 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 407 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 400 } | 408 } |
| 401 | 409 |
| 402 TEST_P(QuicStreamFactoryTest, NoZeroRttForDifferentHost) { | 410 TEST_P(QuicStreamFactoryTest, NoZeroRttForDifferentHost) { |
| 403 Initialize(); | 411 Initialize(); |
| 412 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 413 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 404 | 414 |
| 405 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 415 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 406 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 416 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 407 socket_factory_.AddSocketDataProvider(&socket_data); | 417 socket_factory_.AddSocketDataProvider(&socket_data); |
| 408 | 418 |
| 409 crypto_client_stream_factory_.set_handshake_mode( | 419 crypto_client_stream_factory_.set_handshake_mode( |
| 410 MockCryptoClientStream::ZERO_RTT); | 420 MockCryptoClientStream::ZERO_RTT); |
| 411 host_resolver_.set_synchronous_mode(true); | 421 host_resolver_.set_synchronous_mode(true); |
| 412 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 422 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 413 "192.168.0.1", ""); | 423 "192.168.0.1", ""); |
| 414 | 424 |
| 415 QuicStreamRequest request(factory_.get()); | 425 QuicStreamRequest request(factory_.get()); |
| 416 int rv = request.Request( | 426 int rv = |
| 417 host_port_pair_, privacy_mode_, /*cert_verify_flags=*/0, | 427 request.Request(host_port_pair_, privacy_mode_, /*cert_verify_flags=*/0, |
| 418 "different.host.example.com", "GET", net_log_, callback_.callback()); | 428 kServer2HostName, "GET", net_log_, callback_.callback()); |
| 419 // If server and origin have different hostnames, then handshake confirmation | 429 // If server and origin have different hostnames, then handshake confirmation |
| 420 // should be required, so Request will return asynchronously. | 430 // should be required, so Request will return asynchronously. |
| 421 EXPECT_EQ(ERR_IO_PENDING, rv); | 431 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 422 // Confirm handshake. | 432 // Confirm handshake. |
| 423 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( | 433 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( |
| 424 QuicSession::HANDSHAKE_CONFIRMED); | 434 QuicSession::HANDSHAKE_CONFIRMED); |
| 425 EXPECT_EQ(OK, callback_.WaitForResult()); | 435 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 426 | 436 |
| 427 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 437 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 428 EXPECT_TRUE(stream.get()); | 438 EXPECT_TRUE(stream.get()); |
| 429 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 439 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 430 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 440 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 431 } | 441 } |
| 432 | 442 |
| 433 TEST_P(QuicStreamFactoryTest, GoAway) { | 443 TEST_P(QuicStreamFactoryTest, GoAway) { |
| 434 Initialize(); | 444 Initialize(); |
| 445 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 446 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 435 | 447 |
| 436 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 448 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 437 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 449 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 438 socket_factory_.AddSocketDataProvider(&socket_data); | 450 socket_factory_.AddSocketDataProvider(&socket_data); |
| 439 | 451 |
| 440 QuicStreamRequest request(factory_.get()); | 452 QuicStreamRequest request(factory_.get()); |
| 441 EXPECT_EQ(ERR_IO_PENDING, | 453 EXPECT_EQ(ERR_IO_PENDING, |
| 442 request.Request(host_port_pair_, privacy_mode_, | 454 request.Request(host_port_pair_, privacy_mode_, |
| 443 /*cert_verify_flags=*/0, host_port_pair_.host(), | 455 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 444 "GET", net_log_, callback_.callback())); | 456 "GET", net_log_, callback_.callback())); |
| 445 | 457 |
| 446 EXPECT_EQ(OK, callback_.WaitForResult()); | 458 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 447 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 459 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 448 EXPECT_TRUE(stream.get()); | 460 EXPECT_TRUE(stream.get()); |
| 449 | 461 |
| 450 QuicChromiumClientSession* session = | 462 QuicChromiumClientSession* session = |
| 451 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); | 463 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_); |
| 452 | 464 |
| 453 session->OnGoAway(QuicGoAwayFrame()); | 465 session->OnGoAway(QuicGoAwayFrame()); |
| 454 | 466 |
| 455 EXPECT_FALSE( | 467 EXPECT_FALSE( |
| 456 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); | 468 QuicStreamFactoryPeer::HasActiveSession(factory_.get(), host_port_pair_)); |
| 457 | 469 |
| 458 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 470 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 459 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 471 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 460 } | 472 } |
| 461 | 473 |
| 462 TEST_P(QuicStreamFactoryTest, Pooling) { | 474 TEST_P(QuicStreamFactoryTest, Pooling) { |
| 463 Initialize(); | 475 Initialize(); |
| 476 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 477 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 464 | 478 |
| 465 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 479 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 466 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 480 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 467 socket_factory_.AddSocketDataProvider(&socket_data); | 481 socket_factory_.AddSocketDataProvider(&socket_data); |
| 468 | 482 |
| 469 HostPortPair server2("mail.google.com", kDefaultServerPort); | 483 HostPortPair server2(kServer2HostName, kDefaultServerPort); |
| 470 host_resolver_.set_synchronous_mode(true); | 484 host_resolver_.set_synchronous_mode(true); |
| 471 host_resolver_.rules()->AddIPLiteralRule(kDefaultServerHostName, | 485 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 472 "192.168.0.1", ""); | 486 "192.168.0.1", ""); |
| 473 host_resolver_.rules()->AddIPLiteralRule("mail.google.com", "192.168.0.1", | 487 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 474 ""); | |
| 475 | 488 |
| 476 QuicStreamRequest request(factory_.get()); | 489 QuicStreamRequest request(factory_.get()); |
| 477 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 490 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| 478 /*cert_verify_flags=*/0, host_port_pair_.host(), | 491 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 479 "GET", net_log_, callback_.callback())); | 492 "GET", net_log_, callback_.callback())); |
| 480 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 493 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 481 EXPECT_TRUE(stream.get()); | 494 EXPECT_TRUE(stream.get()); |
| 482 | 495 |
| 483 TestCompletionCallback callback; | 496 TestCompletionCallback callback; |
| 484 QuicStreamRequest request2(factory_.get()); | 497 QuicStreamRequest request2(factory_.get()); |
| 485 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 498 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
| 486 /*cert_verify_flags=*/0, server2.host(), "GET", | 499 /*cert_verify_flags=*/0, server2.host(), "GET", |
| 487 net_log_, callback.callback())); | 500 net_log_, callback.callback())); |
| 488 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 501 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
| 489 EXPECT_TRUE(stream2.get()); | 502 EXPECT_TRUE(stream2.get()); |
| 490 | 503 |
| 491 EXPECT_EQ( | 504 EXPECT_EQ( |
| 492 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_), | 505 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_), |
| 493 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 506 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
| 494 | 507 |
| 495 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 508 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 496 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 509 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 497 } | 510 } |
| 498 | 511 |
| 499 TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) { | 512 TEST_P(QuicStreamFactoryTest, NoPoolingIfDisabled) { |
| 500 disable_connection_pooling_ = true; | 513 disable_connection_pooling_ = true; |
| 501 Initialize(); | 514 Initialize(); |
| 515 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 516 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 517 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 502 | 518 |
| 503 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 519 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 504 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | 520 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 505 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 521 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 506 socket_factory_.AddSocketDataProvider(&socket_data1); | 522 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 507 socket_factory_.AddSocketDataProvider(&socket_data2); | 523 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 508 | 524 |
| 509 HostPortPair server2("mail.google.com", kDefaultServerPort); | 525 HostPortPair server2(kServer2HostName, kDefaultServerPort); |
| 510 host_resolver_.set_synchronous_mode(true); | 526 host_resolver_.set_synchronous_mode(true); |
| 511 host_resolver_.rules()->AddIPLiteralRule(kDefaultServerHostName, | 527 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 512 "192.168.0.1", ""); | 528 "192.168.0.1", ""); |
| 513 host_resolver_.rules()->AddIPLiteralRule("mail.google.com", "192.168.0.1", | 529 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 514 ""); | |
| 515 | 530 |
| 516 QuicStreamRequest request(factory_.get()); | 531 QuicStreamRequest request(factory_.get()); |
| 517 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 532 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| 518 /*cert_verify_flags=*/0, host_port_pair_.host(), | 533 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 519 "GET", net_log_, callback_.callback())); | 534 "GET", net_log_, callback_.callback())); |
| 520 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 535 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 521 EXPECT_TRUE(stream.get()); | 536 EXPECT_TRUE(stream.get()); |
| 522 | 537 |
| 523 TestCompletionCallback callback; | 538 TestCompletionCallback callback; |
| 524 QuicStreamRequest request2(factory_.get()); | 539 QuicStreamRequest request2(factory_.get()); |
| 525 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 540 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
| 526 /*cert_verify_flags=*/0, server2.host(), "GET", | 541 /*cert_verify_flags=*/0, server2.host(), "GET", |
| 527 net_log_, callback.callback())); | 542 net_log_, callback.callback())); |
| 528 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); | 543 scoped_ptr<QuicHttpStream> stream2 = request2.ReleaseStream(); |
| 529 EXPECT_TRUE(stream2.get()); | 544 EXPECT_TRUE(stream2.get()); |
| 530 | 545 |
| 531 EXPECT_NE( | 546 EXPECT_NE( |
| 532 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_), | 547 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), host_port_pair_), |
| 533 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 548 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
| 534 | 549 |
| 535 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 550 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| 536 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 551 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
| 537 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 552 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 538 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 553 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 539 } | 554 } |
| 540 | 555 |
| 541 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { | 556 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { |
| 542 Initialize(); | 557 Initialize(); |
| 558 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 559 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 560 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 543 | 561 |
| 544 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 562 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 545 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | 563 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 546 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 564 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 547 socket_factory_.AddSocketDataProvider(&socket_data1); | 565 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 548 socket_factory_.AddSocketDataProvider(&socket_data2); | 566 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 549 | 567 |
| 550 HostPortPair server2("mail.google.com", kDefaultServerPort); | 568 HostPortPair server2(kServer2HostName, kDefaultServerPort); |
| 551 host_resolver_.set_synchronous_mode(true); | 569 host_resolver_.set_synchronous_mode(true); |
| 552 host_resolver_.rules()->AddIPLiteralRule(kDefaultServerHostName, | 570 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 553 "192.168.0.1", ""); | 571 "192.168.0.1", ""); |
| 554 host_resolver_.rules()->AddIPLiteralRule("mail.google.com", "192.168.0.1", | 572 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 555 ""); | |
| 556 | 573 |
| 557 QuicStreamRequest request(factory_.get()); | 574 QuicStreamRequest request(factory_.get()); |
| 558 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 575 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| 559 /*cert_verify_flags=*/0, host_port_pair_.host(), | 576 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| 560 "GET", net_log_, callback_.callback())); | 577 "GET", net_log_, callback_.callback())); |
| 561 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 578 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 562 EXPECT_TRUE(stream.get()); | 579 EXPECT_TRUE(stream.get()); |
| 563 | 580 |
| 564 TestCompletionCallback callback; | 581 TestCompletionCallback callback; |
| 565 QuicStreamRequest request2(factory_.get()); | 582 QuicStreamRequest request2(factory_.get()); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 587 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2)); | 604 EXPECT_TRUE(QuicStreamFactoryPeer::HasActiveSession(factory_.get(), server2)); |
| 588 | 605 |
| 589 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 606 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| 590 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 607 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
| 591 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 608 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 592 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 609 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 593 } | 610 } |
| 594 | 611 |
| 595 TEST_P(QuicStreamFactoryTest, HttpsPooling) { | 612 TEST_P(QuicStreamFactoryTest, HttpsPooling) { |
| 596 Initialize(); | 613 Initialize(); |
| 614 |
| 597 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 615 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 598 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 616 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 599 socket_factory_.AddSocketDataProvider(&socket_data); | 617 socket_factory_.AddSocketDataProvider(&socket_data); |
| 600 | 618 |
| 601 HostPortPair server1("www.example.org", 443); | 619 HostPortPair server1(kDefaultServerHostName, 443); |
| 602 HostPortPair server2("mail.example.org", 443); | 620 HostPortPair server2(kServer2HostName, 443); |
| 603 | 621 |
| 604 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 622 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 605 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 623 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 606 | 624 |
| 607 host_resolver_.set_synchronous_mode(true); | 625 host_resolver_.set_synchronous_mode(true); |
| 608 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 626 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
| 609 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 627 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 610 | 628 |
| 611 QuicStreamRequest request(factory_.get()); | 629 QuicStreamRequest request(factory_.get()); |
| 612 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, | 630 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, |
| (...skipping 20 matching lines...) Expand all Loading... |
| 633 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) { | 651 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingIfDisabled) { |
| 634 disable_connection_pooling_ = true; | 652 disable_connection_pooling_ = true; |
| 635 Initialize(); | 653 Initialize(); |
| 636 | 654 |
| 637 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 655 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 638 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | 656 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 639 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 657 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 640 socket_factory_.AddSocketDataProvider(&socket_data1); | 658 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 641 socket_factory_.AddSocketDataProvider(&socket_data2); | 659 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 642 | 660 |
| 643 HostPortPair server1("www.example.org", 443); | 661 HostPortPair server1(kDefaultServerHostName, 443); |
| 644 HostPortPair server2("mail.example.org", 443); | 662 HostPortPair server2(kServer2HostName, 443); |
| 645 | 663 |
| 646 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 664 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 647 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 665 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 666 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 648 | 667 |
| 649 host_resolver_.set_synchronous_mode(true); | 668 host_resolver_.set_synchronous_mode(true); |
| 650 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 669 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
| 651 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 670 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 652 | 671 |
| 653 QuicStreamRequest request(factory_.get()); | 672 QuicStreamRequest request(factory_.get()); |
| 654 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, | 673 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, |
| 655 /*cert_verify_flags=*/0, server1.host(), "GET", | 674 /*cert_verify_flags=*/0, server1.host(), "GET", |
| 656 net_log_, callback_.callback())); | 675 net_log_, callback_.callback())); |
| 657 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 676 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 675 } | 694 } |
| 676 | 695 |
| 677 class QuicAlternativeServiceCertificateValidationPooling | 696 class QuicAlternativeServiceCertificateValidationPooling |
| 678 : public QuicStreamFactoryTest { | 697 : public QuicStreamFactoryTest { |
| 679 public: | 698 public: |
| 680 void Run(bool valid) { | 699 void Run(bool valid) { |
| 681 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 700 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 682 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | 701 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 683 socket_factory_.AddSocketDataProvider(&socket_data1); | 702 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 684 | 703 |
| 685 HostPortPair server1("www.example.org", 443); | 704 HostPortPair server1(kDefaultServerHostName, 443); |
| 686 HostPortPair server2("mail.example.org", 443); | 705 HostPortPair server2(kServer2HostName, 443); |
| 687 | 706 |
| 688 std::string origin_host(valid ? "mail.example.org" : "invalid.example.org"); | 707 std::string origin_host(valid ? kServer2HostName : "invalid.example.com"); |
| 689 HostPortPair alternative("www.example.org", 443); | 708 HostPortPair alternative(kDefaultServerHostName, 443); |
| 690 | 709 |
| 691 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 710 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 692 bool common_name_fallback_used; | 711 bool common_name_fallback_used; |
| 693 EXPECT_EQ(valid, | 712 EXPECT_EQ(valid, |
| 694 verify_details.cert_verify_result.verified_cert->VerifyNameMatch( | 713 verify_details.cert_verify_result.verified_cert->VerifyNameMatch( |
| 695 origin_host, &common_name_fallback_used)); | 714 origin_host, &common_name_fallback_used)); |
| 696 EXPECT_TRUE( | 715 EXPECT_TRUE( |
| 697 verify_details.cert_verify_result.verified_cert->VerifyNameMatch( | 716 verify_details.cert_verify_result.verified_cert->VerifyNameMatch( |
| 698 alternative.host(), &common_name_fallback_used)); | 717 alternative.host(), &common_name_fallback_used)); |
| 699 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 718 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 744 Initialize(); | 763 Initialize(); |
| 745 Run(false); | 764 Run(false); |
| 746 } | 765 } |
| 747 | 766 |
| 748 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { | 767 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { |
| 749 Initialize(); | 768 Initialize(); |
| 750 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 769 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 751 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 770 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 752 socket_factory_.AddSocketDataProvider(&socket_data); | 771 socket_factory_.AddSocketDataProvider(&socket_data); |
| 753 | 772 |
| 754 HostPortPair server1("www.example.org", 443); | 773 HostPortPair server1(kDefaultServerHostName, 443); |
| 755 HostPortPair server2("mail.example.org", 443); | 774 HostPortPair server2(kServer2HostName, 443); |
| 756 uint8_t primary_pin = 1; | 775 uint8_t primary_pin = 1; |
| 757 uint8_t backup_pin = 2; | 776 uint8_t backup_pin = 2; |
| 758 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, | 777 test::AddPin(&transport_security_state_, kServer2HostName, primary_pin, |
| 759 backup_pin); | 778 backup_pin); |
| 760 | 779 |
| 761 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 780 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 762 verify_details.cert_verify_result.public_key_hashes.push_back( | 781 verify_details.cert_verify_result.public_key_hashes.push_back( |
| 763 test::GetTestHashValue(primary_pin)); | 782 test::GetTestHashValue(primary_pin)); |
| 764 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 783 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 765 | 784 |
| 766 host_resolver_.set_synchronous_mode(true); | 785 host_resolver_.set_synchronous_mode(true); |
| 767 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 786 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
| 768 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 787 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 792 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { | 811 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithMatchingPinsIfDisabled) { |
| 793 disable_connection_pooling_ = true; | 812 disable_connection_pooling_ = true; |
| 794 Initialize(); | 813 Initialize(); |
| 795 | 814 |
| 796 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 815 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 797 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | 816 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 798 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 817 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 799 socket_factory_.AddSocketDataProvider(&socket_data1); | 818 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 800 socket_factory_.AddSocketDataProvider(&socket_data2); | 819 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 801 | 820 |
| 802 HostPortPair server1("www.example.org", 443); | 821 HostPortPair server1(kDefaultServerHostName, 443); |
| 803 HostPortPair server2("mail.example.org", 443); | 822 HostPortPair server2(kServer2HostName, 443); |
| 804 uint8_t primary_pin = 1; | 823 uint8_t primary_pin = 1; |
| 805 uint8_t backup_pin = 2; | 824 uint8_t backup_pin = 2; |
| 806 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, | 825 test::AddPin(&transport_security_state_, kServer2HostName, primary_pin, |
| 807 backup_pin); | 826 backup_pin); |
| 808 | 827 |
| 809 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 828 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 810 verify_details.cert_verify_result.public_key_hashes.push_back( | 829 verify_details.cert_verify_result.public_key_hashes.push_back( |
| 811 test::GetTestHashValue(primary_pin)); | 830 test::GetTestHashValue(primary_pin)); |
| 812 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 831 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 832 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 813 | 833 |
| 814 host_resolver_.set_synchronous_mode(true); | 834 host_resolver_.set_synchronous_mode(true); |
| 815 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 835 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
| 816 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 836 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 817 | 837 |
| 818 QuicStreamRequest request(factory_.get()); | 838 QuicStreamRequest request(factory_.get()); |
| 819 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, | 839 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, |
| 820 /*cert_verify_flags=*/0, server1.host(), "GET", | 840 /*cert_verify_flags=*/0, server1.host(), "GET", |
| 821 net_log_, callback_.callback())); | 841 net_log_, callback_.callback())); |
| 822 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 842 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 840 } | 860 } |
| 841 | 861 |
| 842 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { | 862 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { |
| 843 Initialize(); | 863 Initialize(); |
| 844 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 864 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 845 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); | 865 SequencedSocketData socket_data1(reads, arraysize(reads), nullptr, 0); |
| 846 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 866 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 847 socket_factory_.AddSocketDataProvider(&socket_data1); | 867 socket_factory_.AddSocketDataProvider(&socket_data1); |
| 848 socket_factory_.AddSocketDataProvider(&socket_data2); | 868 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 849 | 869 |
| 850 HostPortPair server1("www.example.org", 443); | 870 HostPortPair server1(kDefaultServerHostName, 443); |
| 851 HostPortPair server2("mail.example.org", 443); | 871 HostPortPair server2(kServer2HostName, 443); |
| 852 uint8_t primary_pin = 1; | 872 uint8_t primary_pin = 1; |
| 853 uint8_t backup_pin = 2; | 873 uint8_t backup_pin = 2; |
| 854 uint8_t bad_pin = 3; | 874 uint8_t bad_pin = 3; |
| 855 test::AddPin(&transport_security_state_, "mail.example.org", primary_pin, | 875 test::AddPin(&transport_security_state_, kServer2HostName, primary_pin, |
| 856 backup_pin); | 876 backup_pin); |
| 857 | 877 |
| 858 ProofVerifyDetailsChromium verify_details1 = DefaultProofVerifyDetails(); | 878 ProofVerifyDetailsChromium verify_details1 = DefaultProofVerifyDetails(); |
| 859 verify_details1.cert_verify_result.public_key_hashes.push_back( | 879 verify_details1.cert_verify_result.public_key_hashes.push_back( |
| 860 test::GetTestHashValue(bad_pin)); | 880 test::GetTestHashValue(bad_pin)); |
| 861 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details1); | 881 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details1); |
| 862 | 882 |
| 863 ProofVerifyDetailsChromium verify_details2 = DefaultProofVerifyDetails(); | 883 ProofVerifyDetailsChromium verify_details2 = DefaultProofVerifyDetails(); |
| 864 verify_details2.cert_verify_result.public_key_hashes.push_back( | 884 verify_details2.cert_verify_result.public_key_hashes.push_back( |
| 865 test::GetTestHashValue(primary_pin)); | 885 test::GetTestHashValue(primary_pin)); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 888 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); | 908 QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server2)); |
| 889 | 909 |
| 890 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 910 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| 891 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 911 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
| 892 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 912 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 893 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 913 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 894 } | 914 } |
| 895 | 915 |
| 896 TEST_P(QuicStreamFactoryTest, Goaway) { | 916 TEST_P(QuicStreamFactoryTest, Goaway) { |
| 897 Initialize(); | 917 Initialize(); |
| 918 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 919 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 920 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 921 |
| 898 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 922 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 899 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 923 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 900 socket_factory_.AddSocketDataProvider(&socket_data); | 924 socket_factory_.AddSocketDataProvider(&socket_data); |
| 901 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 925 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 902 socket_factory_.AddSocketDataProvider(&socket_data2); | 926 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 903 | 927 |
| 904 QuicStreamRequest request(factory_.get()); | 928 QuicStreamRequest request(factory_.get()); |
| 905 EXPECT_EQ(ERR_IO_PENDING, | 929 EXPECT_EQ(ERR_IO_PENDING, |
| 906 request.Request(host_port_pair_, privacy_mode_, | 930 request.Request(host_port_pair_, privacy_mode_, |
| 907 /*cert_verify_flags=*/0, host_port_pair_.host(), | 931 /*cert_verify_flags=*/0, host_port_pair_.host(), |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 944 stream.reset(); | 968 stream.reset(); |
| 945 | 969 |
| 946 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 970 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 947 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 971 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 948 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 972 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 949 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 973 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 950 } | 974 } |
| 951 | 975 |
| 952 TEST_P(QuicStreamFactoryTest, MaxOpenStream) { | 976 TEST_P(QuicStreamFactoryTest, MaxOpenStream) { |
| 953 Initialize(); | 977 Initialize(); |
| 978 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 979 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 980 |
| 954 QuicStreamId stream_id = kClientDataStreamId1; | 981 QuicStreamId stream_id = kClientDataStreamId1; |
| 955 scoped_ptr<QuicEncryptedPacket> client_rst( | 982 scoped_ptr<QuicEncryptedPacket> client_rst( |
| 956 maker_.MakeRstPacket(1, true, stream_id, QUIC_STREAM_CANCELLED)); | 983 maker_.MakeRstPacket(1, true, stream_id, QUIC_STREAM_CANCELLED)); |
| 957 MockWrite writes[] = { | 984 MockWrite writes[] = { |
| 958 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 0), | 985 MockWrite(ASYNC, client_rst->data(), client_rst->length(), 0), |
| 959 }; | 986 }; |
| 960 scoped_ptr<QuicEncryptedPacket> server_rst( | 987 scoped_ptr<QuicEncryptedPacket> server_rst( |
| 961 maker_.MakeRstPacket(1, false, stream_id, QUIC_STREAM_CANCELLED)); | 988 maker_.MakeRstPacket(1, false, stream_id, QUIC_STREAM_CANCELLED)); |
| 962 MockRead reads[] = { | 989 MockRead reads[] = { |
| 963 MockRead(ASYNC, server_rst->data(), server_rst->length(), 1), | 990 MockRead(ASYNC, server_rst->data(), server_rst->length(), 1), |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1073 scoped_ptr<QuicHttpStream> stream(CreateFromSession(host_port_pair_)); | 1100 scoped_ptr<QuicHttpStream> stream(CreateFromSession(host_port_pair_)); |
| 1074 EXPECT_TRUE(stream.get()); | 1101 EXPECT_TRUE(stream.get()); |
| 1075 stream.reset(); | 1102 stream.reset(); |
| 1076 | 1103 |
| 1077 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1104 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1078 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1105 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1079 } | 1106 } |
| 1080 | 1107 |
| 1081 TEST_P(QuicStreamFactoryTest, CreateConsistentEphemeralPort) { | 1108 TEST_P(QuicStreamFactoryTest, CreateConsistentEphemeralPort) { |
| 1082 Initialize(); | 1109 Initialize(); |
| 1110 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 1111 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1112 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1113 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1083 | 1114 |
| 1084 // Sequentially connect to the default host, then another host, and then the | 1115 // Sequentially connect to the default host, then another host, and then the |
| 1085 // default host. Verify that the default host gets a consistent ephemeral | 1116 // default host. Verify that the default host gets a consistent ephemeral |
| 1086 // port, that is different from the other host's connection. | 1117 // port, that is different from the other host's connection. |
| 1087 | 1118 |
| 1088 std::string other_server_name = "other.google.com"; | 1119 std::string other_server_name = kServer2HostName; |
| 1089 EXPECT_NE(kDefaultServerHostName, other_server_name); | 1120 EXPECT_NE(kDefaultServerHostName, other_server_name); |
| 1090 HostPortPair host_port_pair2(other_server_name, kDefaultServerPort); | 1121 HostPortPair host_port_pair2(other_server_name, kDefaultServerPort); |
| 1091 | 1122 |
| 1092 int original_port = GetSourcePortForNewSession(host_port_pair_); | 1123 int original_port = GetSourcePortForNewSession(host_port_pair_); |
| 1093 EXPECT_NE(original_port, GetSourcePortForNewSession(host_port_pair2)); | 1124 EXPECT_NE(original_port, GetSourcePortForNewSession(host_port_pair2)); |
| 1094 EXPECT_EQ(original_port, GetSourcePortForNewSession(host_port_pair_)); | 1125 EXPECT_EQ(original_port, GetSourcePortForNewSession(host_port_pair_)); |
| 1095 } | 1126 } |
| 1096 | 1127 |
| 1097 TEST_P(QuicStreamFactoryTest, GoAwayDisablesConsistentEphemeralPort) { | 1128 TEST_P(QuicStreamFactoryTest, GoAwayDisablesConsistentEphemeralPort) { |
| 1098 Initialize(); | 1129 Initialize(); |
| 1130 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 1131 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1132 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1133 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1099 | 1134 |
| 1100 // Get a session to the host using the port suggester. | 1135 // Get a session to the host using the port suggester. |
| 1101 int original_port = GetSourcePortForNewSessionAndGoAway(host_port_pair_); | 1136 int original_port = GetSourcePortForNewSessionAndGoAway(host_port_pair_); |
| 1102 // Verify that the port is different after the goaway. | 1137 // Verify that the port is different after the goaway. |
| 1103 EXPECT_NE(original_port, GetSourcePortForNewSession(host_port_pair_)); | 1138 EXPECT_NE(original_port, GetSourcePortForNewSession(host_port_pair_)); |
| 1104 // Since the previous session did not goaway we should see the original port. | 1139 // Since the previous session did not goaway we should see the original port. |
| 1105 EXPECT_EQ(original_port, GetSourcePortForNewSession(host_port_pair_)); | 1140 EXPECT_EQ(original_port, GetSourcePortForNewSession(host_port_pair_)); |
| 1106 } | 1141 } |
| 1107 | 1142 |
| 1108 TEST_P(QuicStreamFactoryTest, CloseAllSessions) { | 1143 TEST_P(QuicStreamFactoryTest, CloseAllSessions) { |
| 1109 Initialize(); | 1144 Initialize(); |
| 1145 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 1146 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1147 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1148 |
| 1110 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 1149 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1111 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1150 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
| 1112 std::vector<MockWrite> writes; | 1151 std::vector<MockWrite> writes; |
| 1113 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1152 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
| 1114 SequencedSocketData socket_data(reads, arraysize(reads), | 1153 SequencedSocketData socket_data(reads, arraysize(reads), |
| 1115 writes.empty() ? nullptr : &writes[0], | 1154 writes.empty() ? nullptr : &writes[0], |
| 1116 writes.size()); | 1155 writes.size()); |
| 1117 socket_factory_.AddSocketDataProvider(&socket_data); | 1156 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1118 | 1157 |
| 1119 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 1158 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1152 | 1191 |
| 1153 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1192 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1154 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1193 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1155 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1194 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1156 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1195 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1157 } | 1196 } |
| 1158 | 1197 |
| 1159 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { | 1198 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { |
| 1160 close_sessions_on_ip_change_ = true; | 1199 close_sessions_on_ip_change_ = true; |
| 1161 Initialize(); | 1200 Initialize(); |
| 1201 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 1202 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1203 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1162 | 1204 |
| 1163 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 1205 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1164 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1206 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
| 1165 std::vector<MockWrite> writes; | 1207 std::vector<MockWrite> writes; |
| 1166 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1208 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
| 1167 SequencedSocketData socket_data(reads, arraysize(reads), | 1209 SequencedSocketData socket_data(reads, arraysize(reads), |
| 1168 writes.empty() ? nullptr : &writes[0], | 1210 writes.empty() ? nullptr : &writes[0], |
| 1169 writes.size()); | 1211 writes.size()); |
| 1170 socket_factory_.AddSocketDataProvider(&socket_data); | 1212 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1171 | 1213 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1205 stream.reset(); // Will reset stream 3. | 1247 stream.reset(); // Will reset stream 3. |
| 1206 | 1248 |
| 1207 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1249 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1208 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1250 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1209 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1251 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1210 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1252 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1211 } | 1253 } |
| 1212 | 1254 |
| 1213 TEST_P(QuicStreamFactoryTest, OnSSLConfigChanged) { | 1255 TEST_P(QuicStreamFactoryTest, OnSSLConfigChanged) { |
| 1214 Initialize(); | 1256 Initialize(); |
| 1257 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 1258 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1259 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1260 |
| 1215 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 1261 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1216 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1262 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
| 1217 std::vector<MockWrite> writes; | 1263 std::vector<MockWrite> writes; |
| 1218 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1264 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
| 1219 SequencedSocketData socket_data(reads, arraysize(reads), | 1265 SequencedSocketData socket_data(reads, arraysize(reads), |
| 1220 writes.empty() ? nullptr : &writes[0], | 1266 writes.empty() ? nullptr : &writes[0], |
| 1221 writes.size()); | 1267 writes.size()); |
| 1222 socket_factory_.AddSocketDataProvider(&socket_data); | 1268 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1223 | 1269 |
| 1224 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 1270 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1256 stream.reset(); // Will reset stream 3. | 1302 stream.reset(); // Will reset stream 3. |
| 1257 | 1303 |
| 1258 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1304 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1259 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1305 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1260 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1306 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1261 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1307 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1262 } | 1308 } |
| 1263 | 1309 |
| 1264 TEST_P(QuicStreamFactoryTest, OnCertAdded) { | 1310 TEST_P(QuicStreamFactoryTest, OnCertAdded) { |
| 1265 Initialize(); | 1311 Initialize(); |
| 1312 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 1313 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1314 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1315 |
| 1266 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 1316 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1267 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1317 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
| 1268 std::vector<MockWrite> writes; | 1318 std::vector<MockWrite> writes; |
| 1269 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1319 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
| 1270 SequencedSocketData socket_data(reads, arraysize(reads), | 1320 SequencedSocketData socket_data(reads, arraysize(reads), |
| 1271 writes.empty() ? nullptr : &writes[0], | 1321 writes.empty() ? nullptr : &writes[0], |
| 1272 writes.size()); | 1322 writes.size()); |
| 1273 socket_factory_.AddSocketDataProvider(&socket_data); | 1323 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1274 | 1324 |
| 1275 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 1325 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1308 stream.reset(); // Will reset stream 3. | 1358 stream.reset(); // Will reset stream 3. |
| 1309 | 1359 |
| 1310 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1360 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1311 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1361 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1312 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1362 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1313 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1363 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1314 } | 1364 } |
| 1315 | 1365 |
| 1316 TEST_P(QuicStreamFactoryTest, OnCACertChanged) { | 1366 TEST_P(QuicStreamFactoryTest, OnCACertChanged) { |
| 1317 Initialize(); | 1367 Initialize(); |
| 1368 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 1369 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1370 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1371 |
| 1318 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 1372 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1319 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); | 1373 scoped_ptr<QuicEncryptedPacket> rst(ConstructRstPacket()); |
| 1320 std::vector<MockWrite> writes; | 1374 std::vector<MockWrite> writes; |
| 1321 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); | 1375 writes.push_back(MockWrite(ASYNC, rst->data(), rst->length(), 1)); |
| 1322 SequencedSocketData socket_data(reads, arraysize(reads), | 1376 SequencedSocketData socket_data(reads, arraysize(reads), |
| 1323 writes.empty() ? nullptr : &writes[0], | 1377 writes.empty() ? nullptr : &writes[0], |
| 1324 writes.size()); | 1378 writes.size()); |
| 1325 socket_factory_.AddSocketDataProvider(&socket_data); | 1379 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1326 | 1380 |
| 1327 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 1381 MockRead reads2[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1360 stream.reset(); // Will reset stream 3. | 1414 stream.reset(); // Will reset stream 3. |
| 1361 | 1415 |
| 1362 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1416 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1363 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1417 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1364 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1418 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1365 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1419 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1366 } | 1420 } |
| 1367 | 1421 |
| 1368 TEST_P(QuicStreamFactoryTest, SharedCryptoConfig) { | 1422 TEST_P(QuicStreamFactoryTest, SharedCryptoConfig) { |
| 1369 Initialize(); | 1423 Initialize(); |
| 1424 |
| 1370 vector<string> cannoncial_suffixes; | 1425 vector<string> cannoncial_suffixes; |
| 1371 cannoncial_suffixes.push_back(string(".c.youtube.com")); | 1426 cannoncial_suffixes.push_back(string(".c.youtube.com")); |
| 1372 cannoncial_suffixes.push_back(string(".googlevideo.com")); | 1427 cannoncial_suffixes.push_back(string(".googlevideo.com")); |
| 1373 | 1428 |
| 1374 for (unsigned i = 0; i < cannoncial_suffixes.size(); ++i) { | 1429 for (unsigned i = 0; i < cannoncial_suffixes.size(); ++i) { |
| 1375 string r1_host_name("r1"); | 1430 string r1_host_name("r1"); |
| 1376 string r2_host_name("r2"); | 1431 string r2_host_name("r2"); |
| 1377 r1_host_name.append(cannoncial_suffixes[i]); | 1432 r1_host_name.append(cannoncial_suffixes[i]); |
| 1378 r2_host_name.append(cannoncial_suffixes[i]); | 1433 r2_host_name.append(cannoncial_suffixes[i]); |
| 1379 | 1434 |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1432 crypto_config->LookupOrCreate(server_id2); | 1487 crypto_config->LookupOrCreate(server_id2); |
| 1433 EXPECT_NE(cached1->source_address_token(), cached2->source_address_token()); | 1488 EXPECT_NE(cached1->source_address_token(), cached2->source_address_token()); |
| 1434 EXPECT_TRUE(cached2->source_address_token().empty()); | 1489 EXPECT_TRUE(cached2->source_address_token().empty()); |
| 1435 EXPECT_FALSE(cached2->proof_valid()); | 1490 EXPECT_FALSE(cached2->proof_valid()); |
| 1436 } | 1491 } |
| 1437 } | 1492 } |
| 1438 | 1493 |
| 1439 TEST_P(QuicStreamFactoryTest, RacingConnections) { | 1494 TEST_P(QuicStreamFactoryTest, RacingConnections) { |
| 1440 disable_disk_cache_ = false; | 1495 disable_disk_cache_ = false; |
| 1441 Initialize(); | 1496 Initialize(); |
| 1497 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 1498 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1442 | 1499 |
| 1443 if (!GetParam().enable_connection_racing) | 1500 if (!GetParam().enable_connection_racing) |
| 1444 return; | 1501 return; |
| 1445 | 1502 |
| 1446 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 1503 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 1447 | 1504 |
| 1448 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 1505 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1449 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 1506 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1450 socket_factory_.AddSocketDataProvider(&socket_data); | 1507 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1451 | 1508 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1484 EXPECT_TRUE(stream.get()); | 1541 EXPECT_TRUE(stream.get()); |
| 1485 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1542 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1486 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1543 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1487 EXPECT_EQ(0u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(), | 1544 EXPECT_EQ(0u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(), |
| 1488 server_id)); | 1545 server_id)); |
| 1489 } | 1546 } |
| 1490 | 1547 |
| 1491 TEST_P(QuicStreamFactoryTest, EnableNotLoadFromDiskCache) { | 1548 TEST_P(QuicStreamFactoryTest, EnableNotLoadFromDiskCache) { |
| 1492 disable_disk_cache_ = true; | 1549 disable_disk_cache_ = true; |
| 1493 Initialize(); | 1550 Initialize(); |
| 1551 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 1552 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1553 |
| 1494 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 1554 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 1495 | 1555 |
| 1496 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 1556 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1497 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 1557 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1498 socket_factory_.AddSocketDataProvider(&socket_data); | 1558 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1499 | 1559 |
| 1500 crypto_client_stream_factory_.set_handshake_mode( | 1560 crypto_client_stream_factory_.set_handshake_mode( |
| 1501 MockCryptoClientStream::ZERO_RTT); | 1561 MockCryptoClientStream::ZERO_RTT); |
| 1502 host_resolver_.set_synchronous_mode(true); | 1562 host_resolver_.set_synchronous_mode(true); |
| 1503 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1563 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1515 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 1575 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 1516 EXPECT_TRUE(stream.get()); | 1576 EXPECT_TRUE(stream.get()); |
| 1517 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1577 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1518 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1578 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1519 } | 1579 } |
| 1520 | 1580 |
| 1521 TEST_P(QuicStreamFactoryTest, BadPacketLoss) { | 1581 TEST_P(QuicStreamFactoryTest, BadPacketLoss) { |
| 1522 disable_disk_cache_ = false; | 1582 disable_disk_cache_ = false; |
| 1523 max_number_of_lossy_connections_ = 2; | 1583 max_number_of_lossy_connections_ = 2; |
| 1524 Initialize(); | 1584 Initialize(); |
| 1585 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 1586 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1587 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1588 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1589 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1590 |
| 1525 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 1591 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 1526 | 1592 |
| 1527 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 1593 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 1528 host_port_pair_.port())); | 1594 host_port_pair_.port())); |
| 1529 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 1595 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 1530 factory_.get(), host_port_pair_.port())); | 1596 factory_.get(), host_port_pair_.port())); |
| 1531 | 1597 |
| 1532 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 1598 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1533 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 1599 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1534 socket_factory_.AddSocketDataProvider(&socket_data); | 1600 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1535 | 1601 |
| 1536 SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); | 1602 SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); |
| 1537 socket_factory_.AddSocketDataProvider(&socket_data2); | 1603 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1538 | 1604 |
| 1539 SequencedSocketData socket_data3(nullptr, 0, nullptr, 0); | 1605 SequencedSocketData socket_data3(nullptr, 0, nullptr, 0); |
| 1540 socket_factory_.AddSocketDataProvider(&socket_data3); | 1606 socket_factory_.AddSocketDataProvider(&socket_data3); |
| 1541 | 1607 |
| 1542 SequencedSocketData socket_data4(nullptr, 0, nullptr, 0); | 1608 SequencedSocketData socket_data4(nullptr, 0, nullptr, 0); |
| 1543 socket_factory_.AddSocketDataProvider(&socket_data4); | 1609 socket_factory_.AddSocketDataProvider(&socket_data4); |
| 1544 | 1610 |
| 1545 HostPortPair server2("mail.example.org", kDefaultServerPort); | 1611 HostPortPair server2(kServer2HostName, kDefaultServerPort); |
| 1546 HostPortPair server3("docs.example.org", kDefaultServerPort); | 1612 HostPortPair server3(kServer3HostName, kDefaultServerPort); |
| 1547 HostPortPair server4("images.example.org", kDefaultServerPort); | 1613 HostPortPair server4(kServer4HostName, kDefaultServerPort); |
| 1548 | 1614 |
| 1549 crypto_client_stream_factory_.set_handshake_mode( | 1615 crypto_client_stream_factory_.set_handshake_mode( |
| 1550 MockCryptoClientStream::ZERO_RTT); | 1616 MockCryptoClientStream::ZERO_RTT); |
| 1551 host_resolver_.set_synchronous_mode(true); | 1617 host_resolver_.set_synchronous_mode(true); |
| 1552 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1618 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 1553 "192.168.0.1", ""); | 1619 "192.168.0.1", ""); |
| 1554 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1620 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 1555 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); | 1621 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); |
| 1556 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", ""); | 1622 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", ""); |
| 1557 | 1623 |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1682 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); | 1748 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); |
| 1683 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); | 1749 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); |
| 1684 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); | 1750 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); |
| 1685 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); | 1751 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); |
| 1686 } | 1752 } |
| 1687 | 1753 |
| 1688 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfTwo) { | 1754 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfTwo) { |
| 1689 disable_disk_cache_ = false; | 1755 disable_disk_cache_ = false; |
| 1690 threshold_public_resets_post_handshake_ = 2; | 1756 threshold_public_resets_post_handshake_ = 2; |
| 1691 Initialize(); | 1757 Initialize(); |
| 1758 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 1759 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1760 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1692 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 1761 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 1693 | 1762 |
| 1694 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 1763 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 1695 host_port_pair_.port())); | 1764 host_port_pair_.port())); |
| 1696 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 1765 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 1697 factory_.get(), host_port_pair_.port())); | 1766 factory_.get(), host_port_pair_.port())); |
| 1698 | 1767 |
| 1699 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 1768 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1700 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 1769 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1701 socket_factory_.AddSocketDataProvider(&socket_data); | 1770 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1702 | 1771 |
| 1703 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 1772 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 1704 socket_factory_.AddSocketDataProvider(&socket_data2); | 1773 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1705 | 1774 |
| 1706 HostPortPair server2("mail.example.org", kDefaultServerPort); | 1775 HostPortPair server2(kServer2HostName, kDefaultServerPort); |
| 1707 | 1776 |
| 1708 crypto_client_stream_factory_.set_handshake_mode( | 1777 crypto_client_stream_factory_.set_handshake_mode( |
| 1709 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 1778 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 1710 host_resolver_.set_synchronous_mode(true); | 1779 host_resolver_.set_synchronous_mode(true); |
| 1711 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1780 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 1712 "192.168.0.1", ""); | 1781 "192.168.0.1", ""); |
| 1713 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1782 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 1714 | 1783 |
| 1715 QuicStreamRequest request(factory_.get()); | 1784 QuicStreamRequest request(factory_.get()); |
| 1716 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 1785 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1762 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1831 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1763 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1832 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1764 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1833 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1765 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1834 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1766 } | 1835 } |
| 1767 | 1836 |
| 1768 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfTwo) { | 1837 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfTwo) { |
| 1769 disable_disk_cache_ = true; | 1838 disable_disk_cache_ = true; |
| 1770 threshold_timeouts_with_open_streams_ = 2; | 1839 threshold_timeouts_with_open_streams_ = 2; |
| 1771 Initialize(); | 1840 Initialize(); |
| 1841 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 1842 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1843 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1772 | 1844 |
| 1773 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 1845 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 1774 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 1846 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 1775 host_port_pair_.port())); | 1847 host_port_pair_.port())); |
| 1776 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 1848 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 1777 factory_.get(), host_port_pair_.port())); | 1849 factory_.get(), host_port_pair_.port())); |
| 1778 | 1850 |
| 1779 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 1851 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1780 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 1852 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1781 socket_factory_.AddSocketDataProvider(&socket_data); | 1853 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1782 | 1854 |
| 1783 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 1855 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 1784 socket_factory_.AddSocketDataProvider(&socket_data2); | 1856 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1785 | 1857 |
| 1786 HostPortPair server2("mail.example.org", kDefaultServerPort); | 1858 HostPortPair server2(kServer2HostName, kDefaultServerPort); |
| 1787 | 1859 |
| 1788 crypto_client_stream_factory_.set_handshake_mode( | 1860 crypto_client_stream_factory_.set_handshake_mode( |
| 1789 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 1861 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 1790 host_resolver_.set_synchronous_mode(true); | 1862 host_resolver_.set_synchronous_mode(true); |
| 1791 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1863 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 1792 "192.168.0.1", ""); | 1864 "192.168.0.1", ""); |
| 1793 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1865 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 1794 | 1866 |
| 1795 QuicStreamRequest request(factory_.get()); | 1867 QuicStreamRequest request(factory_.get()); |
| 1796 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 1868 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1849 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1921 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1850 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1922 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1851 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1923 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1852 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1924 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1853 } | 1925 } |
| 1854 | 1926 |
| 1855 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) { | 1927 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfThree) { |
| 1856 disable_disk_cache_ = true; | 1928 disable_disk_cache_ = true; |
| 1857 threshold_public_resets_post_handshake_ = 2; | 1929 threshold_public_resets_post_handshake_ = 2; |
| 1858 Initialize(); | 1930 Initialize(); |
| 1931 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 1932 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1933 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1934 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1859 | 1935 |
| 1860 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 1936 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 1861 host_port_pair_.port())); | 1937 host_port_pair_.port())); |
| 1862 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 1938 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 1863 factory_.get(), host_port_pair_.port())); | 1939 factory_.get(), host_port_pair_.port())); |
| 1864 | 1940 |
| 1865 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 1941 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1866 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 1942 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1867 socket_factory_.AddSocketDataProvider(&socket_data); | 1943 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1868 | 1944 |
| 1869 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 1945 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 1870 socket_factory_.AddSocketDataProvider(&socket_data2); | 1946 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1871 | 1947 |
| 1872 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); | 1948 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); |
| 1873 socket_factory_.AddSocketDataProvider(&socket_data3); | 1949 socket_factory_.AddSocketDataProvider(&socket_data3); |
| 1874 | 1950 |
| 1875 HostPortPair server2("mail.example.org", kDefaultServerPort); | 1951 HostPortPair server2(kServer2HostName, kDefaultServerPort); |
| 1876 HostPortPair server3("docs.example.org", kDefaultServerPort); | 1952 HostPortPair server3(kServer3HostName, kDefaultServerPort); |
| 1877 | 1953 |
| 1878 crypto_client_stream_factory_.set_handshake_mode( | 1954 crypto_client_stream_factory_.set_handshake_mode( |
| 1879 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 1955 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 1880 host_resolver_.set_synchronous_mode(true); | 1956 host_resolver_.set_synchronous_mode(true); |
| 1881 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1957 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 1882 "192.168.0.1", ""); | 1958 "192.168.0.1", ""); |
| 1883 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1959 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 1884 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); | 1960 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); |
| 1885 | 1961 |
| 1886 // Test first and third out of three public reset post handshakes. | 1962 // Test first and third out of three public reset post handshakes. |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1958 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 2034 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1959 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 2035 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1960 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); | 2036 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); |
| 1961 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); | 2037 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); |
| 1962 } | 2038 } |
| 1963 | 2039 |
| 1964 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfThree) { | 2040 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfThree) { |
| 1965 disable_disk_cache_ = true; | 2041 disable_disk_cache_ = true; |
| 1966 threshold_public_resets_post_handshake_ = 2; | 2042 threshold_public_resets_post_handshake_ = 2; |
| 1967 Initialize(); | 2043 Initialize(); |
| 2044 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 2045 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 2046 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 2047 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1968 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 2048 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 1969 | 2049 |
| 1970 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 2050 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 1971 host_port_pair_.port())); | 2051 host_port_pair_.port())); |
| 1972 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 2052 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 1973 factory_.get(), host_port_pair_.port())); | 2053 factory_.get(), host_port_pair_.port())); |
| 1974 | 2054 |
| 1975 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 2055 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 1976 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 2056 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 1977 socket_factory_.AddSocketDataProvider(&socket_data); | 2057 socket_factory_.AddSocketDataProvider(&socket_data); |
| 1978 | 2058 |
| 1979 // SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); | 2059 // SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); |
| 1980 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 2060 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 1981 socket_factory_.AddSocketDataProvider(&socket_data2); | 2061 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 1982 | 2062 |
| 1983 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); | 2063 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); |
| 1984 socket_factory_.AddSocketDataProvider(&socket_data3); | 2064 socket_factory_.AddSocketDataProvider(&socket_data3); |
| 1985 | 2065 |
| 1986 HostPortPair server2("mail.example.org", kDefaultServerPort); | 2066 HostPortPair server2(kServer2HostName, kDefaultServerPort); |
| 1987 HostPortPair server3("docs.example.org", kDefaultServerPort); | 2067 HostPortPair server3(kServer3HostName, kDefaultServerPort); |
| 1988 | 2068 |
| 1989 crypto_client_stream_factory_.set_handshake_mode( | 2069 crypto_client_stream_factory_.set_handshake_mode( |
| 1990 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 2070 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 1991 host_resolver_.set_synchronous_mode(true); | 2071 host_resolver_.set_synchronous_mode(true); |
| 1992 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 2072 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 1993 "192.168.0.1", ""); | 2073 "192.168.0.1", ""); |
| 1994 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 2074 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 1995 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); | 2075 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); |
| 1996 | 2076 |
| 1997 // Test first and third out of three timeouts with open streams. | 2077 // Test first and third out of three timeouts with open streams. |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2076 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 2156 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 2077 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 2157 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 2078 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); | 2158 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); |
| 2079 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); | 2159 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); |
| 2080 } | 2160 } |
| 2081 | 2161 |
| 2082 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfFour) { | 2162 TEST_P(QuicStreamFactoryTest, PublicResetPostHandshakeTwoOfFour) { |
| 2083 disable_disk_cache_ = true; | 2163 disable_disk_cache_ = true; |
| 2084 threshold_public_resets_post_handshake_ = 2; | 2164 threshold_public_resets_post_handshake_ = 2; |
| 2085 Initialize(); | 2165 Initialize(); |
| 2166 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 2167 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 2168 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 2169 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 2170 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 2086 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 2171 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 2087 | 2172 |
| 2088 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 2173 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 2089 host_port_pair_.port())); | 2174 host_port_pair_.port())); |
| 2090 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 2175 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 2091 factory_.get(), host_port_pair_.port())); | 2176 factory_.get(), host_port_pair_.port())); |
| 2092 | 2177 |
| 2093 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 2178 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 2094 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 2179 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 2095 socket_factory_.AddSocketDataProvider(&socket_data); | 2180 socket_factory_.AddSocketDataProvider(&socket_data); |
| 2096 | 2181 |
| 2097 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 2182 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 2098 socket_factory_.AddSocketDataProvider(&socket_data2); | 2183 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 2099 | 2184 |
| 2100 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); | 2185 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); |
| 2101 socket_factory_.AddSocketDataProvider(&socket_data3); | 2186 socket_factory_.AddSocketDataProvider(&socket_data3); |
| 2102 | 2187 |
| 2103 SequencedSocketData socket_data4(reads, arraysize(reads), nullptr, 0); | 2188 SequencedSocketData socket_data4(reads, arraysize(reads), nullptr, 0); |
| 2104 socket_factory_.AddSocketDataProvider(&socket_data4); | 2189 socket_factory_.AddSocketDataProvider(&socket_data4); |
| 2105 | 2190 |
| 2106 HostPortPair server2("mail.example.org", kDefaultServerPort); | 2191 HostPortPair server2(kServer2HostName, kDefaultServerPort); |
| 2107 HostPortPair server3("docs.example.org", kDefaultServerPort); | 2192 HostPortPair server3(kServer3HostName, kDefaultServerPort); |
| 2108 HostPortPair server4("images.example.org", kDefaultServerPort); | 2193 HostPortPair server4(kServer4HostName, kDefaultServerPort); |
| 2109 | 2194 |
| 2110 crypto_client_stream_factory_.set_handshake_mode( | 2195 crypto_client_stream_factory_.set_handshake_mode( |
| 2111 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 2196 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 2112 host_resolver_.set_synchronous_mode(true); | 2197 host_resolver_.set_synchronous_mode(true); |
| 2113 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 2198 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 2114 "192.168.0.1", ""); | 2199 "192.168.0.1", ""); |
| 2115 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 2200 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 2116 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); | 2201 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); |
| 2117 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", ""); | 2202 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", ""); |
| 2118 | 2203 |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2210 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); | 2295 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); |
| 2211 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); | 2296 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); |
| 2212 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); | 2297 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); |
| 2213 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); | 2298 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); |
| 2214 } | 2299 } |
| 2215 | 2300 |
| 2216 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfFour) { | 2301 TEST_P(QuicStreamFactoryTest, TimeoutsWithOpenStreamsTwoOfFour) { |
| 2217 disable_disk_cache_ = true; | 2302 disable_disk_cache_ = true; |
| 2218 threshold_public_resets_post_handshake_ = 2; | 2303 threshold_public_resets_post_handshake_ = 2; |
| 2219 Initialize(); | 2304 Initialize(); |
| 2305 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 2306 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 2307 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 2308 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 2309 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 2220 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 2310 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 2221 | 2311 |
| 2222 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), | 2312 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get(), |
| 2223 host_port_pair_.port())); | 2313 host_port_pair_.port())); |
| 2224 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( | 2314 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumberOfLossyConnections( |
| 2225 factory_.get(), host_port_pair_.port())); | 2315 factory_.get(), host_port_pair_.port())); |
| 2226 | 2316 |
| 2227 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 2317 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 2228 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 2318 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 2229 socket_factory_.AddSocketDataProvider(&socket_data); | 2319 socket_factory_.AddSocketDataProvider(&socket_data); |
| 2230 | 2320 |
| 2231 // SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); | 2321 // SequencedSocketData socket_data2(nullptr, 0, nullptr, 0); |
| 2232 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); | 2322 SequencedSocketData socket_data2(reads, arraysize(reads), nullptr, 0); |
| 2233 socket_factory_.AddSocketDataProvider(&socket_data2); | 2323 socket_factory_.AddSocketDataProvider(&socket_data2); |
| 2234 | 2324 |
| 2235 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); | 2325 SequencedSocketData socket_data3(reads, arraysize(reads), nullptr, 0); |
| 2236 socket_factory_.AddSocketDataProvider(&socket_data3); | 2326 socket_factory_.AddSocketDataProvider(&socket_data3); |
| 2237 | 2327 |
| 2238 SequencedSocketData socket_data4(reads, arraysize(reads), nullptr, 0); | 2328 SequencedSocketData socket_data4(reads, arraysize(reads), nullptr, 0); |
| 2239 socket_factory_.AddSocketDataProvider(&socket_data4); | 2329 socket_factory_.AddSocketDataProvider(&socket_data4); |
| 2240 | 2330 |
| 2241 HostPortPair server2("mail.example.org", kDefaultServerPort); | 2331 HostPortPair server2(kServer2HostName, kDefaultServerPort); |
| 2242 HostPortPair server3("docs.example.org", kDefaultServerPort); | 2332 HostPortPair server3(kServer3HostName, kDefaultServerPort); |
| 2243 HostPortPair server4("images.example.org", kDefaultServerPort); | 2333 HostPortPair server4(kServer4HostName, kDefaultServerPort); |
| 2244 | 2334 |
| 2245 crypto_client_stream_factory_.set_handshake_mode( | 2335 crypto_client_stream_factory_.set_handshake_mode( |
| 2246 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 2336 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 2247 host_resolver_.set_synchronous_mode(true); | 2337 host_resolver_.set_synchronous_mode(true); |
| 2248 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 2338 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 2249 "192.168.0.1", ""); | 2339 "192.168.0.1", ""); |
| 2250 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 2340 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 2251 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); | 2341 host_resolver_.rules()->AddIPLiteralRule(server3.host(), "192.168.0.1", ""); |
| 2252 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", ""); | 2342 host_resolver_.rules()->AddIPLiteralRule(server4.host(), "192.168.0.1", ""); |
| 2253 | 2343 |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2350 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 2440 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 2351 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 2441 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 2352 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); | 2442 EXPECT_TRUE(socket_data3.AllReadDataConsumed()); |
| 2353 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); | 2443 EXPECT_TRUE(socket_data3.AllWriteDataConsumed()); |
| 2354 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); | 2444 EXPECT_TRUE(socket_data4.AllReadDataConsumed()); |
| 2355 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); | 2445 EXPECT_TRUE(socket_data4.AllWriteDataConsumed()); |
| 2356 } | 2446 } |
| 2357 | 2447 |
| 2358 TEST_P(QuicStreamFactoryTest, EnableDelayTcpRace) { | 2448 TEST_P(QuicStreamFactoryTest, EnableDelayTcpRace) { |
| 2359 Initialize(); | 2449 Initialize(); |
| 2450 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 2451 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 2360 bool delay_tcp_race = QuicStreamFactoryPeer::GetDelayTcpRace(factory_.get()); | 2452 bool delay_tcp_race = QuicStreamFactoryPeer::GetDelayTcpRace(factory_.get()); |
| 2361 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), false); | 2453 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), false); |
| 2362 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; | 2454 MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING, 0)}; |
| 2363 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); | 2455 SequencedSocketData socket_data(reads, arraysize(reads), nullptr, 0); |
| 2364 socket_factory_.AddSocketDataProvider(&socket_data); | 2456 socket_factory_.AddSocketDataProvider(&socket_data); |
| 2365 | 2457 |
| 2366 ServerNetworkStats stats1; | 2458 ServerNetworkStats stats1; |
| 2367 stats1.srtt = base::TimeDelta::FromMicroseconds(10); | 2459 stats1.srtt = base::TimeDelta::FromMicroseconds(10); |
| 2368 http_server_properties_.SetServerNetworkStats(host_port_pair_, stats1); | 2460 http_server_properties_.SetServerNetworkStats(host_port_pair_, stats1); |
| 2369 | 2461 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 2400 EXPECT_TRUE(stream.get()); | 2492 EXPECT_TRUE(stream.get()); |
| 2401 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 2493 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 2402 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 2494 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 2403 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), delay_tcp_race); | 2495 QuicStreamFactoryPeer::SetDelayTcpRace(factory_.get(), delay_tcp_race); |
| 2404 } | 2496 } |
| 2405 | 2497 |
| 2406 TEST_P(QuicStreamFactoryTest, MaybeInitialize) { | 2498 TEST_P(QuicStreamFactoryTest, MaybeInitialize) { |
| 2407 store_server_configs_in_properties_ = true; | 2499 store_server_configs_in_properties_ = true; |
| 2408 idle_connection_timeout_seconds_ = 500; | 2500 idle_connection_timeout_seconds_ = 500; |
| 2409 Initialize(); | 2501 Initialize(); |
| 2502 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 2503 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 2410 const QuicConfig* config = QuicStreamFactoryPeer::GetConfig(factory_.get()); | 2504 const QuicConfig* config = QuicStreamFactoryPeer::GetConfig(factory_.get()); |
| 2411 EXPECT_EQ(500, config->IdleConnectionStateLifetime().ToSeconds()); | 2505 EXPECT_EQ(500, config->IdleConnectionStateLifetime().ToSeconds()); |
| 2412 | 2506 |
| 2413 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); | 2507 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); |
| 2414 | 2508 |
| 2415 const AlternativeService alternative_service1(QUIC, host_port_pair_.host(), | 2509 const AlternativeService alternative_service1(QUIC, host_port_pair_.host(), |
| 2416 host_port_pair_.port()); | 2510 host_port_pair_.port()); |
| 2417 AlternativeServiceInfoVector alternative_service_info_vector; | 2511 AlternativeServiceInfoVector alternative_service_info_vector; |
| 2418 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 2512 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 2419 alternative_service_info_vector.push_back( | 2513 alternative_service_info_vector.push_back( |
| 2420 AlternativeServiceInfo(alternative_service1, 1.0, expiration)); | 2514 AlternativeServiceInfo(alternative_service1, 1.0, expiration)); |
| 2421 | 2515 |
| 2422 http_server_properties_.SetAlternativeServices( | 2516 http_server_properties_.SetAlternativeServices( |
| 2423 host_port_pair_, alternative_service_info_vector); | 2517 host_port_pair_, alternative_service_info_vector); |
| 2424 | 2518 |
| 2425 QuicServerId quic_server_id("www.google.com", 80, PRIVACY_MODE_DISABLED); | 2519 QuicServerId quic_server_id(kDefaultServerHostName, 80, |
| 2520 PRIVACY_MODE_DISABLED); |
| 2426 QuicServerInfoFactory* quic_server_info_factory = | 2521 QuicServerInfoFactory* quic_server_info_factory = |
| 2427 new PropertiesBasedQuicServerInfoFactory( | 2522 new PropertiesBasedQuicServerInfoFactory( |
| 2428 http_server_properties_.GetWeakPtr()); | 2523 http_server_properties_.GetWeakPtr()); |
| 2429 factory_->set_quic_server_info_factory(quic_server_info_factory); | 2524 factory_->set_quic_server_info_factory(quic_server_info_factory); |
| 2430 | 2525 |
| 2431 scoped_ptr<QuicServerInfo> quic_server_info( | 2526 scoped_ptr<QuicServerInfo> quic_server_info( |
| 2432 quic_server_info_factory->GetForServer(quic_server_id)); | 2527 quic_server_info_factory->GetForServer(quic_server_id)); |
| 2433 | 2528 |
| 2434 // Update quic_server_info's server_config and persist it. | 2529 // Update quic_server_info's server_config and persist it. |
| 2435 QuicServerInfo::State* state = quic_server_info->mutable_state(); | 2530 QuicServerInfo::State* state = quic_server_info->mutable_state(); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2490 factory_->set_require_confirmation(false); | 2585 factory_->set_require_confirmation(false); |
| 2491 EXPECT_FALSE(factory_->ZeroRTTEnabledFor(quic_server_id)); | 2586 EXPECT_FALSE(factory_->ZeroRTTEnabledFor(quic_server_id)); |
| 2492 | 2587 |
| 2493 // Load server config and verify QUIC will do 0RTT. | 2588 // Load server config and verify QUIC will do 0RTT. |
| 2494 QuicStreamFactoryPeer::CacheDummyServerConfig(factory_.get(), quic_server_id); | 2589 QuicStreamFactoryPeer::CacheDummyServerConfig(factory_.get(), quic_server_id); |
| 2495 EXPECT_TRUE(factory_->ZeroRTTEnabledFor(quic_server_id)); | 2590 EXPECT_TRUE(factory_->ZeroRTTEnabledFor(quic_server_id)); |
| 2496 } | 2591 } |
| 2497 | 2592 |
| 2498 TEST_P(QuicStreamFactoryTest, YieldAfterPackets) { | 2593 TEST_P(QuicStreamFactoryTest, YieldAfterPackets) { |
| 2499 Initialize(); | 2594 Initialize(); |
| 2595 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 2596 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 2500 QuicStreamFactoryPeer::SetYieldAfterPackets(factory_.get(), 0); | 2597 QuicStreamFactoryPeer::SetYieldAfterPackets(factory_.get(), 0); |
| 2501 | 2598 |
| 2502 scoped_ptr<QuicEncryptedPacket> close_packet( | 2599 scoped_ptr<QuicEncryptedPacket> close_packet( |
| 2503 ConstructConnectionClosePacket(0)); | 2600 ConstructConnectionClosePacket(0)); |
| 2504 vector<MockRead> reads; | 2601 vector<MockRead> reads; |
| 2505 reads.push_back( | 2602 reads.push_back( |
| 2506 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); | 2603 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); |
| 2507 reads.push_back(MockRead(ASYNC, OK, 1)); | 2604 reads.push_back(MockRead(ASYNC, OK, 1)); |
| 2508 SequencedSocketData socket_data(&reads[0], reads.size(), nullptr, 0); | 2605 SequencedSocketData socket_data(&reads[0], reads.size(), nullptr, 0); |
| 2509 socket_factory_.AddSocketDataProvider(&socket_data); | 2606 socket_factory_.AddSocketDataProvider(&socket_data); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 2534 EXPECT_EQ(1u, observer.executed_count()); | 2631 EXPECT_EQ(1u, observer.executed_count()); |
| 2535 | 2632 |
| 2536 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 2633 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 2537 EXPECT_TRUE(stream.get()); | 2634 EXPECT_TRUE(stream.get()); |
| 2538 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 2635 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 2539 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 2636 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 2540 } | 2637 } |
| 2541 | 2638 |
| 2542 TEST_P(QuicStreamFactoryTest, YieldAfterDuration) { | 2639 TEST_P(QuicStreamFactoryTest, YieldAfterDuration) { |
| 2543 Initialize(); | 2640 Initialize(); |
| 2641 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 2642 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 2544 QuicStreamFactoryPeer::SetYieldAfterDuration( | 2643 QuicStreamFactoryPeer::SetYieldAfterDuration( |
| 2545 factory_.get(), QuicTime::Delta::FromMilliseconds(-1)); | 2644 factory_.get(), QuicTime::Delta::FromMilliseconds(-1)); |
| 2546 | 2645 |
| 2547 scoped_ptr<QuicEncryptedPacket> close_packet( | 2646 scoped_ptr<QuicEncryptedPacket> close_packet( |
| 2548 ConstructConnectionClosePacket(0)); | 2647 ConstructConnectionClosePacket(0)); |
| 2549 vector<MockRead> reads; | 2648 vector<MockRead> reads; |
| 2550 reads.push_back( | 2649 reads.push_back( |
| 2551 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); | 2650 MockRead(SYNCHRONOUS, close_packet->data(), close_packet->length(), 0)); |
| 2552 reads.push_back(MockRead(ASYNC, OK, 1)); | 2651 reads.push_back(MockRead(ASYNC, OK, 1)); |
| 2553 SequencedSocketData socket_data(&reads[0], reads.size(), nullptr, 0); | 2652 SequencedSocketData socket_data(&reads[0], reads.size(), nullptr, 0); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 2579 EXPECT_EQ(1u, observer.executed_count()); | 2678 EXPECT_EQ(1u, observer.executed_count()); |
| 2580 | 2679 |
| 2581 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); | 2680 scoped_ptr<QuicHttpStream> stream = request.ReleaseStream(); |
| 2582 EXPECT_TRUE(stream.get()); | 2681 EXPECT_TRUE(stream.get()); |
| 2583 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 2682 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 2584 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 2683 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 2585 } | 2684 } |
| 2586 | 2685 |
| 2587 } // namespace test | 2686 } // namespace test |
| 2588 } // namespace net | 2687 } // namespace net |
| OLD | NEW |