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

Unified Diff: content/common/ssl_status_serialization_unittest.cc

Issue 2206093004: Change SSLStatus to carry a vector of SCT statuses instead of counters (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: content/common/ssl_status_serialization_unittest.cc
diff --git a/content/common/ssl_status_serialization_unittest.cc b/content/common/ssl_status_serialization_unittest.cc
index d230c329e3481f276a1f50ae2c3f7746a38a74a1..398a7f4f03ddfe0dec86a9890fe5320029ba324b 100644
--- a/content/common/ssl_status_serialization_unittest.cc
+++ b/content/common/ssl_status_serialization_unittest.cc
@@ -18,9 +18,7 @@ void SetTestStatus(SSLStatus* status) {
status->security_bits = 80;
status->key_exchange_info = 23;
status->connection_status = net::SSL_CONNECTION_VERSION_TLS1_2;
- status->num_unknown_scts = 0;
- status->num_invalid_scts = 0;
- status->num_valid_scts = 1;
+ status->sct_statuses.push_back(net::ct::SCT_STATUS_OK);
}
bool SSLStatusAreEqual(const SSLStatus& a, const SSLStatus &b) {
@@ -37,9 +35,7 @@ std::ostream& operator<<(std::ostream& os, const SSLStatus& status) {
<< "\nKey exchange info: " << status.key_exchange_info
<< "\nConnection status: " << status.connection_status
<< "\nContent Status: " << status.content_status
- << "\nNumber of unknown SCTs: " << status.num_unknown_scts
- << "\nNumber of invalid SCTs: " << status.num_invalid_scts
- << "\nNumber of valid SCTs: " << status.num_valid_scts;
+ << "\nNumber of SCTs: " << status.sct_statuses.size();
}
// Test that a valid serialized SSLStatus returns true on
@@ -109,4 +105,46 @@ TEST(SSLStatusSerializationTest, DeserializeBogusSecurityStyle) {
EXPECT_PRED2(SSLStatusAreEqual, SSLStatus(), invalid_deserialized);
}
+// Serialize a status with an empty |sct_statuses| field and test that
+// deserializing works.
+TEST(SSLStatusSerializationTest, DeserializeEmptySCTStatuses) {
+ SSLStatus status;
+ SetTestStatus(&status);
+ status.sct_statuses.clear();
+ std::string serialized = SerializeSecurityInfo(status);
+
+ SSLStatus deserialized;
+ ASSERT_TRUE(DeserializeSecurityInfo(serialized, &deserialized));
+ EXPECT_PRED2(SSLStatusAreEqual, status, deserialized);
+}
+
+// Serialize a status with multiple different |sct_statuses| and test that
+// deserializing works.
+TEST(SSLStatusSerializationTest, DeserializeMultipleSCTStatuses) {
+ SSLStatus status;
+ SetTestStatus(&status);
+ status.sct_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN);
+ status.sct_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN);
+ status.sct_statuses.push_back(net::ct::SCT_STATUS_OK);
+ status.sct_statuses.push_back(net::ct::SCT_STATUS_INVALID);
+ std::string serialized = SerializeSecurityInfo(status);
+
+ SSLStatus deserialized;
+ ASSERT_TRUE(DeserializeSecurityInfo(serialized, &deserialized));
+ EXPECT_PRED2(SSLStatusAreEqual, status, deserialized);
+}
+
+// Serialize a status with a bad SCTVerifyStatus value and test that
+// deserializing it fails.
+TEST(SSLStatusSerializationTest, DeserializeBogusSCTVerifyStatus) {
+ SSLStatus status;
+ SetTestStatus(&status);
+ status.sct_statuses.push_back(static_cast<net::ct::SCTVerifyStatus>(100));
+ std::string serialized = SerializeSecurityInfo(status);
+
+ SSLStatus deserialized;
+ ASSERT_FALSE(DeserializeSecurityInfo(serialized, &deserialized));
+ EXPECT_PRED2(SSLStatusAreEqual, SSLStatus(), deserialized);
+}
+
} // namespace

Powered by Google App Engine
This is Rietveld 408576698