Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(99)

Side by Side Diff: net/spdy/spdy_network_transaction_unittest.cc

Issue 987123002: Advertise HTTP/2 support. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/spdy/spdy_http_stream_unittest.cc ('k') | net/spdy/spdy_proxy_client_socket_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
OLDNEW
« no previous file with comments | « net/spdy/spdy_http_stream_unittest.cc ('k') | net/spdy/spdy_proxy_client_socket_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698