| 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 |