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 713 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
724 SpdyNetworkTransactionTest, | 724 SpdyNetworkTransactionTest, |
725 ::testing::Values( | 725 ::testing::Values( |
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_14, SPDYNOSSL), | 729 SpdyNetworkTransactionTestParams(kProtoSPDY4_14, SPDYNOSSL), |
730 SpdyNetworkTransactionTestParams(kProtoSPDY4_14, SPDYSSL), | 730 SpdyNetworkTransactionTestParams(kProtoSPDY4_14, SPDYSSL), |
731 SpdyNetworkTransactionTestParams(kProtoSPDY4_14, SPDYNPN), | 731 SpdyNetworkTransactionTestParams(kProtoSPDY4_14, SPDYNPN), |
732 SpdyNetworkTransactionTestParams(kProtoSPDY4_15, SPDYNOSSL), | 732 SpdyNetworkTransactionTestParams(kProtoSPDY4_15, SPDYNOSSL), |
733 SpdyNetworkTransactionTestParams(kProtoSPDY4_15, SPDYSSL), | 733 SpdyNetworkTransactionTestParams(kProtoSPDY4_15, SPDYSSL), |
734 SpdyNetworkTransactionTestParams(kProtoSPDY4_15, SPDYNPN))); | 734 SpdyNetworkTransactionTestParams(kProtoSPDY4_15, SPDYNPN), |
| 735 SpdyNetworkTransactionTestParams(kProtoSPDY4, SPDYNOSSL), |
| 736 SpdyNetworkTransactionTestParams(kProtoSPDY4, SPDYSSL), |
| 737 SpdyNetworkTransactionTestParams(kProtoSPDY4, SPDYNPN))); |
735 | 738 |
736 // Verify HttpNetworkTransaction constructor. | 739 // Verify HttpNetworkTransaction constructor. |
737 TEST_P(SpdyNetworkTransactionTest, Constructor) { | 740 TEST_P(SpdyNetworkTransactionTest, Constructor) { |
738 scoped_ptr<SpdySessionDependencies> session_deps( | 741 scoped_ptr<SpdySessionDependencies> session_deps( |
739 CreateSpdySessionDependencies(GetParam())); | 742 CreateSpdySessionDependencies(GetParam())); |
740 scoped_refptr<HttpNetworkSession> session( | 743 scoped_refptr<HttpNetworkSession> session( |
741 SpdySessionDependencies::SpdyCreateSession(session_deps.get())); | 744 SpdySessionDependencies::SpdyCreateSession(session_deps.get())); |
742 scoped_ptr<HttpTransaction> trans( | 745 scoped_ptr<HttpTransaction> trans( |
743 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 746 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
744 } | 747 } |
(...skipping 3870 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4615 DelayedSocketData data0(1, reads0, arraysize(reads0), writes0, | 4618 DelayedSocketData data0(1, reads0, arraysize(reads0), writes0, |
4616 arraysize(writes0)); | 4619 arraysize(writes0)); |
4617 | 4620 |
4618 scoped_ptr<SSLSocketDataProvider> ssl_provider0( | 4621 scoped_ptr<SSLSocketDataProvider> ssl_provider0( |
4619 new SSLSocketDataProvider(ASYNC, OK)); | 4622 new SSLSocketDataProvider(ASYNC, OK)); |
4620 // Expect HTTP/2 protocols too in SSLConfig. | 4623 // Expect HTTP/2 protocols too in SSLConfig. |
4621 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoHTTP11); | 4624 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoHTTP11); |
4622 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY31); | 4625 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY31); |
4623 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY4_14); | 4626 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY4_14); |
4624 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY4_15); | 4627 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY4_15); |
| 4628 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY4); |
4625 // Force SPDY. | 4629 // Force SPDY. |
4626 ssl_provider0->SetNextProto(GetParam().protocol); | 4630 ssl_provider0->SetNextProto(GetParam().protocol); |
4627 helper.AddDataWithSSLSocketDataProvider(&data0, ssl_provider0.Pass()); | 4631 helper.AddDataWithSSLSocketDataProvider(&data0, ssl_provider0.Pass()); |
4628 | 4632 |
4629 // Second socket: falling back to HTTP/1.1. | 4633 // Second socket: falling back to HTTP/1.1. |
4630 MockWrite writes1[] = {MockWrite( | 4634 MockWrite writes1[] = {MockWrite( |
4631 "GET / HTTP/1.1\r\n" | 4635 "GET / HTTP/1.1\r\n" |
4632 "Host: www.google.com\r\n" | 4636 "Host: www.google.com\r\n" |
4633 "Connection: keep-alive\r\n\r\n")}; | 4637 "Connection: keep-alive\r\n\r\n")}; |
4634 MockRead reads1[] = {MockRead( | 4638 MockRead reads1[] = {MockRead( |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4708 DelayedSocketData data0(1, reads0, arraysize(reads0), writes0, | 4712 DelayedSocketData data0(1, reads0, arraysize(reads0), writes0, |
4709 arraysize(writes0)); | 4713 arraysize(writes0)); |
4710 | 4714 |
4711 scoped_ptr<SSLSocketDataProvider> ssl_provider0( | 4715 scoped_ptr<SSLSocketDataProvider> ssl_provider0( |
4712 new SSLSocketDataProvider(ASYNC, OK)); | 4716 new SSLSocketDataProvider(ASYNC, OK)); |
4713 // Expect HTTP/2 protocols too in SSLConfig. | 4717 // Expect HTTP/2 protocols too in SSLConfig. |
4714 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoHTTP11); | 4718 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoHTTP11); |
4715 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY31); | 4719 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY31); |
4716 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY4_14); | 4720 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY4_14); |
4717 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY4_15); | 4721 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY4_15); |
| 4722 ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY4); |
4718 // Force SPDY. | 4723 // Force SPDY. |
4719 ssl_provider0->SetNextProto(GetParam().protocol); | 4724 ssl_provider0->SetNextProto(GetParam().protocol); |
4720 helper.AddDataWithSSLSocketDataProvider(&data0, ssl_provider0.Pass()); | 4725 helper.AddDataWithSSLSocketDataProvider(&data0, ssl_provider0.Pass()); |
4721 | 4726 |
4722 // Second socket: retry using HTTP/1.1. | 4727 // Second socket: retry using HTTP/1.1. |
4723 MockWrite writes1[] = { | 4728 MockWrite writes1[] = { |
4724 MockWrite(ASYNC, 1, | 4729 MockWrite(ASYNC, 1, |
4725 "CONNECT www.google.com:443 HTTP/1.1\r\n" | 4730 "CONNECT www.google.com:443 HTTP/1.1\r\n" |
4726 "Host: www.google.com\r\n" | 4731 "Host: www.google.com\r\n" |
4727 "Proxy-Connection: keep-alive\r\n\r\n"), | 4732 "Proxy-Connection: keep-alive\r\n\r\n"), |
(...skipping 2071 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6799 request, DEFAULT_PRIORITY, BoundNetLog(), GetParam(), NULL); | 6804 request, DEFAULT_PRIORITY, BoundNetLog(), GetParam(), NULL); |
6800 helper.RunToCompletionWithSSLData(&data, ssl_provider.Pass()); | 6805 helper.RunToCompletionWithSSLData(&data, ssl_provider.Pass()); |
6801 TransactionHelperResult out = helper.output(); | 6806 TransactionHelperResult out = helper.output(); |
6802 EXPECT_EQ(ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY, out.rv); | 6807 EXPECT_EQ(ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY, out.rv); |
6803 } | 6808 } |
6804 }; | 6809 }; |
6805 | 6810 |
6806 INSTANTIATE_TEST_CASE_P( | 6811 INSTANTIATE_TEST_CASE_P( |
6807 Spdy, | 6812 Spdy, |
6808 SpdyNetworkTransactionTLSUsageCheckTest, | 6813 SpdyNetworkTransactionTLSUsageCheckTest, |
6809 ::testing::Values( | 6814 ::testing::Values(SpdyNetworkTransactionTestParams(kProtoSPDY4_14, SPDYNPN), |
6810 SpdyNetworkTransactionTestParams(kProtoSPDY4_14, SPDYNPN), | 6815 SpdyNetworkTransactionTestParams(kProtoSPDY4_15, SPDYNPN), |
6811 SpdyNetworkTransactionTestParams(kProtoSPDY4_15, SPDYNPN))); | 6816 SpdyNetworkTransactionTestParams(kProtoSPDY4, SPDYNPN))); |
6812 | 6817 |
6813 TEST_P(SpdyNetworkTransactionTLSUsageCheckTest, TLSVersionTooOld) { | 6818 TEST_P(SpdyNetworkTransactionTLSUsageCheckTest, TLSVersionTooOld) { |
6814 scoped_ptr<SSLSocketDataProvider> ssl_provider( | 6819 scoped_ptr<SSLSocketDataProvider> ssl_provider( |
6815 new SSLSocketDataProvider(ASYNC, OK)); | 6820 new SSLSocketDataProvider(ASYNC, OK)); |
6816 SSLConnectionStatusSetVersion(SSL_CONNECTION_VERSION_SSL3, | 6821 SSLConnectionStatusSetVersion(SSL_CONNECTION_VERSION_SSL3, |
6817 &ssl_provider->connection_status); | 6822 &ssl_provider->connection_status); |
6818 | 6823 |
6819 RunTLSUsageCheckTest(ssl_provider.Pass()); | 6824 RunTLSUsageCheckTest(ssl_provider.Pass()); |
6820 } | 6825 } |
6821 | 6826 |
6822 TEST_P(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { | 6827 TEST_P(SpdyNetworkTransactionTLSUsageCheckTest, TLSCipherSuiteSucky) { |
6823 scoped_ptr<SSLSocketDataProvider> ssl_provider( | 6828 scoped_ptr<SSLSocketDataProvider> ssl_provider( |
6824 new SSLSocketDataProvider(ASYNC, OK)); | 6829 new SSLSocketDataProvider(ASYNC, OK)); |
6825 // Set to TLS_RSA_WITH_NULL_MD5 | 6830 // Set to TLS_RSA_WITH_NULL_MD5 |
6826 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); | 6831 SSLConnectionStatusSetCipherSuite(0x1, &ssl_provider->connection_status); |
6827 | 6832 |
6828 RunTLSUsageCheckTest(ssl_provider.Pass()); | 6833 RunTLSUsageCheckTest(ssl_provider.Pass()); |
6829 } | 6834 } |
6830 | 6835 |
6831 } // namespace net | 6836 } // namespace net |
OLD | NEW |