| 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 <string> | 5 #include <string> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/bind_helpers.h" | 9 #include "base/bind_helpers.h" |
| 10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
| (...skipping 708 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 719 ::testing::Values( | 719 ::testing::Values( |
| 720 SpdyNetworkTransactionTestParams(kProtoDeprecatedSPDY2, SPDYNOSSL), | 720 SpdyNetworkTransactionTestParams(kProtoDeprecatedSPDY2, SPDYNOSSL), |
| 721 SpdyNetworkTransactionTestParams(kProtoDeprecatedSPDY2, SPDYSSL), | 721 SpdyNetworkTransactionTestParams(kProtoDeprecatedSPDY2, SPDYSSL), |
| 722 SpdyNetworkTransactionTestParams(kProtoDeprecatedSPDY2, SPDYNPN), | 722 SpdyNetworkTransactionTestParams(kProtoDeprecatedSPDY2, SPDYNPN), |
| 723 SpdyNetworkTransactionTestParams(kProtoSPDY3, SPDYNOSSL), | 723 SpdyNetworkTransactionTestParams(kProtoSPDY3, SPDYNOSSL), |
| 724 SpdyNetworkTransactionTestParams(kProtoSPDY3, SPDYSSL), | 724 SpdyNetworkTransactionTestParams(kProtoSPDY3, SPDYSSL), |
| 725 SpdyNetworkTransactionTestParams(kProtoSPDY3, SPDYNPN), | 725 SpdyNetworkTransactionTestParams(kProtoSPDY3, SPDYNPN), |
| 726 SpdyNetworkTransactionTestParams(kProtoSPDY31, SPDYNOSSL), | 726 SpdyNetworkTransactionTestParams(kProtoSPDY31, SPDYNOSSL), |
| 727 SpdyNetworkTransactionTestParams(kProtoSPDY31, SPDYSSL), | 727 SpdyNetworkTransactionTestParams(kProtoSPDY31, SPDYSSL), |
| 728 SpdyNetworkTransactionTestParams(kProtoSPDY31, SPDYNPN), | 728 SpdyNetworkTransactionTestParams(kProtoSPDY31, SPDYNPN), |
| 729 SpdyNetworkTransactionTestParams(kProtoSPDY4, SPDYNOSSL), | 729 SpdyNetworkTransactionTestParams(kProtoSPDY4_14, SPDYNOSSL), |
| 730 SpdyNetworkTransactionTestParams(kProtoSPDY4, SPDYSSL), | 730 SpdyNetworkTransactionTestParams(kProtoSPDY4_14, SPDYSSL), |
| 731 SpdyNetworkTransactionTestParams(kProtoSPDY4, SPDYNPN))); | 731 SpdyNetworkTransactionTestParams(kProtoSPDY4_14, SPDYNPN), |
| 732 SpdyNetworkTransactionTestParams(kProtoSPDY4_15, SPDYNOSSL), |
| 733 SpdyNetworkTransactionTestParams(kProtoSPDY4_15, SPDYSSL), |
| 734 SpdyNetworkTransactionTestParams(kProtoSPDY4_15, SPDYNPN))); |
| 732 | 735 |
| 733 // Verify HttpNetworkTransaction constructor. | 736 // Verify HttpNetworkTransaction constructor. |
| 734 TEST_P(SpdyNetworkTransactionTest, Constructor) { | 737 TEST_P(SpdyNetworkTransactionTest, Constructor) { |
| 735 scoped_ptr<SpdySessionDependencies> session_deps( | 738 scoped_ptr<SpdySessionDependencies> session_deps( |
| 736 CreateSpdySessionDependencies(GetParam())); | 739 CreateSpdySessionDependencies(GetParam())); |
| 737 scoped_refptr<HttpNetworkSession> session( | 740 scoped_refptr<HttpNetworkSession> session( |
| 738 SpdySessionDependencies::SpdyCreateSession(session_deps.get())); | 741 SpdySessionDependencies::SpdyCreateSession(session_deps.get())); |
| 739 scoped_ptr<HttpTransaction> trans( | 742 scoped_ptr<HttpTransaction> trans( |
| 740 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 743 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 741 } | 744 } |
| (...skipping 2827 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3569 DelayedSocketData data(1, reads, arraysize(reads), | 3572 DelayedSocketData data(1, reads, arraysize(reads), |
| 3570 writes, arraysize(writes)); | 3573 writes, arraysize(writes)); |
| 3571 NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, | 3574 NormalSpdyTransactionHelper helper(CreateGetRequest(), DEFAULT_PRIORITY, |
| 3572 BoundNetLog(), GetParam(), NULL); | 3575 BoundNetLog(), GetParam(), NULL); |
| 3573 helper.RunToCompletion(&data); | 3576 helper.RunToCompletion(&data); |
| 3574 TransactionHelperResult out = helper.output(); | 3577 TransactionHelperResult out = helper.output(); |
| 3575 EXPECT_EQ(ERR_SPDY_COMPRESSION_ERROR, out.rv); | 3578 EXPECT_EQ(ERR_SPDY_COMPRESSION_ERROR, out.rv); |
| 3576 } | 3579 } |
| 3577 | 3580 |
| 3578 TEST_P(SpdyNetworkTransactionTest, GoAwayOnDecompressionFailure) { | 3581 TEST_P(SpdyNetworkTransactionTest, GoAwayOnDecompressionFailure) { |
| 3579 if (GetParam().protocol < kProtoSPDY4) { | 3582 if (GetParam().protocol < kProtoSPDY4MinimumVersion) { |
| 3580 // Decompression failures are a stream error in SPDY3 and above. | 3583 // Decompression failures are a stream error in SPDY3 and above. |
| 3581 return; | 3584 return; |
| 3582 } | 3585 } |
| 3583 scoped_ptr<SpdyFrame> req( | 3586 scoped_ptr<SpdyFrame> req( |
| 3584 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); | 3587 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| 3585 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway( | 3588 scoped_ptr<SpdyFrame> goaway(spdy_util_.ConstructSpdyGoAway( |
| 3586 0, GOAWAY_COMPRESSION_ERROR, "Framer error: 5 (DECOMPRESS_FAILURE).")); | 3589 0, GOAWAY_COMPRESSION_ERROR, "Framer error: 5 (DECOMPRESS_FAILURE).")); |
| 3587 MockWrite writes[] = {CreateMockWrite(*req), CreateMockWrite(*goaway)}; | 3590 MockWrite writes[] = {CreateMockWrite(*req), CreateMockWrite(*goaway)}; |
| 3588 | 3591 |
| 3589 // Read HEADERS with corrupted payload. | 3592 // Read HEADERS with corrupted payload. |
| (...skipping 836 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4426 spdy_session_pool->http_server_properties()->GetSpdySettings( | 4429 spdy_session_pool->http_server_properties()->GetSpdySettings( |
| 4427 host_port_pair); | 4430 host_port_pair); |
| 4428 scoped_ptr<SpdyFrame> settings_frame( | 4431 scoped_ptr<SpdyFrame> settings_frame( |
| 4429 spdy_util_.ConstructSpdySettings(settings)); | 4432 spdy_util_.ConstructSpdySettings(settings)); |
| 4430 | 4433 |
| 4431 // Construct the request. | 4434 // Construct the request. |
| 4432 scoped_ptr<SpdyFrame> req( | 4435 scoped_ptr<SpdyFrame> req( |
| 4433 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); | 4436 spdy_util_.ConstructSpdyGet(NULL, 0, false, 1, LOWEST, true)); |
| 4434 | 4437 |
| 4435 std::vector<MockWrite> writes; | 4438 std::vector<MockWrite> writes; |
| 4436 if (GetParam().protocol == kProtoSPDY4) { | 4439 if ((GetParam().protocol >= kProtoSPDY4MinimumVersion) && |
| 4440 (GetParam().protocol <= kProtoSPDY4MaximumVersion)) { |
| 4437 writes.push_back( | 4441 writes.push_back( |
| 4438 MockWrite(ASYNC, | 4442 MockWrite(ASYNC, |
| 4439 kHttp2ConnectionHeaderPrefix, | 4443 kHttp2ConnectionHeaderPrefix, |
| 4440 kHttp2ConnectionHeaderPrefixSize)); | 4444 kHttp2ConnectionHeaderPrefixSize)); |
| 4441 } | 4445 } |
| 4442 writes.push_back(CreateMockWrite(*initial_settings_frame)); | 4446 writes.push_back(CreateMockWrite(*initial_settings_frame)); |
| 4443 if (GetParam().protocol >= kProtoSPDY31) { | 4447 if (GetParam().protocol >= kProtoSPDY31) { |
| 4444 writes.push_back(CreateMockWrite(*initial_window_update)); | 4448 writes.push_back(CreateMockWrite(*initial_window_update)); |
| 4445 } | 4449 } |
| 4446 writes.push_back(CreateMockWrite(*settings_frame)); | 4450 writes.push_back(CreateMockWrite(*settings_frame)); |
| (...skipping 2145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6592 request, DEFAULT_PRIORITY, BoundNetLog(), GetParam(), NULL); | 6596 request, DEFAULT_PRIORITY, BoundNetLog(), GetParam(), NULL); |
| 6593 helper.RunToCompletionWithSSLData(&data, ssl_provider.Pass()); | 6597 helper.RunToCompletionWithSSLData(&data, ssl_provider.Pass()); |
| 6594 TransactionHelperResult out = helper.output(); | 6598 TransactionHelperResult out = helper.output(); |
| 6595 EXPECT_EQ(ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY, out.rv); | 6599 EXPECT_EQ(ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY, out.rv); |
| 6596 } | 6600 } |
| 6597 }; | 6601 }; |
| 6598 | 6602 |
| 6599 INSTANTIATE_TEST_CASE_P( | 6603 INSTANTIATE_TEST_CASE_P( |
| 6600 Spdy, | 6604 Spdy, |
| 6601 SpdyNetworkTransactionTLSUsageCheckTest, | 6605 SpdyNetworkTransactionTLSUsageCheckTest, |
| 6602 ::testing::Values(SpdyNetworkTransactionTestParams(kProtoSPDY4, SPDYNPN))); | 6606 ::testing::Values( |
| 6607 SpdyNetworkTransactionTestParams(kProtoSPDY4_14, SPDYNPN), |
| 6608 SpdyNetworkTransactionTestParams(kProtoSPDY4_15, SPDYNPN))); |
| 6603 | 6609 |
| 6604 TEST_P(SpdyNetworkTransactionTLSUsageCheckTest, TLSVersionTooOld) { | 6610 TEST_P(SpdyNetworkTransactionTLSUsageCheckTest, TLSVersionTooOld) { |
| 6605 scoped_ptr<SSLSocketDataProvider> ssl_provider( | 6611 scoped_ptr<SSLSocketDataProvider> ssl_provider( |
| 6606 new SSLSocketDataProvider(ASYNC, OK)); | 6612 new SSLSocketDataProvider(ASYNC, OK)); |
| 6607 SSLConnectionStatusSetVersion(SSL_CONNECTION_VERSION_SSL3, | 6613 SSLConnectionStatusSetVersion(SSL_CONNECTION_VERSION_SSL3, |
| 6608 &ssl_provider->connection_status); | 6614 &ssl_provider->connection_status); |
| 6609 | 6615 |
| 6610 RunTLSUsageCheckTest(ssl_provider.Pass()); | 6616 RunTLSUsageCheckTest(ssl_provider.Pass()); |
| 6611 } | 6617 } |
| 6612 | 6618 |
| 6613 TEST_P(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { | 6619 TEST_P(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { |
| 6614 scoped_ptr<SSLSocketDataProvider> ssl_provider( | 6620 scoped_ptr<SSLSocketDataProvider> ssl_provider( |
| 6615 new SSLSocketDataProvider(ASYNC, OK)); | 6621 new SSLSocketDataProvider(ASYNC, OK)); |
| 6616 // Set to TLS_RSA_WITH_NULL_MD5 | 6622 // Set to TLS_RSA_WITH_NULL_MD5 |
| 6617 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); | 6623 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); |
| 6618 | 6624 |
| 6619 RunTLSUsageCheckTest(ssl_provider.Pass()); | 6625 RunTLSUsageCheckTest(ssl_provider.Pass()); |
| 6620 } | 6626 } |
| 6621 | 6627 |
| 6622 } // namespace net | 6628 } // namespace net |
| OLD | NEW |