Index: chrome/browser/ssl/certificate_error_report_unittest.cc |
diff --git a/chrome/browser/ssl/certificate_error_report_unittest.cc b/chrome/browser/ssl/certificate_error_report_unittest.cc |
index ff9b1ba679452169c0ed0c5ea65f069304cff305..e5110c1e4b31ca22f40384e0065cc79608364b3f 100644 |
--- a/chrome/browser/ssl/certificate_error_report_unittest.cc |
+++ b/chrome/browser/ssl/certificate_error_report_unittest.cc |
@@ -80,6 +80,46 @@ TEST(CertificateErrorReportTest, SerializedReportAsProtobuf) { |
EXPECT_EQ(1u, reported_errors.count(kSecondReportedCertError)); |
} |
+TEST(CertificateErrorReportTest, |
+ SerializedReportAsProtobufWithInterstitialInfo) { |
+ SSLInfo ssl_info = GetTestSSLInfo(); |
+ |
+ std::string serialized_report; |
+ CertificateErrorReport report(kDummyHostname, ssl_info); |
+ |
+ const CertificateErrorReport::InterstitialReason interstitial_reason = |
+ CertificateErrorReport::INTERSTITIAL_CLOCK; |
+ const CertificateErrorReport::ProceedDecision proceeded = |
+ CertificateErrorReport::USER_PROCEEDED; |
+ const CertificateErrorReport::Overridable overridable = |
+ CertificateErrorReport::INTERSTITIAL_OVERRIDABLE; |
+ |
+ report.SetInterstitialInfo(interstitial_reason, proceeded, overridable); |
+ |
+ report.Serialize(&serialized_report); |
+ |
+ CertLoggerRequest deserialized_report; |
+ ASSERT_TRUE(deserialized_report.ParseFromString(serialized_report)); |
+ EXPECT_EQ(kDummyHostname, deserialized_report.hostname()); |
+ EXPECT_EQ(GetPEMEncodedChain(), deserialized_report.cert_chain()); |
+ EXPECT_EQ(1, deserialized_report.pin().size()); |
+ EXPECT_EQ(kDummyFailureLog, deserialized_report.pin().Get(0)); |
+ |
+ EXPECT_EQ(CertLoggerInterstitialInfo::INTERSTITIAL_CLOCK, |
+ deserialized_report.interstitial_info().interstitial_reason()); |
+ EXPECT_EQ(true, deserialized_report.interstitial_info().user_proceeded()); |
+ EXPECT_EQ(true, deserialized_report.interstitial_info().overridable()); |
+ |
+ std::set<CertLoggerRequest::CertError> reported_errors; |
+ reported_errors.insert(static_cast<CertLoggerRequest::CertError>( |
+ deserialized_report.cert_error().Get(0))); |
+ reported_errors.insert(static_cast<CertLoggerRequest::CertError>( |
+ deserialized_report.cert_error().Get(1))); |
+ EXPECT_EQ(kNumCertErrors, reported_errors.size()); |
+ EXPECT_EQ(1u, reported_errors.count(kFirstReportedCertError)); |
+ EXPECT_EQ(1u, reported_errors.count(kSecondReportedCertError)); |
+} |
+ |
// Test that a serialized report can be parsed. |
TEST(CertificateErrorReportTest, ParseSerializedReport) { |
SSLInfo ssl_info = GetTestSSLInfo(); |