| Index: chromeos/network/onc/onc_certificate_importer_unittest.cc
|
| diff --git a/chromeos/network/onc/onc_certificate_importer_unittest.cc b/chromeos/network/onc/onc_certificate_importer_unittest.cc
|
| index 7713f55b3a214656b96e769b45ead1e28cad2ed4..7b5d18e5eac0072d3cc07c90e32c5a55c1820f05 100644
|
| --- a/chromeos/network/onc/onc_certificate_importer_unittest.cc
|
| +++ b/chromeos/network/onc/onc_certificate_importer_unittest.cc
|
| @@ -90,10 +90,13 @@ class ONCCertificateImporterTest : public testing::Test {
|
| onc_certificates_.reset(certificates);
|
|
|
| web_trust_certificates_.clear();
|
| + imported_server_and_ca_certs_.clear();
|
| CertificateImporter importer(true /* allow web trust */);
|
| EXPECT_EQ(expected_parse_result,
|
| - importer.ParseAndStoreCertificates(*certificates,
|
| - &web_trust_certificates_));
|
| + importer.ParseAndStoreCertificates(
|
| + *certificates,
|
| + &web_trust_certificates_,
|
| + &imported_server_and_ca_certs_));
|
|
|
| result_list_.clear();
|
| result_list_ = ListCertsInSlot();
|
| @@ -102,22 +105,33 @@ class ONCCertificateImporterTest : public testing::Test {
|
| void AddCertificateFromFile(std::string filename,
|
| net::CertType expected_type,
|
| std::string* guid) {
|
| + std::string guid_temporary;
|
| + if (!guid)
|
| + guid = &guid_temporary;
|
| +
|
| AddCertificatesFromFile(filename, CertificateImporter::IMPORT_OK);
|
| - EXPECT_EQ(1ul, result_list_.size());
|
| + ASSERT_EQ(1ul, result_list_.size());
|
| + EXPECT_EQ(expected_type, GetCertType(result_list_[0]->os_cert_handle()));
|
|
|
| base::DictionaryValue* certificate = NULL;
|
| onc_certificates_->GetDictionary(0, &certificate);
|
| certificate->GetStringWithoutPathExpansion(certificate::kGUID, guid);
|
|
|
| - CertificateImporter::ListCertsWithNickname(*guid, &result_list_);
|
| - ASSERT_EQ(1ul, result_list_.size());
|
| - EXPECT_EQ(expected_type, GetCertType(result_list_[0]->os_cert_handle()));
|
| + if (expected_type == net::SERVER_CERT || expected_type == net::CA_CERT) {
|
| + EXPECT_EQ(1u, imported_server_and_ca_certs_.size());
|
| + EXPECT_TRUE(imported_server_and_ca_certs_[*guid]->Equals(
|
| + result_list_[0]));
|
| + } else { // net::USER_CERT
|
| + EXPECT_TRUE(imported_server_and_ca_certs_.empty());
|
| + CertificateImporter::ListCertsWithNickname(*guid, &result_list_);
|
| + }
|
| }
|
|
|
| scoped_ptr<base::ListValue> onc_certificates_;
|
| scoped_refptr<net::CryptoModule> slot_;
|
| net::CertificateList result_list_;
|
| net::CertificateList web_trust_certificates_;
|
| + CertificateImporter::CertsByGUID imported_server_and_ca_certs_;
|
|
|
| private:
|
| net::CertificateList ListCertsInSlot() {
|
| @@ -154,6 +168,7 @@ TEST_F(ONCCertificateImporterTest, MultipleCertificates) {
|
| AddCertificatesFromFile("managed_toplevel2.onc",
|
| CertificateImporter::IMPORT_OK);
|
| EXPECT_EQ(onc_certificates_->GetSize(), result_list_.size());
|
| + EXPECT_EQ(2ul, imported_server_and_ca_certs_.size());
|
| }
|
|
|
| TEST_F(ONCCertificateImporterTest, MultipleCertificatesWithFailures) {
|
| @@ -161,6 +176,7 @@ TEST_F(ONCCertificateImporterTest, MultipleCertificatesWithFailures) {
|
| CertificateImporter::IMPORT_INCOMPLETE);
|
| EXPECT_EQ(2ul, onc_certificates_->GetSize());
|
| EXPECT_EQ(1ul, result_list_.size());
|
| + EXPECT_TRUE(imported_server_and_ca_certs_.empty());
|
| }
|
|
|
| TEST_F(ONCCertificateImporterTest, AddClientCertificate) {
|
| @@ -200,9 +216,8 @@ TEST_F(ONCCertificateImporterTest, AddClientCertificate) {
|
| }
|
| }
|
|
|
| -TEST_F(ONCCertificateImporterTest, AddServerCertificate) {
|
| - std::string guid;
|
| - AddCertificateFromFile("certificate-server.onc", net::SERVER_CERT, &guid);
|
| +TEST_F(ONCCertificateImporterTest, AddServerCertificateWithWebTrust) {
|
| + AddCertificateFromFile("certificate-server.onc", net::SERVER_CERT, NULL);
|
|
|
| SECKEYPrivateKeyList* privkey_list =
|
| PK11_ListPrivKeysInSlot(slot_->os_module_handle(), NULL, NULL);
|
| @@ -218,9 +233,8 @@ TEST_F(ONCCertificateImporterTest, AddServerCertificate) {
|
| web_trust_certificates_[0]->os_cert_handle()));
|
| }
|
|
|
| -TEST_F(ONCCertificateImporterTest, AddWebAuthorityCertificate) {
|
| - std::string guid;
|
| - AddCertificateFromFile("certificate-web-authority.onc", net::CA_CERT, &guid);
|
| +TEST_F(ONCCertificateImporterTest, AddWebAuthorityCertificateWithWebTrust) {
|
| + AddCertificateFromFile("certificate-web-authority.onc", net::CA_CERT, NULL);
|
|
|
| SECKEYPrivateKeyList* privkey_list =
|
| PK11_ListPrivKeysInSlot(slot_->os_module_handle(), NULL, NULL);
|
| @@ -237,8 +251,7 @@ TEST_F(ONCCertificateImporterTest, AddWebAuthorityCertificate) {
|
| }
|
|
|
| TEST_F(ONCCertificateImporterTest, AddAuthorityCertificateWithoutWebTrust) {
|
| - std::string guid;
|
| - AddCertificateFromFile("certificate-authority.onc", net::CA_CERT, &guid);
|
| + AddCertificateFromFile("certificate-authority.onc", net::CA_CERT, NULL);
|
| EXPECT_TRUE(web_trust_certificates_.empty());
|
|
|
| SECKEYPrivateKeyList* privkey_list =
|
| @@ -272,18 +285,15 @@ TEST_P(ONCCertificateImporterTestWithParam, UpdateCertificate) {
|
| // First we import a certificate.
|
| {
|
| SCOPED_TRACE("Import original certificate");
|
| - std::string guid_original;
|
| AddCertificateFromFile(GetParam().original_file, GetParam().cert_type,
|
| - &guid_original);
|
| + NULL);
|
| }
|
|
|
| - // Now we import the same certificate with a different GUID. The cert should
|
| - // be retrievable via the new GUID.
|
| + // Now we import the same certificate with a different GUID. In case of a
|
| + // client cert, the cert should be retrievable via the new GUID.
|
| {
|
| SCOPED_TRACE("Import updated certificate");
|
| - std::string guid_updated;
|
| - AddCertificateFromFile(GetParam().update_file, GetParam().cert_type,
|
| - &guid_updated);
|
| + AddCertificateFromFile(GetParam().update_file, GetParam().cert_type, NULL);
|
| }
|
| }
|
|
|
| @@ -291,10 +301,8 @@ TEST_P(ONCCertificateImporterTestWithParam, ReimportCertificate) {
|
| // Verify that reimporting a client certificate works.
|
| for (int i = 0; i < 2; ++i) {
|
| SCOPED_TRACE("Import certificate, iteration " + base::IntToString(i));
|
| -
|
| - std::string guid_original;
|
| AddCertificateFromFile(GetParam().original_file, GetParam().cert_type,
|
| - &guid_original);
|
| + NULL);
|
| }
|
| }
|
|
|
|
|