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 |