Index: chrome/browser/safe_browsing/download_protection_service_unittest.cc |
diff --git a/chrome/browser/safe_browsing/download_protection_service_unittest.cc b/chrome/browser/safe_browsing/download_protection_service_unittest.cc |
index 01845d0d1aaba254c258de6cf04590e08d106e15..866a5556eead55e34198ebaaa7d9bd5a7edf2d34 100644 |
--- a/chrome/browser/safe_browsing/download_protection_service_unittest.cc |
+++ b/chrome/browser/safe_browsing/download_protection_service_unittest.cc |
@@ -24,7 +24,6 @@ |
#include "content/public/common/url_fetcher_delegate.h" |
#include "content/test/test_browser_thread.h" |
#include "content/test/test_url_fetcher_factory.h" |
-#include "crypto/rsa_private_key.h" |
#include "googleurl/src/gurl.h" |
#include "net/base/x509_certificate.h" |
#include "testing/gmock/include/gmock/gmock.h" |
@@ -189,6 +188,23 @@ class DownloadProtectionServiceTest : public testing::Test { |
certificate, issuer, whitelist_strings); |
} |
+ // Reads a single PEM-encoded certificate from the testdata directory. |
+ // Returns NULL on failure. |
+ scoped_refptr<net::X509Certificate> ReadTestCertificate( |
+ const std::string& filename) { |
+ std::string cert_data; |
+ if (!file_util::ReadFileToString(testdata_path_.AppendASCII(filename), |
+ &cert_data)) { |
+ return NULL; |
+ } |
+ net::CertificateList certs = |
+ net::X509Certificate::CreateCertificateListFromBytes( |
+ cert_data.data(), |
+ cert_data.size(), |
+ net::X509Certificate::FORMAT_PEM_CERT_SEQUENCE); |
+ return certs.empty() ? NULL : certs[0]; |
+ } |
+ |
private: |
// Helper functions for FlushThreadMessageLoops. |
void RunAllPendingAndQuitUI() { |
@@ -743,45 +759,18 @@ TEST_F(DownloadProtectionServiceTest, TestDownloadRequestTimeout) { |
ExpectResult(DownloadProtectionService::SAFE); |
} |
-TEST_F(DownloadProtectionServiceTest, |
- GetCertificateWhitelistStrings_TestCert) { |
- std::string cert_data; |
- ASSERT_TRUE(file_util::ReadFileToString(testdata_path_.AppendASCII( |
- "signature_util_test.cer"), &cert_data)); |
- |
- scoped_refptr<net::X509Certificate> cert( |
- net::X509Certificate::CreateFromBytes(cert_data.data(), |
- cert_data.size())); |
- ASSERT_TRUE(cert.get()); |
- |
- std::vector<std::string> whitelist_strings; |
- GetCertificateWhitelistStrings(*cert, *cert, &whitelist_strings); |
- |
- EXPECT_THAT(whitelist_strings, ElementsAre( |
- "cert/58AFF702772EB67BDD412571BA40AAC07F0D936C" |
- "/CN=Joe's-Software-Emporium")); |
-} |
- |
-// Only some implementations have the ability to generate self-signed certs. |
-#if defined(USE_NSS) || defined(OS_WIN) || defined(OS_MACOSX) |
-TEST_F(DownloadProtectionServiceTest, |
- GetCertificateWhitelistStrings_SelfSigned) { |
- scoped_ptr<crypto::RSAPrivateKey> private_key( |
- crypto::RSAPrivateKey::Create(1024)); |
+TEST_F(DownloadProtectionServiceTest, GetCertificateWhitelistStrings) { |
// We'll pass this cert in as the "issuer", even though it isn't really |
// used to sign the certs below. GetCertificateWhitelistStirngs doesn't care |
// about this. |
- scoped_refptr<net::X509Certificate> issuer_cert = |
- net::X509Certificate::CreateSelfSigned( |
- private_key.get(), "CN=issuer", 1, base::TimeDelta::FromDays(1)); |
+ scoped_refptr<net::X509Certificate> issuer_cert( |
+ ReadTestCertificate("issuer.pem")); |
ASSERT_TRUE(issuer_cert.get()); |
std::string cert_base = "cert/" + base::HexEncode( |
issuer_cert->fingerprint().data, |
sizeof(issuer_cert->fingerprint().data)); |
- scoped_refptr<net::X509Certificate> cert = |
- net::X509Certificate::CreateSelfSigned( |
- private_key.get(), "CN=subject/%1", 1, base::TimeDelta::FromDays(1)); |
+ scoped_refptr<net::X509Certificate> cert(ReadTestCertificate("test_cn.pem")); |
ASSERT_TRUE(cert.get()); |
std::vector<std::string> whitelist_strings; |
GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); |
@@ -789,8 +778,7 @@ TEST_F(DownloadProtectionServiceTest, |
EXPECT_THAT(whitelist_strings, ElementsAre( |
cert_base + "/CN=subject%2F%251")); |
- cert = net::X509Certificate::CreateSelfSigned( |
- private_key.get(), "CN=subject,O=org", 1, base::TimeDelta::FromDays(1)); |
+ cert = ReadTestCertificate("test_cn_o.pem"); |
ASSERT_TRUE(cert.get()); |
whitelist_strings.clear(); |
GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); |
@@ -799,9 +787,7 @@ TEST_F(DownloadProtectionServiceTest, |
cert_base + "/CN=subject/O=org", |
cert_base + "/O=org")); |
- cert = net::X509Certificate::CreateSelfSigned( |
- private_key.get(), "CN=subject,O=org,OU=unit", 1, |
- base::TimeDelta::FromDays(1)); |
+ cert = ReadTestCertificate("test_cn_o_ou.pem"); |
ASSERT_TRUE(cert.get()); |
whitelist_strings.clear(); |
GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); |
@@ -814,9 +800,7 @@ TEST_F(DownloadProtectionServiceTest, |
cert_base + "/O=org/OU=unit", |
cert_base + "/OU=unit")); |
- cert = net::X509Certificate::CreateSelfSigned( |
- private_key.get(), "CN=subject,OU=unit", 1, |
- base::TimeDelta::FromDays(1)); |
+ cert = ReadTestCertificate("test_cn_ou.pem"); |
ASSERT_TRUE(cert.get()); |
whitelist_strings.clear(); |
GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); |
@@ -825,15 +809,13 @@ TEST_F(DownloadProtectionServiceTest, |
cert_base + "/CN=subject/OU=unit", |
cert_base + "/OU=unit")); |
- cert = net::X509Certificate::CreateSelfSigned( |
- private_key.get(), "O=org,", 1, base::TimeDelta::FromDays(1)); |
+ cert = ReadTestCertificate("test_o.pem"); |
ASSERT_TRUE(cert.get()); |
whitelist_strings.clear(); |
GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); |
EXPECT_THAT(whitelist_strings, ElementsAre(cert_base + "/O=org")); |
- cert = net::X509Certificate::CreateSelfSigned( |
- private_key.get(), "O=org,OU=unit", 1, base::TimeDelta::FromDays(1)); |
+ cert = ReadTestCertificate("test_o_ou.pem"); |
ASSERT_TRUE(cert.get()); |
whitelist_strings.clear(); |
GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); |
@@ -842,19 +824,16 @@ TEST_F(DownloadProtectionServiceTest, |
cert_base + "/O=org/OU=unit", |
cert_base + "/OU=unit")); |
- cert = net::X509Certificate::CreateSelfSigned( |
- private_key.get(), "OU=unit", 1, base::TimeDelta::FromDays(1)); |
+ cert = ReadTestCertificate("test_ou.pem"); |
ASSERT_TRUE(cert.get()); |
whitelist_strings.clear(); |
GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); |
EXPECT_THAT(whitelist_strings, ElementsAre(cert_base + "/OU=unit")); |
- cert = net::X509Certificate::CreateSelfSigned( |
- private_key.get(), "C=US", 1, base::TimeDelta::FromDays(1)); |
+ cert = ReadTestCertificate("test_c.pem"); |
ASSERT_TRUE(cert.get()); |
whitelist_strings.clear(); |
GetCertificateWhitelistStrings(*cert, *issuer_cert, &whitelist_strings); |
EXPECT_THAT(whitelist_strings, ElementsAre()); |
} |
-#endif |
} // namespace safe_browsing |