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 |