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

Unified Diff: net/cert/internal/parse_certificate_unittest.cc

Issue 2361233002: Convert tests that parse an Extensions sequence to instead (Closed)
Patch Set: add back comment Created 4 years, 3 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
« no previous file with comments | « no previous file | net/data/parse_certificate_unittest/extended_key_usage.pem » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/cert/internal/parse_certificate_unittest.cc
diff --git a/net/cert/internal/parse_certificate_unittest.cc b/net/cert/internal/parse_certificate_unittest.cc
index 00f4acfed2ef56a7293782d4f0e281f71f5dc0d8..493638989eeafb1442ceb69b4d5b106fcc731220 100644
--- a/net/cert/internal/parse_certificate_unittest.cc
+++ b/net/cert/internal/parse_certificate_unittest.cc
@@ -418,107 +418,34 @@ TEST(ParseCertificateTest, ExtensionCritical3) {
ASSERT_FALSE(ParseCertificateFromFile("extension_critical_3.pem"));
}
-// Runs a test for extensions parsing. The input file is a PEM file which
-// contains a DER-encoded Extensions sequence, as well as the expected value
-// for each contained extension.
-void EnsureParsingExtensionsSucceeds(
- const std::string& file_name,
- std::map<der::Input, ParsedExtension>* extensions,
- std::string* data) {
- const PemBlockMapping mappings[] = {
- // Test Input.
- {"EXTENSIONS", data},
- };
-
- ASSERT_TRUE(ReadTestDataFromPemFile(GetFilePath(file_name), mappings));
- ASSERT_TRUE(ParseExtensions(der::Input(data), extensions));
-}
-
-// Runs a test that verifies extensions parsing fails. The input file is a PEM
-// file which contains a DER-encoded Extensions sequence.
-void EnsureParsingExtensionsFails(const std::string& file_name) {
- std::string data;
-
- const PemBlockMapping mappings[] = {
- {"EXTENSIONS", &data},
- };
-
- std::map<der::Input, ParsedExtension> extensions;
- ASSERT_TRUE(ReadTestDataFromPemFile(GetFilePath(file_name), mappings));
- ASSERT_FALSE(ParseExtensions(der::Input(&data), &extensions));
-}
-
// Parses an Extensions that is an empty sequence.
-TEST(ParseExtensionsTest, EmptySequence) {
- EnsureParsingExtensionsFails("extensions_empty_sequence.pem");
+TEST(ParseCertificateTest, ExtensionsEmptySequence) {
+ ASSERT_FALSE(ParseCertificateFromFile("extensions_empty_sequence.pem"));
}
// Parses an Extensions that is not a sequence.
-TEST(ParseExtensionsTest, NotSequence) {
- EnsureParsingExtensionsFails("extensions_not_sequence.pem");
+TEST(ParseCertificateTest, ExtensionsNotSequence) {
+ ASSERT_FALSE(ParseCertificateFromFile("extensions_not_sequence.pem"));
}
// Parses an Extensions that has data after the sequence.
-TEST(ParseExtensionsTest, DataAfterSequence) {
- EnsureParsingExtensionsFails("extensions_data_after_sequence.pem");
+TEST(ParseCertificateTest, ExtensionsDataAfterSequence) {
+ ASSERT_FALSE(ParseCertificateFromFile("extensions_data_after_sequence.pem"));
}
// Parses an Extensions that contains duplicated key usages.
-TEST(ParseExtensionsTest, DuplicateKeyUsage) {
- EnsureParsingExtensionsFails("extensions_duplicate_key_usage.pem");
-}
-
-// Parses an Extensions that contains an unknown critical extension.
-TEST(ParseExtensionsTest, UnknownCritical) {
mattm 2016/09/23 01:54:32 Were these tests supposed to be removed?
eroman 2016/09/23 01:58:05 Yes -- they are basically duplicates with extensio
- std::string data;
- std::map<der::Input, ParsedExtension> extensions;
- EnsureParsingExtensionsSucceeds("extensions_unknown_critical.pem",
- &extensions, &data);
-
- ASSERT_EQ(1u, extensions.size());
- auto iter = extensions.find(DavidBenOid());
- ASSERT_TRUE(iter != extensions.end());
- EXPECT_TRUE(iter->second.critical);
- EXPECT_EQ(4u, iter->second.value.Length());
-}
-
-// Parses an Extensions that contains an unknown non-critical extension.
-TEST(ParseExtensionsTest, UnknownNonCritical) {
- std::string data;
- std::map<der::Input, ParsedExtension> extensions;
- EnsureParsingExtensionsSucceeds("extensions_unknown_non_critical.pem",
- &extensions, &data);
-
- ASSERT_EQ(1u, extensions.size());
- auto iter = extensions.find(DavidBenOid());
- ASSERT_TRUE(iter != extensions.end());
- EXPECT_FALSE(iter->second.critical);
- EXPECT_EQ(4u, iter->second.value.Length());
-}
-
-// Parses an Extensions that contains a basic constraints.
-TEST(ParseExtensionsTest, BasicConstraints) {
- std::string data;
- std::map<der::Input, ParsedExtension> extensions;
- EnsureParsingExtensionsSucceeds("extensions_basic_constraints.pem",
- &extensions, &data);
-
- ASSERT_EQ(1u, extensions.size());
-
- auto iter = extensions.find(BasicConstraintsOid());
- ASSERT_TRUE(iter != extensions.end());
- EXPECT_TRUE(iter->second.critical);
- EXPECT_EQ(2u, iter->second.value.Length());
+TEST(ParseCertificateTest, ExtensionsDuplicateKeyUsage) {
+ ASSERT_FALSE(ParseCertificateFromFile("extensions_duplicate_key_usage.pem"));
}
// Parses an Extensions that contains an extended key usages.
-TEST(ParseExtensionsTest, ExtendedKeyUsage) {
- std::string data;
- std::map<der::Input, ParsedExtension> extensions;
- EnsureParsingExtensionsSucceeds("extensions_extended_key_usage.pem",
- &extensions, &data);
+TEST(ParseCertificateTest, ExtendedKeyUsage) {
+ scoped_refptr<ParsedCertificate> cert =
+ ParseCertificateFromFile("extended_key_usage.pem");
+ ASSERT_TRUE(cert);
- ASSERT_EQ(1u, extensions.size());
+ const auto& extensions = cert->unparsed_extensions();
+ ASSERT_EQ(3u, extensions.size());
auto iter = extensions.find(ExtKeyUsageOid());
ASSERT_TRUE(iter != extensions.end());
@@ -527,28 +454,24 @@ TEST(ParseExtensionsTest, ExtendedKeyUsage) {
}
// Parses an Extensions that contains a key usage.
-TEST(ParseExtensionsTest, KeyUsage) {
- std::string data;
- std::map<der::Input, ParsedExtension> extensions;
- EnsureParsingExtensionsSucceeds("extensions_key_usage.pem", &extensions,
- &data);
-
- ASSERT_EQ(1u, extensions.size());
+TEST(ParseCertificateTest, KeyUsage) {
+ scoped_refptr<ParsedCertificate> cert =
+ ParseCertificateFromFile("key_usage.pem");
+ ASSERT_TRUE(cert);
- auto iter = extensions.find(KeyUsageOid());
- ASSERT_TRUE(iter != extensions.end());
- EXPECT_TRUE(iter->second.critical);
- EXPECT_EQ(4u, iter->second.value.Length());
+ ASSERT_TRUE(cert->has_key_usage());
+ const uint8_t kExpectedValue[] = {0xA0};
mattm 2016/09/23 01:54:32 maybe dumb question, but why is it {a0} and not {0
eroman 2016/09/23 02:14:10 I will make this clearer in the code, and also add
eroman 2016/09/23 02:21:39 Done.
+ EXPECT_EQ(der::Input(kExpectedValue), cert->key_usage().bytes());
}
// Parses an Extensions that contains a policies extension.
-TEST(ParseExtensionsTest, Policies) {
- std::string data;
- std::map<der::Input, ParsedExtension> extensions;
- EnsureParsingExtensionsSucceeds("extensions_policies.pem", &extensions,
- &data);
+TEST(ParseCertificateTest, Policies) {
+ scoped_refptr<ParsedCertificate> cert =
+ ParseCertificateFromFile("policies.pem");
+ ASSERT_TRUE(cert);
- ASSERT_EQ(1u, extensions.size());
+ const auto& extensions = cert->unparsed_extensions();
+ ASSERT_EQ(3u, extensions.size());
auto iter = extensions.find(CertificatePoliciesOid());
ASSERT_TRUE(iter != extensions.end());
@@ -557,40 +480,29 @@ TEST(ParseExtensionsTest, Policies) {
}
// Parses an Extensions that contains a subjectaltname extension.
-TEST(ParseExtensionsTest, SubjectAltName) {
- std::string data;
- std::map<der::Input, ParsedExtension> extensions;
- EnsureParsingExtensionsSucceeds("extensions_subject_alt_name.pem",
- &extensions, &data);
-
- ASSERT_EQ(1u, extensions.size());
+TEST(ParseCertificateTest, SubjectAltName) {
+ scoped_refptr<ParsedCertificate> cert =
+ ParseCertificateFromFile("subject_alt_name.pem");
+ ASSERT_TRUE(cert);
- auto iter = extensions.find(SubjectAltNameOid());
- ASSERT_TRUE(iter != extensions.end());
- EXPECT_FALSE(iter->second.critical);
- EXPECT_EQ(23u, iter->second.value.Length());
+ ASSERT_TRUE(cert->has_subject_alt_names());
}
// Parses an Extensions that contains multiple extensions, sourced from a
// real-world certificate.
-TEST(ParseExtensionsTest, Real) {
- std::string data;
- std::map<der::Input, ParsedExtension> extensions;
- EnsureParsingExtensionsSucceeds("extensions_real.pem", &extensions, &data);
-
- ASSERT_EQ(7u, extensions.size());
+TEST(ParseCertificateTest, ExtensionsReal) {
+ scoped_refptr<ParsedCertificate> cert =
+ ParseCertificateFromFile("extensions_real.pem");
+ ASSERT_TRUE(cert);
- auto iter = extensions.find(KeyUsageOid());
- ASSERT_TRUE(iter != extensions.end());
- EXPECT_TRUE(iter->second.critical);
- EXPECT_EQ(4u, iter->second.value.Length());
+ const auto& extensions = cert->unparsed_extensions();
+ ASSERT_EQ(4u, extensions.size());
- iter = extensions.find(BasicConstraintsOid());
- ASSERT_TRUE(iter != extensions.end());
- EXPECT_TRUE(iter->second.critical);
- EXPECT_EQ(8u, iter->second.value.Length());
+ EXPECT_TRUE(cert->has_key_usage());
+ EXPECT_TRUE(cert->has_basic_constraints());
+ EXPECT_TRUE(cert->has_basic_constraints());
mattm 2016/09/23 01:54:32 repeated
eroman 2016/09/23 02:21:39 Done.
- iter = extensions.find(CertificatePoliciesOid());
+ auto iter = extensions.find(CertificatePoliciesOid());
ASSERT_TRUE(iter != extensions.end());
EXPECT_FALSE(iter->second.critical);
EXPECT_EQ(16u, iter->second.value.Length());
« no previous file with comments | « no previous file | net/data/parse_certificate_unittest/extended_key_usage.pem » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698