| 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..686f20fe9b3c722600f6747fb311f8d1602ab3ee 100644
|
| --- a/net/base/x509_certificate_unittest.cc
|
| +++ b/net/base/x509_certificate_unittest.cc
|
| @@ -375,6 +375,56 @@ 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, MultivalueRDN) {
|
| + FilePath certs_dir = GetTestCertsDirectory();
|
| +
|
| + scoped_refptr<X509Certificate> multivalue_rdn_cert =
|
| + ImportCertFromFile(certs_dir, "multivalue_rdn.pem");
|
| + ASSERT_NE(static_cast<X509Certificate*>(NULL), multivalue_rdn_cert);
|
| +
|
| + const CertPrincipal& subject = multivalue_rdn_cert->subject();
|
| + EXPECT_EQ("Multivalue RDN Test", subject.common_name);
|
| + EXPECT_EQ("", subject.locality_name);
|
| + EXPECT_EQ("", subject.state_or_province_name);
|
| + EXPECT_EQ("US", subject.country_name);
|
| + EXPECT_EQ(0U, subject.street_addresses.size());
|
| + ASSERT_EQ(1U, subject.organization_names.size());
|
| + EXPECT_EQ("Chromium", subject.organization_names[0]);
|
| + ASSERT_EQ(1U, subject.organization_unit_names.size());
|
| + EXPECT_EQ("Chromium net_unittests", subject.organization_unit_names[0]);
|
| + ASSERT_EQ(1U, subject.domain_components.size());
|
| + EXPECT_EQ("Chromium", subject.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.
|
| +// This is a regression test for http://crbug.com/102839
|
| +TEST(X509CertificateTest, UnescapedSpecialCharacters) {
|
| + FilePath certs_dir = GetTestCertsDirectory();
|
| +
|
| + scoped_refptr<X509Certificate> unescaped_cert =
|
| + ImportCertFromFile(certs_dir, "unescaped.pem");
|
| + ASSERT_NE(static_cast<X509Certificate*>(NULL), unescaped_cert);
|
| +
|
| + const CertPrincipal& subject = unescaped_cert->subject();
|
| + EXPECT_EQ("127.0.0.1", subject.common_name);
|
| + EXPECT_EQ("Mountain View", subject.locality_name);
|
| + EXPECT_EQ("California", subject.state_or_province_name);
|
| + EXPECT_EQ("US", subject.country_name);
|
| + ASSERT_EQ(1U, subject.street_addresses.size());
|
| + EXPECT_EQ("1600 Amphitheatre Parkway", subject.street_addresses[0]);
|
| + ASSERT_EQ(1U, subject.organization_names.size());
|
| + EXPECT_EQ("Chromium = \"net_unittests\"", subject.organization_names[0]);
|
| + ASSERT_EQ(2U, subject.organization_unit_names.size());
|
| + EXPECT_EQ("net_unittests", subject.organization_unit_names[0]);
|
| + EXPECT_EQ("Chromium", subject.organization_unit_names[1]);
|
| + EXPECT_EQ(0U, subject.domain_components.size());
|
| +}
|
| +
|
| TEST(X509CertificateTest, PaypalNullCertParsing) {
|
| scoped_refptr<X509Certificate> paypal_null_cert(
|
| X509Certificate::CreateFromBytes(
|
|
|