Index: net/base/x509_certificate_unittest.cc |
diff --git a/net/base/x509_certificate_unittest.cc b/net/base/x509_certificate_unittest.cc |
index f48336226c0c9701989bb2df21e6a299f23acd56..df6cccb8d33232a3ff715f8df632221600fbdc61 100644 |
--- a/net/base/x509_certificate_unittest.cc |
+++ b/net/base/x509_certificate_unittest.cc |
@@ -375,6 +375,80 @@ TEST(X509CertificateTest, ThawteCertParsing) { |
#endif |
} |
+// Test that all desired AttributeAndValue pairs can be extracted when only |
+// a single RelativeDistinguishedName is present. "Normally" there is only |
+// one AVA per RDN, but some CAs place all AVAs within a single RDN. |
+// This is a regression test for http://crbug.com/101009 |
+TEST(X509CertificateTest, InfonotaryCertParsing) { |
+ FilePath certs_dir = GetTestCertsDirectory(); |
+ |
+ scoped_refptr<X509Certificate> infonotary_cert = |
+ ImportCertFromFile(certs_dir, "infonotary.pem"); |
+ ASSERT_NE(static_cast<X509Certificate*>(NULL), infonotary_cert); |
+ |
+ const CertPrincipal& subject = infonotary_cert->subject(); |
+ EXPECT_EQ("Vladislav Ivanov Evgeniev", subject.common_name); |
+ EXPECT_EQ("", subject.locality_name); |
+ EXPECT_EQ("", subject.state_or_province_name); |
+ EXPECT_EQ("", subject.country_name); |
+ EXPECT_EQ(0U, subject.street_addresses.size()); |
+ EXPECT_EQ(0U, subject.organization_names.size()); |
+ EXPECT_EQ(0U, subject.organization_unit_names.size()); |
+ ASSERT_EQ(1U, subject.domain_components.size()); |
+ EXPECT_EQ("identity-ca", subject.domain_components[0]); |
+ |
+ const CertPrincipal& issuer = infonotary_cert->issuer(); |
+ EXPECT_EQ("i-Notary TrustPath Validated Identity CA", issuer.common_name); |
+ EXPECT_EQ("", issuer.locality_name); |
+ EXPECT_EQ("", issuer.state_or_province_name); |
+ EXPECT_EQ("BG", issuer.country_name); |
+ EXPECT_EQ(0U, issuer.street_addresses.size()); |
+ ASSERT_EQ(1U, issuer.organization_names.size()); |
+ EXPECT_EQ("InfoNotary PLC", issuer.organization_names[0]); |
+ ASSERT_EQ(1U, issuer.organization_unit_names.size()); |
+ EXPECT_EQ("i-Notary TrustPath Validated Identity CA", |
+ issuer.organization_unit_names[0]); |
+ ASSERT_EQ(1U, issuer.domain_components.size()); |
+ EXPECT_EQ("identity-ca", issuer.domain_components[0]); |
+} |
+ |
+// Test that characters which would normally be escaped in the string form, |
+// such as = or ", are not escaped when parsed as individual components. |
wtc
2011/12/01 23:59:41
Nit: put = and " in single quotes?
|
+// This is a regression test for http://crbug.com/102839 |
+TEST(X509CertificateTest, BonaireCertParsing) { |
+ FilePath certs_dir = GetTestCertsDirectory(); |
+ |
+ scoped_refptr<X509Certificate> bonairexl_cert = |
+ ImportCertFromFile(certs_dir, "bonairexl.pem"); |
+ ASSERT_NE(static_cast<X509Certificate*>(NULL), bonairexl_cert); |
+ |
+ const CertPrincipal& subject = bonairexl_cert->subject(); |
+ EXPECT_EQ("www.bonairexl.com", subject.common_name); |
+ EXPECT_EQ("Bergen", subject.locality_name); |
+ EXPECT_EQ("Noord-Holland", subject.state_or_province_name); |
+ EXPECT_EQ("NL", subject.country_name); |
+ ASSERT_EQ(1U, subject.street_addresses.size()); |
+ EXPECT_EQ("Eeuwigelaan 3", subject.street_addresses[0]); |
+ ASSERT_EQ(1U, subject.organization_names.size()); |
+ EXPECT_EQ("Aan Zee \"Gezellige Vakantiehuizen\" B.V.", |
+ subject.organization_names[0]); |
+ ASSERT_EQ(2U, subject.organization_unit_names.size()); |
+ EXPECT_EQ("ICT", subject.organization_unit_names[0]); |
+ EXPECT_EQ("COMODO EV SSL", subject.organization_unit_names[1]); |
+ EXPECT_EQ(0U, subject.domain_components.size()); |
+ |
+ const CertPrincipal& issuer = bonairexl_cert->issuer(); |
+ EXPECT_EQ("COMODO Extended Validation Secure Server CA", issuer.common_name); |
+ EXPECT_EQ("Salford", issuer.locality_name); |
+ EXPECT_EQ("Greater Manchester", issuer.state_or_province_name); |
+ EXPECT_EQ("GB", issuer.country_name); |
+ EXPECT_EQ(0U, issuer.street_addresses.size()); |
+ ASSERT_EQ(1U, issuer.organization_names.size()); |
+ EXPECT_EQ("COMODO CA Limited", issuer.organization_names[0]); |
+ EXPECT_EQ(0U, issuer.organization_unit_names.size()); |
+ EXPECT_EQ(0U, issuer.domain_components.size()); |
+} |
+ |
TEST(X509CertificateTest, PaypalNullCertParsing) { |
scoped_refptr<X509Certificate> paypal_null_cert( |
X509Certificate::CreateFromBytes( |