Chromium Code Reviews| 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( |