| 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 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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_; |
| 88 session_params_.http_server_properties = &http_server_properties_; | 91 session_params_.http_server_properties = &http_server_properties_; |
| 92 session_params_.cert_verifier = &cert_verifier_; |
| 89 session_params_.transport_security_state = &transport_security_state_; | 93 session_params_.transport_security_state = &transport_security_state_; |
| 94 session_params_.cert_transparency_verifier = &ct_verifier_; |
| 95 session_params_.ct_policy_enforcer = &ct_policy_enforcer_; |
| 90 } | 96 } |
| 91 | 97 |
| 92 HttpRequestInfo* GetRequestInfo(const std::string& url) { | 98 HttpRequestInfo* GetRequestInfo(const std::string& url) { |
| 93 HttpRequestInfo* request_info = new HttpRequestInfo; | 99 HttpRequestInfo* request_info = new HttpRequestInfo; |
| 94 request_info->url = GURL(url); | 100 request_info->url = GURL(url); |
| 95 request_info->method = "GET"; | 101 request_info->method = "GET"; |
| 96 request_info_vector_.push_back(base::WrapUnique(request_info)); | 102 request_info_vector_.push_back(base::WrapUnique(request_info)); |
| 97 return request_info; | 103 return request_info; |
| 98 } | 104 } |
| 99 | 105 |
| 100 SSLConfig& GetServerSSLConfig(HttpNetworkTransaction* trans) { | 106 SSLConfig& GetServerSSLConfig(HttpNetworkTransaction* trans) { |
| 101 return trans->server_ssl_config_; | 107 return trans->server_ssl_config_; |
| 102 } | 108 } |
| 103 | 109 |
| 104 scoped_refptr<SSLConfigService> ssl_config_service_; | 110 scoped_refptr<SSLConfigService> ssl_config_service_; |
| 105 std::unique_ptr<HttpAuthHandlerMock::Factory> auth_handler_factory_; | 111 std::unique_ptr<HttpAuthHandlerMock::Factory> auth_handler_factory_; |
| 106 std::unique_ptr<ProxyService> proxy_service_; | 112 std::unique_ptr<ProxyService> proxy_service_; |
| 107 | 113 |
| 108 MockClientSocketFactory mock_socket_factory_; | 114 MockClientSocketFactory mock_socket_factory_; |
| 109 MockHostResolver mock_resolver_; | 115 MockHostResolver mock_resolver_; |
| 110 HttpServerPropertiesImpl http_server_properties_; | 116 HttpServerPropertiesImpl http_server_properties_; |
| 117 MockCertVerifier cert_verifier_; |
| 111 TransportSecurityState transport_security_state_; | 118 TransportSecurityState transport_security_state_; |
| 119 MultiLogCTVerifier ct_verifier_; |
| 120 CTPolicyEnforcer ct_policy_enforcer_; |
| 112 HttpNetworkSession::Params session_params_; | 121 HttpNetworkSession::Params session_params_; |
| 113 std::vector<std::unique_ptr<HttpRequestInfo>> request_info_vector_; | 122 std::vector<std::unique_ptr<HttpRequestInfo>> request_info_vector_; |
| 114 }; | 123 }; |
| 115 | 124 |
| 116 // Tests that HttpNetworkTransaction attempts to fallback from | 125 // Tests that HttpNetworkTransaction attempts to fallback from |
| 117 // TLS 1.2 to TLS 1.1. | 126 // TLS 1.2 to TLS 1.1. |
| 118 TEST_F(HttpNetworkTransactionSSLTest, SSLFallback) { | 127 TEST_F(HttpNetworkTransactionSSLTest, SSLFallback) { |
| 119 ssl_config_service_ = new TLS12SSLConfigService; | 128 ssl_config_service_ = new TLS12SSLConfigService; |
| 120 session_params_.ssl_config_service = ssl_config_service_.get(); | 129 session_params_.ssl_config_service = ssl_config_service_.get(); |
| 121 // |ssl_data1| is for the first handshake (TLS 1.2), which will fail | 130 // |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... |
| 234 | 243 |
| 235 HttpRequestHeaders headers; | 244 HttpRequestHeaders headers; |
| 236 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); | 245 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); |
| 237 std::string token_binding_header; | 246 std::string token_binding_header; |
| 238 EXPECT_FALSE(headers.GetHeader(HttpRequestHeaders::kTokenBinding, | 247 EXPECT_FALSE(headers.GetHeader(HttpRequestHeaders::kTokenBinding, |
| 239 &token_binding_header)); | 248 &token_binding_header)); |
| 240 } | 249 } |
| 241 #endif // !defined(OS_IOS) | 250 #endif // !defined(OS_IOS) |
| 242 | 251 |
| 243 } // namespace net | 252 } // namespace net |
| OLD | NEW |