Chromium Code Reviews| Index: chrome/browser/ssl/chrome_fraudulent_certificate_reporter_unittest.cc |
| diff --git a/chrome/browser/ssl/chrome_fraudulent_certificate_reporter_unittest.cc b/chrome/browser/ssl/chrome_fraudulent_certificate_reporter_unittest.cc |
| index 79ae4280eec9eab95d4b901f8e56095fb5ea2ff4..40051f96a9726a6689fcc7a38b8a5dc37e7bd3ac 100644 |
| --- a/chrome/browser/ssl/chrome_fraudulent_certificate_reporter_unittest.cc |
| +++ b/chrome/browser/ssl/chrome_fraudulent_certificate_reporter_unittest.cc |
| @@ -22,6 +22,7 @@ |
| #include "net/http/transport_security_state.h" |
| #include "net/ssl/ssl_info.h" |
| #include "net/test/cert_test_util.h" |
| +#include "net/url_request/certificate_report_sender.h" |
| #include "net/url_request/fraudulent_certificate_reporter.h" |
| #include "net/url_request/url_request.h" |
| #include "net/url_request/url_request_context.h" |
| @@ -34,6 +35,11 @@ using net::SSLInfo; |
| namespace { |
| +const uint32 kServerPublicKeyVersion = 1; |
| +const uint8 kServerPublicKey[32] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; |
| + |
| // Builds an SSLInfo from an invalid cert chain. In this case, the cert is |
| // expired; what matters is that the cert would not pass even a normal |
| // sanity check. We test that we DO NOT send a fraudulent certificate report |
| @@ -116,15 +122,35 @@ class NotSendingTestReporter : public TestReporter { |
| } |
| }; |
| +class MockCertificateReportSender : public net::CertificateReportSender { |
| + public: |
| + MockCertificateReportSender( |
| + net::URLRequestContext* request_context, |
| + net::CertificateReportSender::CookiesPreference cookies_preference) |
| + : net::CertificateReportSender(request_context, cookies_preference) {} |
| + |
| + private: |
| + scoped_ptr<net::URLRequest> CreateURLRequest( |
| + net::URLRequestContext* context, |
| + const GURL& report_uri) override { |
| + return context->CreateRequest(GURL(std::string()), net::DEFAULT_PRIORITY, |
| + NULL); |
| + } |
|
davidben
2015/07/24 18:54:11
Does it work to just implement TransportSecuritySt
estark
2015/07/24 22:56:03
I made CertificateErrorReporter depend on net::Cer
|
| +}; |
| + |
| // A CertificateErrorReporter that uses a MockURLRequest, but is |
| // otherwise normal: reports are constructed and sent in the usual way. |
| class MockReporter : public CertificateErrorReporter { |
| public: |
| explicit MockReporter(net::URLRequestContext* request_context) |
| : CertificateErrorReporter( |
| - request_context, |
| GURL("http://example.com"), |
| - CertificateErrorReporter::DO_NOT_SEND_COOKIES) {} |
| + kServerPublicKey, |
| + kServerPublicKeyVersion, |
| + scoped_ptr<net::CertificateReportSender>( |
| + new MockCertificateReportSender( |
| + request_context, |
| + net::CertificateReportSender::DO_NOT_SEND_COOKIES))) {} |
| void SendReport(ReportType type, |
| const std::string& serialized_report) override { |
| @@ -132,13 +158,6 @@ class MockReporter : public CertificateErrorReporter { |
| EXPECT_FALSE(serialized_report.empty()); |
| CertificateErrorReporter::SendReport(type, serialized_report); |
| } |
| - |
| - private: |
| - scoped_ptr<net::URLRequest> CreateURLRequest( |
| - net::URLRequestContext* context) override { |
| - return context->CreateRequest(GURL(std::string()), net::DEFAULT_PRIORITY, |
| - NULL); |
| - } |
| }; |
| static void DoReportIsSent() { |