Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(165)

Unified Diff: chromeos/network/network_connection_handler_unittest.cc

Issue 421113002: Use correct slot id for client certs in network config. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chromeos/network/network_connection_handler_unittest.cc
diff --git a/chromeos/network/network_connection_handler_unittest.cc b/chromeos/network/network_connection_handler_unittest.cc
index 5dc9de31899bcf99fa0cf38338ce8c6b74e79ba1..2f58ba2c9e8c21bc84e8ed7adddf0741f0928252 100644
--- a/chromeos/network/network_connection_handler_unittest.cc
+++ b/chromeos/network/network_connection_handler_unittest.cc
@@ -205,21 +205,45 @@ class NetworkConnectionHandlerTest : public testing::Test {
base::RunLoop().RunUntilIdle();
}
- void ImportClientCertAndKey(const std::string& pkcs12_file,
- net::NSSCertDatabase* nssdb,
- net::CertificateList* loaded_certs) {
+ scoped_refptr<net::X509Certificate> ImportTestClientCert() {
+ net::CertificateList ca_cert_list =
+ net::CreateCertificateListFromFile(net::GetTestCertsDirectory(),
+ "websocket_cacert.pem",
+ net::X509Certificate::FORMAT_AUTO);
+ if (ca_cert_list.empty()) {
+ LOG(ERROR) << "No CA cert loaded.";
+ return NULL;
+ }
+ net::NSSCertDatabase::ImportCertFailureList failures;
+ EXPECT_TRUE(test_nssdb_->ImportCACerts(
+ ca_cert_list, net::NSSCertDatabase::TRUST_DEFAULT, &failures));
+ if (!failures.empty()) {
+ LOG(ERROR) << net::ErrorToString(failures[0].net_error);
+ return NULL;
+ }
+
std::string pkcs12_data;
base::FilePath pkcs12_path =
- net::GetTestCertsDirectory().Append(pkcs12_file);
- ASSERT_TRUE(base::ReadFileToString(pkcs12_path, &pkcs12_data));
-
- scoped_refptr<net::CryptoModule> module(
- net::CryptoModule::CreateFromHandle(nssdb->GetPrivateSlot().get()));
- ASSERT_EQ(
- net::OK,
- nssdb->ImportFromPKCS12(module, pkcs12_data, base::string16(), false,
- loaded_certs));
- ASSERT_EQ(1U, loaded_certs->size());
+ net::GetTestCertsDirectory().Append("websocket_client_cert.p12");
+ if (!base::ReadFileToString(pkcs12_path, &pkcs12_data))
+ return NULL;
+
+ net::CertificateList loaded_certs;
+ scoped_refptr<net::CryptoModule> module(net::CryptoModule::CreateFromHandle(
+ test_nssdb_->GetPrivateSlot().get()));
+ if (net::OK !=
+ test_nssdb_->ImportFromPKCS12(
+ module, pkcs12_data, base::string16(), false, &loaded_certs)) {
stevenjb 2014/07/29 18:31:10 nit: ... != net::OK
+ LOG(ERROR) << "Error while importing to NSSDB.";
+ return NULL;
+ }
+
+ // File contains two certs, the client cert first and the CA cert second.
+ if (loaded_certs.size() != 2U) {
+ LOG(ERROR) << "Expected two certs in file, found " << loaded_certs.size();
+ return NULL;
+ }
+ return loaded_certs[0];
}
void SetupPolicy(const std::string& network_configs_json,
@@ -355,14 +379,11 @@ TEST_F(NetworkConnectionHandlerTest, ConnectCertificateMissing) {
TEST_F(NetworkConnectionHandlerTest, ConnectWithCertificateSuccess) {
StartCertLoader();
-
- net::CertificateList certs;
- ImportClientCertAndKey("websocket_client_cert.p12",
- test_nssdb_.get(),
- &certs);
+ scoped_refptr<net::X509Certificate> cert = ImportTestClientCert();
+ ASSERT_TRUE(cert);
SetupPolicy(base::StringPrintf(kPolicyWithCertPatternTemplate,
- certs[0]->subject().common_name.c_str()),
+ cert->subject().common_name.c_str()),
base::DictionaryValue(), // no global config
true); // load as user policy
@@ -373,13 +394,11 @@ TEST_F(NetworkConnectionHandlerTest, ConnectWithCertificateSuccess) {
// Disabled, see http://crbug.com/396729.
TEST_F(NetworkConnectionHandlerTest,
DISABLED_ConnectWithCertificateRequestedBeforeCertsAreLoaded) {
- net::CertificateList certs;
- ImportClientCertAndKey("websocket_client_cert.p12",
- test_nssdb_.get(),
- &certs);
+ scoped_refptr<net::X509Certificate> cert = ImportTestClientCert();
+ ASSERT_TRUE(cert);
SetupPolicy(base::StringPrintf(kPolicyWithCertPatternTemplate,
- certs[0]->subject().common_name.c_str()),
+ cert->subject().common_name.c_str()),
base::DictionaryValue(), // no global config
true); // load as user policy
« chromeos/network/client_cert_resolver.cc ('K') | « chromeos/network/network_connection_handler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698