OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "components/certificate_reporting/error_reporter.h" | 5 #include "components/certificate_reporting/error_reporter.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 #include <string.h> | 8 #include <string.h> |
9 | 9 |
10 #include <set> | 10 #include <set> |
11 #include <string> | 11 #include <string> |
12 | 12 |
13 #include "base/bind.h" | 13 #include "base/bind.h" |
14 #include "base/bind_helpers.h" | 14 #include "base/bind_helpers.h" |
15 #include "base/macros.h" | 15 #include "base/macros.h" |
| 16 #include "base/memory/ptr_util.h" |
16 #include "components/certificate_reporting/encrypted_cert_logger.pb.h" | 17 #include "components/certificate_reporting/encrypted_cert_logger.pb.h" |
17 #include "crypto/curve25519.h" | 18 #include "crypto/curve25519.h" |
18 #include "net/url_request/certificate_report_sender.h" | 19 #include "net/url_request/certificate_report_sender.h" |
19 #include "testing/gtest/include/gtest/gtest.h" | 20 #include "testing/gtest/include/gtest/gtest.h" |
20 | 21 |
21 namespace certificate_reporting { | 22 namespace certificate_reporting { |
22 | 23 |
23 namespace { | 24 namespace { |
24 | 25 |
25 const char kDummyHttpReportUri[] = "http://example.test"; | 26 const char kDummyHttpReportUri[] = "http://example.test"; |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 | 68 |
68 // Test that ErrorReporter::SendExtendedReportingReport sends | 69 // Test that ErrorReporter::SendExtendedReportingReport sends |
69 // an encrypted or plaintext extended reporting report as appropriate. | 70 // an encrypted or plaintext extended reporting report as appropriate. |
70 TEST_F(ErrorReporterTest, ExtendedReportingSendReport) { | 71 TEST_F(ErrorReporterTest, ExtendedReportingSendReport) { |
71 // Data should not be encrypted when sent to an HTTPS URL. | 72 // Data should not be encrypted when sent to an HTTPS URL. |
72 MockCertificateReportSender* mock_report_sender = | 73 MockCertificateReportSender* mock_report_sender = |
73 new MockCertificateReportSender(); | 74 new MockCertificateReportSender(); |
74 GURL https_url(kDummyHttpsReportUri); | 75 GURL https_url(kDummyHttpsReportUri); |
75 ErrorReporter https_reporter(https_url, server_public_key_, | 76 ErrorReporter https_reporter(https_url, server_public_key_, |
76 kServerPublicKeyTestVersion, | 77 kServerPublicKeyTestVersion, |
77 make_scoped_ptr(mock_report_sender)); | 78 base::WrapUnique(mock_report_sender)); |
78 https_reporter.SendExtendedReportingReport(kDummyReport); | 79 https_reporter.SendExtendedReportingReport(kDummyReport); |
79 EXPECT_EQ(mock_report_sender->latest_report_uri(), https_url); | 80 EXPECT_EQ(mock_report_sender->latest_report_uri(), https_url); |
80 EXPECT_EQ(mock_report_sender->latest_report(), kDummyReport); | 81 EXPECT_EQ(mock_report_sender->latest_report(), kDummyReport); |
81 | 82 |
82 // Data should be encrypted when sent to an HTTP URL. | 83 // Data should be encrypted when sent to an HTTP URL. |
83 if (ErrorReporter::IsHttpUploadUrlSupported()) { | 84 if (ErrorReporter::IsHttpUploadUrlSupported()) { |
84 MockCertificateReportSender* http_mock_report_sender = | 85 MockCertificateReportSender* http_mock_report_sender = |
85 new MockCertificateReportSender(); | 86 new MockCertificateReportSender(); |
86 GURL http_url(kDummyHttpReportUri); | 87 GURL http_url(kDummyHttpReportUri); |
87 ErrorReporter http_reporter(http_url, server_public_key_, | 88 ErrorReporter http_reporter(http_url, server_public_key_, |
88 kServerPublicKeyTestVersion, | 89 kServerPublicKeyTestVersion, |
89 make_scoped_ptr(http_mock_report_sender)); | 90 base::WrapUnique(http_mock_report_sender)); |
90 http_reporter.SendExtendedReportingReport(kDummyReport); | 91 http_reporter.SendExtendedReportingReport(kDummyReport); |
91 | 92 |
92 EXPECT_EQ(http_mock_report_sender->latest_report_uri(), http_url); | 93 EXPECT_EQ(http_mock_report_sender->latest_report_uri(), http_url); |
93 | 94 |
94 std::string uploaded_report; | 95 std::string uploaded_report; |
95 EncryptedCertLoggerRequest encrypted_request; | 96 EncryptedCertLoggerRequest encrypted_request; |
96 ASSERT_TRUE(encrypted_request.ParseFromString( | 97 ASSERT_TRUE(encrypted_request.ParseFromString( |
97 http_mock_report_sender->latest_report())); | 98 http_mock_report_sender->latest_report())); |
98 EXPECT_EQ(kServerPublicKeyTestVersion, | 99 EXPECT_EQ(kServerPublicKeyTestVersion, |
99 encrypted_request.server_public_key_version()); | 100 encrypted_request.server_public_key_version()); |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
262 ASSERT_TRUE(encrypted_request.ParseFromString( | 263 ASSERT_TRUE(encrypted_request.ParseFromString( |
263 std::string(reinterpret_cast<const char*>(kSerializedEncryptedReport), | 264 std::string(reinterpret_cast<const char*>(kSerializedEncryptedReport), |
264 sizeof(kSerializedEncryptedReport)))); | 265 sizeof(kSerializedEncryptedReport)))); |
265 ASSERT_TRUE(ErrorReporter::DecryptErrorReport( | 266 ASSERT_TRUE(ErrorReporter::DecryptErrorReport( |
266 server_private_key_, encrypted_request, &decrypted_serialized_report)); | 267 server_private_key_, encrypted_request, &decrypted_serialized_report)); |
267 } | 268 } |
268 | 269 |
269 } // namespace | 270 } // namespace |
270 | 271 |
271 } // namespace certificate_reporting | 272 } // namespace certificate_reporting |
OLD | NEW |