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

Side by Side Diff: net/http/http_network_layer_unittest.cc

Issue 2067843003: Require a CTVerifier and CTPolicyEnforcer for TLS/QUIC sockets (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Extensions Created 4 years, 6 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
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 "net/http/http_network_layer.h" 5 #include "net/http/http_network_layer.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
10 #include "net/cert/ct_policy_enforcer.h"
10 #include "net/cert/mock_cert_verifier.h" 11 #include "net/cert/mock_cert_verifier.h"
12 #include "net/cert/multi_log_ct_verifier.h"
11 #include "net/dns/mock_host_resolver.h" 13 #include "net/dns/mock_host_resolver.h"
12 #include "net/http/http_network_session.h" 14 #include "net/http/http_network_session.h"
13 #include "net/http/http_server_properties_impl.h" 15 #include "net/http/http_server_properties_impl.h"
14 #include "net/http/http_transaction_test_util.h" 16 #include "net/http/http_transaction_test_util.h"
15 #include "net/http/transport_security_state.h" 17 #include "net/http/transport_security_state.h"
16 #include "net/log/net_log.h" 18 #include "net/log/net_log.h"
17 #include "net/proxy/proxy_service.h" 19 #include "net/proxy/proxy_service.h"
18 #include "net/socket/socket_test_util.h" 20 #include "net/socket/socket_test_util.h"
19 #include "net/spdy/spdy_session_pool.h" 21 #include "net/spdy/spdy_session_pool.h"
20 #include "net/ssl/ssl_config_service_defaults.h" 22 #include "net/ssl/ssl_config_service_defaults.h"
(...skipping 14 matching lines...) Expand all
35 37
36 void ConfigureTestDependencies(std::unique_ptr<ProxyService> proxy_service) { 38 void ConfigureTestDependencies(std::unique_ptr<ProxyService> proxy_service) {
37 cert_verifier_.reset(new MockCertVerifier); 39 cert_verifier_.reset(new MockCertVerifier);
38 transport_security_state_.reset(new TransportSecurityState); 40 transport_security_state_.reset(new TransportSecurityState);
39 proxy_service_ = std::move(proxy_service); 41 proxy_service_ = std::move(proxy_service);
40 HttpNetworkSession::Params session_params; 42 HttpNetworkSession::Params session_params;
41 session_params.client_socket_factory = &mock_socket_factory_; 43 session_params.client_socket_factory = &mock_socket_factory_;
42 session_params.host_resolver = &host_resolver_; 44 session_params.host_resolver = &host_resolver_;
43 session_params.cert_verifier = cert_verifier_.get(); 45 session_params.cert_verifier = cert_verifier_.get();
44 session_params.transport_security_state = transport_security_state_.get(); 46 session_params.transport_security_state = transport_security_state_.get();
47 session_params.cert_transparency_verifier = &ct_verifier_;
48 session_params.ct_policy_enforcer = &ct_policy_enforcer_;
45 session_params.proxy_service = proxy_service_.get(); 49 session_params.proxy_service = proxy_service_.get();
46 session_params.ssl_config_service = ssl_config_service_.get(); 50 session_params.ssl_config_service = ssl_config_service_.get();
47 session_params.http_server_properties = 51 session_params.http_server_properties =
48 http_server_properties_.GetWeakPtr(); 52 http_server_properties_.GetWeakPtr();
49 network_session_.reset(new HttpNetworkSession(session_params)); 53 network_session_.reset(new HttpNetworkSession(session_params));
50 factory_.reset(new HttpNetworkLayer(network_session_.get())); 54 factory_.reset(new HttpNetworkLayer(network_session_.get()));
51 } 55 }
52 56
53 void ExecuteRequestExpectingContentAndHeader(const std::string& method, 57 void ExecuteRequestExpectingContentAndHeader(const std::string& method,
54 const std::string& content, 58 const std::string& content,
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 ExecuteRequestExpectingContentAndHeader("GET", "Bypass message", "", ""); 255 ExecuteRequestExpectingContentAndHeader("GET", "Bypass message", "", "");
252 256
253 // We should also observe the bad proxy or proxies in the retry list. 257 // We should also observe the bad proxy or proxies in the retry list.
254 TestBadProxies(proxy_count, bad_proxy, bad_proxy2); 258 TestBadProxies(proxy_count, bad_proxy, bad_proxy2);
255 } 259 }
256 260
257 MockClientSocketFactory mock_socket_factory_; 261 MockClientSocketFactory mock_socket_factory_;
258 MockHostResolver host_resolver_; 262 MockHostResolver host_resolver_;
259 std::unique_ptr<CertVerifier> cert_verifier_; 263 std::unique_ptr<CertVerifier> cert_verifier_;
260 std::unique_ptr<TransportSecurityState> transport_security_state_; 264 std::unique_ptr<TransportSecurityState> transport_security_state_;
265 MultiLogCTVerifier ct_verifier_;
266 CTPolicyEnforcer ct_policy_enforcer_;
261 std::unique_ptr<ProxyService> proxy_service_; 267 std::unique_ptr<ProxyService> proxy_service_;
262 const scoped_refptr<SSLConfigService> ssl_config_service_; 268 const scoped_refptr<SSLConfigService> ssl_config_service_;
263 std::unique_ptr<HttpNetworkSession> network_session_; 269 std::unique_ptr<HttpNetworkSession> network_session_;
264 std::unique_ptr<HttpNetworkLayer> factory_; 270 std::unique_ptr<HttpNetworkLayer> factory_;
265 HttpServerPropertiesImpl http_server_properties_; 271 HttpServerPropertiesImpl http_server_properties_;
266 }; 272 };
267 273
268 TEST_F(HttpNetworkLayerTest, CreateAndDestroy) { 274 TEST_F(HttpNetworkLayerTest, CreateAndDestroy) {
269 std::unique_ptr<HttpTransaction> trans; 275 std::unique_ptr<HttpTransaction> trans;
270 int rv = factory_->CreateTransaction(DEFAULT_PRIORITY, &trans); 276 int rv = factory_->CreateTransaction(DEFAULT_PRIORITY, &trans);
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 rv = trans->Start(&request_info, callback.callback(), BoundNetLog()); 402 rv = trans->Start(&request_info, callback.callback(), BoundNetLog());
397 ASSERT_EQ(ERR_CONNECTION_RESET, callback.GetResult(rv)); 403 ASSERT_EQ(ERR_CONNECTION_RESET, callback.GetResult(rv));
398 404
399 // network_accessed is true; the HTTP stack did try to make a connection. 405 // network_accessed is true; the HTTP stack did try to make a connection.
400 EXPECT_TRUE(trans->GetResponseInfo()->network_accessed); 406 EXPECT_TRUE(trans->GetResponseInfo()->network_accessed);
401 } 407 }
402 408
403 } // namespace 409 } // namespace
404 410
405 } // namespace net 411 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698