OLD | NEW |
---|---|
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "content/browser/loader/resource_loader.h" | 5 #include "content/browser/loader/resource_loader.h" |
6 | 6 |
7 #include "base/files/file.h" | 7 #include "base/files/file.h" |
8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
9 #include "base/location.h" | 9 #include "base/location.h" |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 20 matching lines...) Expand all Loading... | |
31 #include "net/base/chunked_upload_data_stream.h" | 31 #include "net/base/chunked_upload_data_stream.h" |
32 #include "net/base/io_buffer.h" | 32 #include "net/base/io_buffer.h" |
33 #include "net/base/mock_file_stream.h" | 33 #include "net/base/mock_file_stream.h" |
34 #include "net/base/net_errors.h" | 34 #include "net/base/net_errors.h" |
35 #include "net/base/request_priority.h" | 35 #include "net/base/request_priority.h" |
36 #include "net/base/test_data_directory.h" | 36 #include "net/base/test_data_directory.h" |
37 #include "net/base/upload_bytes_element_reader.h" | 37 #include "net/base/upload_bytes_element_reader.h" |
38 #include "net/cert/x509_certificate.h" | 38 #include "net/cert/x509_certificate.h" |
39 #include "net/ssl/client_cert_store.h" | 39 #include "net/ssl/client_cert_store.h" |
40 #include "net/ssl/ssl_cert_request_info.h" | 40 #include "net/ssl/ssl_cert_request_info.h" |
41 #include "net/ssl/ssl_private_key.h" | |
41 #include "net/test/cert_test_util.h" | 42 #include "net/test/cert_test_util.h" |
42 #include "net/test/embedded_test_server/embedded_test_server.h" | 43 #include "net/test/embedded_test_server/embedded_test_server.h" |
43 #include "net/url_request/url_request.h" | 44 #include "net/url_request/url_request.h" |
44 #include "net/url_request/url_request_filter.h" | 45 #include "net/url_request/url_request_filter.h" |
45 #include "net/url_request/url_request_interceptor.h" | 46 #include "net/url_request/url_request_interceptor.h" |
46 #include "net/url_request/url_request_job_factory.h" | 47 #include "net/url_request/url_request_job_factory.h" |
47 #include "net/url_request/url_request_job_factory_impl.h" | 48 #include "net/url_request/url_request_job_factory_impl.h" |
48 #include "net/url_request/url_request_test_job.h" | 49 #include "net/url_request/url_request_test_job.h" |
49 #include "net/url_request/url_request_test_util.h" | 50 #include "net/url_request/url_request_test_util.h" |
50 #include "storage/browser/blob/shareable_file_reference.h" | 51 #include "storage/browser/blob/shareable_file_reference.h" |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
156 void Start() override { | 157 void Start() override { |
157 scoped_refptr<net::SSLCertRequestInfo> cert_request_info( | 158 scoped_refptr<net::SSLCertRequestInfo> cert_request_info( |
158 new net::SSLCertRequestInfo); | 159 new net::SSLCertRequestInfo); |
159 cert_request_info->cert_authorities = test_authorities(); | 160 cert_request_info->cert_authorities = test_authorities(); |
160 base::ThreadTaskRunnerHandle::Get()->PostTask( | 161 base::ThreadTaskRunnerHandle::Get()->PostTask( |
161 FROM_HERE, | 162 FROM_HERE, |
162 base::Bind(&MockClientCertURLRequestJob::NotifyCertificateRequested, | 163 base::Bind(&MockClientCertURLRequestJob::NotifyCertificateRequested, |
163 this, cert_request_info)); | 164 this, cert_request_info)); |
164 } | 165 } |
165 | 166 |
166 void ContinueWithCertificate(net::X509Certificate* cert) override { | 167 void ContinueWithCertificate(net::X509Certificate* cert, |
168 net::SSLPrivateKey* private_key) override { | |
167 net::URLRequestTestJob::Start(); | 169 net::URLRequestTestJob::Start(); |
168 } | 170 } |
169 | 171 |
170 private: | 172 private: |
171 ~MockClientCertURLRequestJob() override {} | 173 ~MockClientCertURLRequestJob() override {} |
172 | 174 |
173 DISALLOW_COPY_AND_ASSIGN(MockClientCertURLRequestJob); | 175 DISALLOW_COPY_AND_ASSIGN(MockClientCertURLRequestJob); |
174 }; | 176 }; |
175 | 177 |
176 class MockClientCertJobProtocolHandler | 178 class MockClientCertJobProtocolHandler |
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
700 EXPECT_EQ(1, store_request_count); | 702 EXPECT_EQ(1, store_request_count); |
701 EXPECT_EQ(MockClientCertURLRequestJob::test_authorities(), | 703 EXPECT_EQ(MockClientCertURLRequestJob::test_authorities(), |
702 store_requested_authorities); | 704 store_requested_authorities); |
703 | 705 |
704 // Check if the retrieved certificates were passed to the content browser | 706 // Check if the retrieved certificates were passed to the content browser |
705 // client. | 707 // client. |
706 EXPECT_EQ(1, test_client.call_count()); | 708 EXPECT_EQ(1, test_client.call_count()); |
707 EXPECT_EQ(dummy_certs, test_client.passed_certs()); | 709 EXPECT_EQ(dummy_certs, test_client.passed_certs()); |
708 | 710 |
709 // Continue the request. | 711 // Continue the request. |
710 test_client.ContinueWithCertificate(dummy_certs[0].get()); | 712 test_client.ContinueWithCertificate(dummy_certs[0].get()); |
davidben
2015/11/04 00:17:38
Rather than require the ugly os_cert_handle check,
svaldez
2015/11/04 16:55:51
Done.
| |
711 raw_ptr_resource_handler_->WaitForResponseComplete(); | 713 raw_ptr_resource_handler_->WaitForResponseComplete(); |
712 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->status().error()); | 714 EXPECT_EQ(net::OK, raw_ptr_resource_handler_->status().error()); |
713 | 715 |
714 // Restore the original content browser client. | 716 // Restore the original content browser client. |
715 SetBrowserClientForTesting(old_client); | 717 SetBrowserClientForTesting(old_client); |
716 } | 718 } |
717 | 719 |
718 // Tests that client certificates are requested on a platform with NULL | 720 // Tests that client certificates are requested on a platform with NULL |
719 // ClientCertStore. | 721 // ClientCertStore. |
720 TEST_F(ClientCertResourceLoaderTest, WithNullStore) { | 722 TEST_F(ClientCertResourceLoaderTest, WithNullStore) { |
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1139 ASSERT_TRUE( | 1141 ASSERT_TRUE( |
1140 CertStore::GetInstance()->RetrieveCert(deserialized.cert_id, &cert)); | 1142 CertStore::GetInstance()->RetrieveCert(deserialized.cert_id, &cert)); |
1141 EXPECT_TRUE(cert->Equals(GetTestCert().get())); | 1143 EXPECT_TRUE(cert->Equals(GetTestCert().get())); |
1142 | 1144 |
1143 EXPECT_EQ(kTestCertError, deserialized.cert_status); | 1145 EXPECT_EQ(kTestCertError, deserialized.cert_status); |
1144 EXPECT_EQ(kTestConnectionStatus, deserialized.connection_status); | 1146 EXPECT_EQ(kTestConnectionStatus, deserialized.connection_status); |
1145 EXPECT_EQ(kTestSecurityBits, deserialized.security_bits); | 1147 EXPECT_EQ(kTestSecurityBits, deserialized.security_bits); |
1146 } | 1148 } |
1147 | 1149 |
1148 } // namespace content | 1150 } // namespace content |
OLD | NEW |