| 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 |