OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chromeos/network/onc/onc_certificate_importer.h" | 5 #include "chromeos/network/onc/onc_certificate_importer.h" |
6 | 6 |
7 #include <cert.h> | 7 #include <cert.h> |
8 #include <certdb.h> | 8 #include <certdb.h> |
9 #include <keyhi.h> | 9 #include <keyhi.h> |
10 #include <pk11pub.h> | 10 #include <pk11pub.h> |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
187 | 187 |
188 SECKEYPrivateKeyList* privkey_list = | 188 SECKEYPrivateKeyList* privkey_list = |
189 PK11_ListPrivKeysInSlot(slot_->os_module_handle(), NULL, NULL); | 189 PK11_ListPrivKeysInSlot(slot_->os_module_handle(), NULL, NULL); |
190 EXPECT_FALSE(privkey_list); | 190 EXPECT_FALSE(privkey_list); |
191 | 191 |
192 SECKEYPublicKeyList* pubkey_list = | 192 SECKEYPublicKeyList* pubkey_list = |
193 PK11_ListPublicKeysInSlot(slot_->os_module_handle(), NULL); | 193 PK11_ListPublicKeysInSlot(slot_->os_module_handle(), NULL); |
194 EXPECT_FALSE(pubkey_list); | 194 EXPECT_FALSE(pubkey_list); |
195 } | 195 } |
196 | 196 |
| 197 struct CertParam { |
| 198 CertParam(net::CertType certificate_type, |
| 199 const char* original_filename, |
| 200 const char* update_filename) |
| 201 : cert_type(certificate_type), |
| 202 original_file(original_filename), |
| 203 update_file(update_filename) {} |
| 204 |
| 205 net::CertType cert_type; |
| 206 const char* original_file; |
| 207 const char* update_file; |
| 208 }; |
| 209 |
197 class ONCCertificateImporterTestWithParam : | 210 class ONCCertificateImporterTestWithParam : |
198 public ONCCertificateImporterTest, | 211 public ONCCertificateImporterTest, |
199 public testing::WithParamInterface< | 212 public testing::WithParamInterface<CertParam> { |
200 std::pair<net::CertType, std::pair<const char*, const char*> > > { | |
201 protected: | |
202 net::CertType GetCertTypeParam() { | |
203 return GetParam().first; | |
204 } | |
205 | |
206 std::string GetOriginalFilename() { | |
207 return GetParam().second.first; | |
208 } | |
209 | |
210 std::string GetUpdatedFilename() { | |
211 return GetParam().second.second; | |
212 } | |
213 }; | 213 }; |
214 | 214 |
215 TEST_P(ONCCertificateImporterTestWithParam, UpdateCertificate) { | 215 TEST_P(ONCCertificateImporterTestWithParam, UpdateCertificate) { |
216 // First we import a certificate. | 216 // First we import a certificate. |
217 { | 217 { |
218 SCOPED_TRACE("Import original certificate"); | 218 SCOPED_TRACE("Import original certificate"); |
219 std::string guid_original; | 219 std::string guid_original; |
220 AddCertificateFromFile(GetOriginalFilename(), GetCertTypeParam(), | 220 AddCertificateFromFile(GetParam().original_file, GetParam().cert_type, |
221 &guid_original); | 221 &guid_original); |
222 } | 222 } |
223 | 223 |
224 // Now we import the same certificate with a different GUID. The cert should | 224 // Now we import the same certificate with a different GUID. The cert should |
225 // be retrievable via the new GUID. | 225 // be retrievable via the new GUID. |
226 { | 226 { |
227 SCOPED_TRACE("Import updated certificate"); | 227 SCOPED_TRACE("Import updated certificate"); |
228 std::string guid_updated; | 228 std::string guid_updated; |
229 AddCertificateFromFile(GetUpdatedFilename(), GetCertTypeParam(), | 229 AddCertificateFromFile(GetParam().update_file, GetParam().cert_type, |
230 &guid_updated); | 230 &guid_updated); |
231 } | 231 } |
232 } | 232 } |
233 | 233 |
234 TEST_P(ONCCertificateImporterTestWithParam, ReimportCertificate) { | 234 TEST_P(ONCCertificateImporterTestWithParam, ReimportCertificate) { |
235 // Verify that reimporting a client certificate works. | 235 // Verify that reimporting a client certificate works. |
236 for (int i = 0; i < 2; ++i) { | 236 for (int i = 0; i < 2; ++i) { |
237 SCOPED_TRACE("Import certificate, iteration " + base::IntToString(i)); | 237 SCOPED_TRACE("Import certificate, iteration " + base::IntToString(i)); |
238 | 238 |
239 std::string guid_original; | 239 std::string guid_original; |
240 AddCertificateFromFile(GetOriginalFilename(), GetCertTypeParam(), | 240 AddCertificateFromFile(GetParam().original_file, GetParam().cert_type, |
241 &guid_original); | 241 &guid_original); |
242 } | 242 } |
243 } | 243 } |
244 | 244 |
245 INSTANTIATE_TEST_CASE_P( | 245 INSTANTIATE_TEST_CASE_P( |
246 ONCCertificateImporterTestWithParam, | 246 ONCCertificateImporterTestWithParam, |
247 ONCCertificateImporterTestWithParam, | 247 ONCCertificateImporterTestWithParam, |
248 ::testing::Values( | 248 ::testing::Values( |
249 std::make_pair(net::USER_CERT, | 249 CertParam(net::USER_CERT, |
250 std::make_pair("certificate-client.onc", | 250 "certificate-client.onc", |
251 "certificate-client-update.onc")), | 251 "certificate-client-update.onc"), |
252 std::make_pair(net::SERVER_CERT, | 252 CertParam(net::SERVER_CERT, |
253 std::make_pair("certificate-server.onc", | 253 "certificate-server.onc", |
254 "certificate-server-update.onc")), | 254 "certificate-server-update.onc"), |
255 std::make_pair( | 255 CertParam(net::CA_CERT, |
256 net::CA_CERT, | 256 "certificate-web-authority.onc", |
257 std::make_pair("certificate-web-authority.onc", | 257 "certificate-web-authority-update.onc"))); |
258 "certificate-web-authority-update.onc")))); | |
259 | 258 |
260 } // namespace onc | 259 } // namespace onc |
261 } // namespace chromeos | 260 } // namespace chromeos |
OLD | NEW |