| 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 <memory> | 5 #include <memory> |
| 6 #include <string> | 6 #include <string> |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
| 10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
| 11 #include "net/base/request_priority.h" | 11 #include "net/base/request_priority.h" |
| 12 #include "net/cert/ct_policy_enforcer.h" |
| 13 #include "net/cert/mock_cert_verifier.h" |
| 14 #include "net/cert/multi_log_ct_verifier.h" |
| 12 #include "net/dns/mock_host_resolver.h" | 15 #include "net/dns/mock_host_resolver.h" |
| 13 #include "net/http/http_auth_handler_mock.h" | 16 #include "net/http/http_auth_handler_mock.h" |
| 14 #include "net/http/http_network_session.h" | 17 #include "net/http/http_network_session.h" |
| 15 #include "net/http/http_network_transaction.h" | 18 #include "net/http/http_network_transaction.h" |
| 16 #include "net/http/http_request_info.h" | 19 #include "net/http/http_request_info.h" |
| 17 #include "net/http/http_server_properties_impl.h" | 20 #include "net/http/http_server_properties_impl.h" |
| 18 #include "net/http/transport_security_state.h" | 21 #include "net/http/transport_security_state.h" |
| 19 #include "net/proxy/proxy_service.h" | 22 #include "net/proxy/proxy_service.h" |
| 20 #include "net/socket/socket_test_util.h" | 23 #include "net/socket/socket_test_util.h" |
| 21 #include "net/ssl/default_channel_id_store.h" | 24 #include "net/ssl/default_channel_id_store.h" |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 session_params_.ssl_config_service = ssl_config_service_.get(); | 81 session_params_.ssl_config_service = ssl_config_service_.get(); |
| 79 | 82 |
| 80 auth_handler_factory_.reset(new HttpAuthHandlerMock::Factory()); | 83 auth_handler_factory_.reset(new HttpAuthHandlerMock::Factory()); |
| 81 session_params_.http_auth_handler_factory = auth_handler_factory_.get(); | 84 session_params_.http_auth_handler_factory = auth_handler_factory_.get(); |
| 82 | 85 |
| 83 proxy_service_ = ProxyService::CreateDirect(); | 86 proxy_service_ = ProxyService::CreateDirect(); |
| 84 session_params_.proxy_service = proxy_service_.get(); | 87 session_params_.proxy_service = proxy_service_.get(); |
| 85 | 88 |
| 86 session_params_.client_socket_factory = &mock_socket_factory_; | 89 session_params_.client_socket_factory = &mock_socket_factory_; |
| 87 session_params_.host_resolver = &mock_resolver_; | 90 session_params_.host_resolver = &mock_resolver_; |
| 91 session_params_.cert_verifier = &cert_verifier_; |
| 88 session_params_.http_server_properties = | 92 session_params_.http_server_properties = |
| 89 http_server_properties_.GetWeakPtr(); | 93 http_server_properties_.GetWeakPtr(); |
| 90 session_params_.transport_security_state = &transport_security_state_; | 94 session_params_.transport_security_state = &transport_security_state_; |
| 95 session_params_.cert_transparency_verifier = &ct_verifier_; |
| 96 session_params_.ct_policy_enforcer = &ct_policy_enforcer_; |
| 91 } | 97 } |
| 92 | 98 |
| 93 HttpRequestInfo* GetRequestInfo(const std::string& url) { | 99 HttpRequestInfo* GetRequestInfo(const std::string& url) { |
| 94 HttpRequestInfo* request_info = new HttpRequestInfo; | 100 HttpRequestInfo* request_info = new HttpRequestInfo; |
| 95 request_info->url = GURL(url); | 101 request_info->url = GURL(url); |
| 96 request_info->method = "GET"; | 102 request_info->method = "GET"; |
| 97 request_info_vector_.push_back(base::WrapUnique(request_info)); | 103 request_info_vector_.push_back(base::WrapUnique(request_info)); |
| 98 return request_info; | 104 return request_info; |
| 99 } | 105 } |
| 100 | 106 |
| 101 SSLConfig& GetServerSSLConfig(HttpNetworkTransaction* trans) { | 107 SSLConfig& GetServerSSLConfig(HttpNetworkTransaction* trans) { |
| 102 return trans->server_ssl_config_; | 108 return trans->server_ssl_config_; |
| 103 } | 109 } |
| 104 | 110 |
| 105 scoped_refptr<SSLConfigService> ssl_config_service_; | 111 scoped_refptr<SSLConfigService> ssl_config_service_; |
| 106 std::unique_ptr<HttpAuthHandlerMock::Factory> auth_handler_factory_; | 112 std::unique_ptr<HttpAuthHandlerMock::Factory> auth_handler_factory_; |
| 107 std::unique_ptr<ProxyService> proxy_service_; | 113 std::unique_ptr<ProxyService> proxy_service_; |
| 108 | 114 |
| 109 MockClientSocketFactory mock_socket_factory_; | 115 MockClientSocketFactory mock_socket_factory_; |
| 110 MockHostResolver mock_resolver_; | 116 MockHostResolver mock_resolver_; |
| 111 HttpServerPropertiesImpl http_server_properties_; | 117 HttpServerPropertiesImpl http_server_properties_; |
| 118 MockCertVerifier cert_verifier_; |
| 112 TransportSecurityState transport_security_state_; | 119 TransportSecurityState transport_security_state_; |
| 120 MultiLogCTVerifier ct_verifier_; |
| 121 CTPolicyEnforcer ct_policy_enforcer_; |
| 113 HttpNetworkSession::Params session_params_; | 122 HttpNetworkSession::Params session_params_; |
| 114 std::vector<std::unique_ptr<HttpRequestInfo>> request_info_vector_; | 123 std::vector<std::unique_ptr<HttpRequestInfo>> request_info_vector_; |
| 115 }; | 124 }; |
| 116 | 125 |
| 117 // Tests that HttpNetworkTransaction attempts to fallback from | 126 // Tests that HttpNetworkTransaction attempts to fallback from |
| 118 // TLS 1.2 to TLS 1.1. | 127 // TLS 1.2 to TLS 1.1. |
| 119 TEST_F(HttpNetworkTransactionSSLTest, SSLFallback) { | 128 TEST_F(HttpNetworkTransactionSSLTest, SSLFallback) { |
| 120 ssl_config_service_ = new TLS12SSLConfigService; | 129 ssl_config_service_ = new TLS12SSLConfigService; |
| 121 session_params_.ssl_config_service = ssl_config_service_.get(); | 130 session_params_.ssl_config_service = ssl_config_service_.get(); |
| 122 // |ssl_data1| is for the first handshake (TLS 1.2), which will fail | 131 // |ssl_data1| is for the first handshake (TLS 1.2), which will fail |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 | 244 |
| 236 HttpRequestHeaders headers; | 245 HttpRequestHeaders headers; |
| 237 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); | 246 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); |
| 238 std::string token_binding_header; | 247 std::string token_binding_header; |
| 239 EXPECT_FALSE(headers.GetHeader(HttpRequestHeaders::kTokenBinding, | 248 EXPECT_FALSE(headers.GetHeader(HttpRequestHeaders::kTokenBinding, |
| 240 &token_binding_header)); | 249 &token_binding_header)); |
| 241 } | 250 } |
| 242 #endif // !defined(OS_IOS) | 251 #endif // !defined(OS_IOS) |
| 243 | 252 |
| 244 } // namespace net | 253 } // namespace net |
| OLD | NEW |