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

Side by Side Diff: components/certificate_reporting/error_reporter_unittest.cc

Issue 2648713002: Add response code to the success callback of ReportSender (Closed)
Patch Set: Created 3 years, 11 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 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>
(...skipping 15 matching lines...) Expand all
26 26
27 namespace certificate_reporting { 27 namespace certificate_reporting {
28 28
29 namespace { 29 namespace {
30 30
31 const char kDummyHttpReportUri[] = "http://example.test"; 31 const char kDummyHttpReportUri[] = "http://example.test";
32 const char kDummyHttpsReportUri[] = "https://example.test"; 32 const char kDummyHttpsReportUri[] = "https://example.test";
33 const char kDummyReport[] = "a dummy report"; 33 const char kDummyReport[] = "a dummy report";
34 const uint32_t kServerPublicKeyTestVersion = 16; 34 const uint32_t kServerPublicKeyTestVersion = 16;
35 35
36 void ErrorCallback(bool* called, const GURL& report_uri, int net_error) { 36 void ErrorCallback(bool* called,
37 const GURL& report_uri,
38 int net_error,
39 int response_code) {
37 EXPECT_NE(net::OK, net_error); 40 EXPECT_NE(net::OK, net_error);
38 *called = true; 41 *called = true;
39 } 42 }
40 43
41 void SuccessCallback(bool* called) { 44 void SuccessCallback(bool* called, int response_code) {
42 *called = true; 45 *called = true;
43 } 46 }
44 47
45 // A mock ReportSender that keeps track of the last report 48 // A mock ReportSender that keeps track of the last report
46 // sent. 49 // sent.
47 class MockCertificateReportSender : public net::ReportSender { 50 class MockCertificateReportSender : public net::ReportSender {
48 public: 51 public:
49 MockCertificateReportSender() 52 MockCertificateReportSender()
50 : net::ReportSender(nullptr, DO_NOT_SEND_COOKIES) {} 53 : net::ReportSender(nullptr, DO_NOT_SEND_COOKIES) {}
51 ~MockCertificateReportSender() override {} 54 ~MockCertificateReportSender() override {}
52 55
53 void Send( 56 void Send(const GURL& report_uri,
54 const GURL& report_uri, 57 base::StringPiece content_type,
55 base::StringPiece content_type, 58 base::StringPiece report,
56 base::StringPiece report, 59 const base::Callback<void(int)>& success_callback,
57 const base::Callback<void()>& success_callback, 60 const base::Callback<void(const GURL&, int, int)>& error_callback)
58 const base::Callback<void(const GURL&, int)>& error_callback) override { 61 override {
59 latest_report_uri_ = report_uri; 62 latest_report_uri_ = report_uri;
60 report.CopyToString(&latest_report_); 63 report.CopyToString(&latest_report_);
61 content_type.CopyToString(&latest_content_type_); 64 content_type.CopyToString(&latest_content_type_);
62 } 65 }
63 66
64 const GURL& latest_report_uri() const { return latest_report_uri_; } 67 const GURL& latest_report_uri() const { return latest_report_uri_; }
65 68
66 const std::string& latest_report() const { return latest_report_; } 69 const std::string& latest_report() const { return latest_report_; }
67 70
68 const std::string& latest_content_type() const { 71 const std::string& latest_content_type() const {
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 // an encrypted or plaintext extended reporting report as appropriate. 123 // an encrypted or plaintext extended reporting report as appropriate.
121 TEST_F(ErrorReporterTest, ExtendedReportingSendReport) { 124 TEST_F(ErrorReporterTest, ExtendedReportingSendReport) {
122 // Data should not be encrypted when sent to an HTTPS URL. 125 // Data should not be encrypted when sent to an HTTPS URL.
123 MockCertificateReportSender* mock_report_sender = 126 MockCertificateReportSender* mock_report_sender =
124 new MockCertificateReportSender(); 127 new MockCertificateReportSender();
125 GURL https_url(kDummyHttpsReportUri); 128 GURL https_url(kDummyHttpsReportUri);
126 ErrorReporter https_reporter(https_url, server_public_key_, 129 ErrorReporter https_reporter(https_url, server_public_key_,
127 kServerPublicKeyTestVersion, 130 kServerPublicKeyTestVersion,
128 base::WrapUnique(mock_report_sender)); 131 base::WrapUnique(mock_report_sender));
129 https_reporter.SendExtendedReportingReport( 132 https_reporter.SendExtendedReportingReport(
130 kDummyReport, base::Closure(), base::Callback<void(const GURL&, int)>()); 133 kDummyReport, base::Callback<void(int)>(),
134 base::Callback<void(const GURL&, int, int)>());
131 EXPECT_EQ(mock_report_sender->latest_report_uri(), https_url); 135 EXPECT_EQ(mock_report_sender->latest_report_uri(), https_url);
132 EXPECT_EQ(mock_report_sender->latest_report(), kDummyReport); 136 EXPECT_EQ(mock_report_sender->latest_report(), kDummyReport);
133 137
134 // Data should be encrypted when sent to an HTTP URL. 138 // Data should be encrypted when sent to an HTTP URL.
135 MockCertificateReportSender* http_mock_report_sender = 139 MockCertificateReportSender* http_mock_report_sender =
136 new MockCertificateReportSender(); 140 new MockCertificateReportSender();
137 GURL http_url(kDummyHttpReportUri); 141 GURL http_url(kDummyHttpReportUri);
138 ErrorReporter http_reporter(http_url, server_public_key_, 142 ErrorReporter http_reporter(http_url, server_public_key_,
139 kServerPublicKeyTestVersion, 143 kServerPublicKeyTestVersion,
140 base::WrapUnique(http_mock_report_sender)); 144 base::WrapUnique(http_mock_report_sender));
141 http_reporter.SendExtendedReportingReport( 145 http_reporter.SendExtendedReportingReport(
142 kDummyReport, base::Closure(), base::Callback<void(const GURL&, int)>()); 146 kDummyReport, base::Callback<void(int)>(),
147 base::Callback<void(const GURL&, int, int)>());
143 148
144 EXPECT_EQ(http_mock_report_sender->latest_report_uri(), http_url); 149 EXPECT_EQ(http_mock_report_sender->latest_report_uri(), http_url);
145 EXPECT_EQ("application/octet-stream", 150 EXPECT_EQ("application/octet-stream",
146 http_mock_report_sender->latest_content_type()); 151 http_mock_report_sender->latest_content_type());
147 152
148 std::string uploaded_report; 153 std::string uploaded_report;
149 EncryptedCertLoggerRequest encrypted_request; 154 EncryptedCertLoggerRequest encrypted_request;
150 ASSERT_TRUE(encrypted_request.ParseFromString( 155 ASSERT_TRUE(encrypted_request.ParseFromString(
151 http_mock_report_sender->latest_report())); 156 http_mock_report_sender->latest_report()));
152 EXPECT_EQ(kServerPublicKeyTestVersion, 157 EXPECT_EQ(kServerPublicKeyTestVersion,
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 ASSERT_TRUE(encrypted_request.ParseFromString( 373 ASSERT_TRUE(encrypted_request.ParseFromString(
369 std::string(reinterpret_cast<const char*>(kSerializedEncryptedReport), 374 std::string(reinterpret_cast<const char*>(kSerializedEncryptedReport),
370 sizeof(kSerializedEncryptedReport)))); 375 sizeof(kSerializedEncryptedReport))));
371 ASSERT_TRUE(ErrorReporter::DecryptErrorReport( 376 ASSERT_TRUE(ErrorReporter::DecryptErrorReport(
372 server_private_key_, encrypted_request, &decrypted_serialized_report)); 377 server_private_key_, encrypted_request, &decrypted_serialized_report));
373 } 378 }
374 379
375 } // namespace 380 } // namespace
376 381
377 } // namespace certificate_reporting 382 } // namespace certificate_reporting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698