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

Side by Side Diff: chrome/browser/chromeos/cros/onc_network_parser_unittest.cc

Issue 8566056: This applies GUIDs to certificate and key nicknames when (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Final review changes Created 9 years 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/chromeos/cros/onc_network_parser.cc ('k') | net/base/cert_database.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/chromeos/cros/onc_network_parser.h" 5 #include "chrome/browser/chromeos/cros/onc_network_parser.h"
6 6
7 #include <cert.h> 7 #include <cert.h>
8 #include <keyhi.h>
8 #include <pk11pub.h> 9 #include <pk11pub.h>
9 10
10 #include "base/lazy_instance.h" 11 #include "base/lazy_instance.h"
11 #include "base/scoped_temp_dir.h" 12 #include "base/scoped_temp_dir.h"
12 #include "base/values.h" 13 #include "base/values.h"
13 #include "chrome/browser/chromeos/cros/network_library.h" 14 #include "chrome/browser/chromeos/cros/network_library.h"
15 #include "chrome/browser/chromeos/system/runtime_environment.h"
14 #include "crypto/nss_util.h" 16 #include "crypto/nss_util.h"
15 #include "net/base/cert_database.h" 17 #include "net/base/cert_database.h"
18 #include "net/base/cert_type.h"
16 #include "net/base/crypto_module.h" 19 #include "net/base/crypto_module.h"
17 #include "net/base/x509_certificate.h" 20 #include "net/base/x509_certificate.h"
21 #include "net/third_party/mozilla_security_manager/nsNSSCertTrust.h"
18 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
19 #include "third_party/cros_system_api/dbus/service_constants.h" 23 #include "third_party/cros_system_api/dbus/service_constants.h"
20 24
25 namespace msm = mozilla_security_manager;
21 namespace chromeos { 26 namespace chromeos {
22 27
28 namespace {
23 const char kNetworkConfigurationOpenVPN[] = 29 const char kNetworkConfigurationOpenVPN[] =
24 " {" 30 " {"
25 " \"GUID\": \"{408290ea-9299-4757-ab04-8957d55f0f13}\"," 31 " \"GUID\": \"{408290ea-9299-4757-ab04-8957d55f0f13}\","
26 " \"Type\": \"VPN\"," 32 " \"Type\": \"VPN\","
27 " \"Name\": \"MyVPN\"," 33 " \"Name\": \"MyVPN\","
28 " \"VPN\": {" 34 " \"VPN\": {"
29 " \"Host\": \"vpn.acme.org\"," 35 " \"Host\": \"vpn.acme.org\","
30 " \"Type\": \"OpenVPN\"," 36 " \"Type\": \"OpenVPN\","
31 " \"OpenVPN\": {" 37 " \"OpenVPN\": {"
32 " \"AuthRetry\": \"interact\"," 38 " \"AuthRetry\": \"interact\","
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 "B/zAdBgNVHQ4EFgQUbYygbSkl4kpjCNuxoezFGupA97UwgcgGA1UdIwSBwDCBvYAUbYyg" 101 "B/zAdBgNVHQ4EFgQUbYygbSkl4kpjCNuxoezFGupA97UwgcgGA1UdIwSBwDCBvYAUbYyg"
96 "bSkl4kpjCNuxoezFGupA97WhgZmkgZYwgZMxFTATBgNVBAoTDEdvb2dsZSwgSW5jLjERM" 102 "bSkl4kpjCNuxoezFGupA97WhgZmkgZYwgZMxFTATBgNVBAoTDEdvb2dsZSwgSW5jLjERM"
97 "A8GA1UECxMIQ2hyb21lT1MxIjAgBgkqhkiG9w0BCQEWE2dzcGVuY2VyQGdvb2dsZS5jb2" 103 "A8GA1UECxMIQ2hyb21lT1MxIjAgBgkqhkiG9w0BCQEWE2dzcGVuY2VyQGdvb2dsZS5jb2"
98 "0xGjAYBgNVBAcTEU1vdW50YWluIFZpZXcsIENBMQswCQYDVQQIEwJDQTELMAkGA1UEBhM" 104 "0xGjAYBgNVBAcTEU1vdW50YWluIFZpZXcsIENBMQswCQYDVQQIEwJDQTELMAkGA1UEBhM"
99 "CVVMxDTALBgNVBAMTBGxtYW+CCQChr4uWYBFg1TANBgkqhkiG9w0BAQQFAAOBgQCDq9wi" 105 "CVVMxDTALBgNVBAMTBGxtYW+CCQChr4uWYBFg1TANBgkqhkiG9w0BAQQFAAOBgQCDq9wi"
100 "Q4uVuf1CQU3sXfXCy1yqi5m8AsO9FxHvah5/SVFNwKllqTfedpCaWEswJ55YAojW9e+pY" 106 "Q4uVuf1CQU3sXfXCy1yqi5m8AsO9FxHvah5/SVFNwKllqTfedpCaWEswJ55YAojW9e+pY"
101 "2Fh3Fo/Y9YkF88KCtLuBjjqDKCRLxF4LycjHODKyQQ7mN/t5AtP9yKOsNvWF+M4IfReg5" 107 "2Fh3Fo/Y9YkF88KCtLuBjjqDKCRLxF4LycjHODKyQQ7mN/t5AtP9yKOsNvWF+M4IfReg5"
102 "1kohau6FauQx87by5NIRPdkNPvkQ==\"" 108 "1kohau6FauQx87by5NIRPdkNPvkQ==\""
103 " }"; 109 " }";
104 110
111 const char g_token_name[] = "OncNetworkParserTest token";
112
113 net::CertType GetCertType(const net::X509Certificate* cert) {
114 DCHECK(cert);
115 msm::nsNSSCertTrust trust(cert->os_cert_handle()->trust);
116 if (trust.HasAnyUser())
117 return net::USER_CERT;
118 if (trust.HasAnyCA() || CERT_IsCACert(cert->os_cert_handle(), NULL))
119 return net::CA_CERT;
120 if (trust.HasPeer(PR_TRUE, PR_FALSE, PR_FALSE))
121 return net::SERVER_CERT;
122 return net::UNKNOWN_CERT;
123 }
124
125 } // namespace
105 126
106 class OncNetworkParserTest : public testing::Test { 127 class OncNetworkParserTest : public testing::Test {
107 public: 128 public:
108 static void SetUpTestCase() { 129 static void SetUpTestCase() {
109 ASSERT_TRUE(temp_db_dir_.Get().CreateUniqueTempDir()); 130 ASSERT_TRUE(temp_db_dir_.Get().CreateUniqueTempDir());
110 // Ideally, we'd open a test DB for each test case, and close it 131 // Ideally, we'd open a test DB for each test case, and close it
111 // again, removing the temp dir, but unfortunately, there's a 132 // again, removing the temp dir, but unfortunately, there's a
112 // bug in NSS that prevents this from working, so we just open 133 // bug in NSS that prevents this from working, so we just open
113 // it once, and empty it for each test case. Here's the bug: 134 // it once, and empty it for each test case. Here's the bug:
114 // https://bugzilla.mozilla.org/show_bug.cgi?id=588269 135 // https://bugzilla.mozilla.org/show_bug.cgi?id=588269
115 ASSERT_TRUE( 136 ASSERT_TRUE(
116 crypto::OpenTestNSSDB(temp_db_dir_.Get().path(), 137 crypto::OpenTestNSSDB(temp_db_dir_.Get().path(), g_token_name));
117 "OncNetworkParserTest db"));
118 } 138 }
119 139
120 static void TearDownTestCase() { 140 static void TearDownTestCase() {
121 ASSERT_TRUE(temp_db_dir_.Get().Delete()); 141 ASSERT_TRUE(temp_db_dir_.Get().Delete());
122 } 142 }
123 143
124 virtual void SetUp() { 144 virtual void SetUp() {
125 slot_ = cert_db_.GetPublicModule(); 145 slot_ = cert_db_.GetPublicModule();
126 146
127 // Don't run the test if the setup failed. 147 // Don't run the test if the setup failed.
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 flimflam::kProviderL2tpIpsec); 459 flimflam::kProviderL2tpIpsec);
440 EXPECT_EQ("l2tp.acme.org", vpn->server_hostname()); 460 EXPECT_EQ("l2tp.acme.org", vpn->server_hostname());
441 CheckStringProperty(vpn, PROPERTY_INDEX_PROVIDER_HOST, "l2tp.acme.org"); 461 CheckStringProperty(vpn, PROPERTY_INDEX_PROVIDER_HOST, "l2tp.acme.org");
442 CheckStringProperty(vpn, PROPERTY_INDEX_VPN_DOMAIN, ""); 462 CheckStringProperty(vpn, PROPERTY_INDEX_VPN_DOMAIN, "");
443 EXPECT_EQ("passphrase", vpn->psk_passphrase()); 463 EXPECT_EQ("passphrase", vpn->psk_passphrase());
444 CheckStringProperty(vpn, PROPERTY_INDEX_L2TPIPSEC_PSK, "passphrase"); 464 CheckStringProperty(vpn, PROPERTY_INDEX_L2TPIPSEC_PSK, "passphrase");
445 CheckStringProperty(vpn, PROPERTY_INDEX_IPSEC_IKEVERSION, "1"); 465 CheckStringProperty(vpn, PROPERTY_INDEX_IPSEC_IKEVERSION, "1");
446 EXPECT_FALSE(vpn->save_credentials()); 466 EXPECT_FALSE(vpn->save_credentials());
447 } 467 }
448 468
449 TEST_F(OncNetworkParserTest, TestAddServerCertificate) {
450 std::string test_blob(
451 "{"
452 " \"Certificates\": ["
453 " {"
454 " \"GUID\": \"{f998f760-272b-6939-4c2beffe428697aa}\","
455 " \"Type\": \"Server\","
456 " \"X509\": \"MIICWDCCAcECAxAAATANBgkqhkiG9w0BAQQFADCBkzEVM"
457 "BMGA1UEChMMR29vZ2xlLCBJbmMuMREwDwYDVQQLEwhDaHJvbWVPUzEiMCAGCSqGSIb3DQ"
458 "EJARYTZ3NwZW5jZXJAZ29vZ2xlLmNvbTEaMBgGA1UEBxMRTW91bnRhaW4gVmlldywgQ0E"
459 "xCzAJBgNVBAgTAkNBMQswCQYDVQQGEwJVUzENMAsGA1UEAxMEbG1hbzAeFw0xMTAzMTYy"
460 "MzQ5MzhaFw0xMjAzMTUyMzQ5MzhaMFMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVM"
461 "BMGA1UEChMMR29vZ2xlLCBJbmMuMREwDwYDVQQLEwhDaHJvbWVPUzENMAsGA1UEAxMEbG"
462 "1hbzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA31WiJ9LvprrhKtDlW0RdLFAO7Qj"
463 "kvs+sG6j2Vp2aBSrlhALG/0BVHUhWi4F/HHJho+ncLHAg5AGO0sdAjYUdQG6tfPqjLsIA"
464 "LtoKEZZdFe/JhmqOEaxWsSdu2S2RdPgCQOsP79EH58gXwu2gejCkJDmU22WL4YLuqOc17"
465 "nxbDC8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCv4vMD+PMlfnftu4/6Yf/oMLE8yCOqZT"
466 "Q/dWCxB9PiJnOefiBeSzSZE6Uv3G7qnblZPVZaFeJMd+ostt0viCyPucFsFgLMyyoV1dM"
467 "VPVwJT5Iq1AHehWXnTBbxUK9wioA5jOEKdroKjuSSsg/Q8Wx6cpJmttQz5olGPgstmACR"
468 "WA==\""
469 " }"
470 " ],"
471 "}");
472 OncNetworkParser parser(test_blob);
473
474 EXPECT_EQ(1, parser.GetCertificatesSize());
475 EXPECT_TRUE(parser.ParseCertificate(0));
476 }
477
478 TEST_F(OncNetworkParserTest, TestAddAuthorityCertificate) {
479 const std::string test_blob(std::string("{"
480 " \"Certificates\": [") +
481 std::string(kCertificateWebAuthority) + std::string(
482 " ],"
483 "}"));
484 OncNetworkParser parser(test_blob);
485
486 EXPECT_EQ(1, parser.GetCertificatesSize());
487 EXPECT_TRUE(parser.ParseCertificate(0));
488 }
489
490 TEST_F(OncNetworkParserTest, TestAddClientCertificate) { 469 TEST_F(OncNetworkParserTest, TestAddClientCertificate) {
491 std::string test_blob( 470 std::string test_blob(
492 "{" 471 "{"
493 " \"Certificates\": [" 472 " \"Certificates\": ["
494 " {" 473 " {"
495 " \"GUID\": \"{f998f760-272b-6939-4c2beffe428697ac}\"," 474 " \"GUID\": \"{f998f760-272b-6939-4c2beffe428697ac}\","
496 " \"Type\": \"Client\"," 475 " \"Type\": \"Client\","
497 " \"PKCS12\": \"MIIGUQIBAzCCBhcGCSqGSIb3DQEHAaCCBggEggYEMII" 476 " \"PKCS12\": \"MIIGUQIBAzCCBhcGCSqGSIb3DQEHAaCCBggEggYEMII"
498 "GADCCAv8GCSqGSIb3DQEHBqCCAvAwggLsAgEAMIIC5QYJKoZIhvcNAQcBMBwGCiqGSIb3" 477 "GADCCAv8GCSqGSIb3DQEHBqCCAvAwggLsAgEAMIIC5QYJKoZIhvcNAQcBMBwGCiqGSIb3"
499 "DQEMAQYwDgQIHnFaWM2Y0BgCAggAgIICuG4ou9mxkhpus8WictLJe+JOnSQrdNXV3FMQr" 478 "DQEMAQYwDgQIHnFaWM2Y0BgCAggAgIICuG4ou9mxkhpus8WictLJe+JOnSQrdNXV3FMQr"
(...skipping 22 matching lines...) Expand all
522 "9jv3n8vSwvA0Xn0okAv1FWYLStiCpNxnD6lmXQvcmL/skAlJJpHY9/58qt/e5sGYrkKBw" 501 "9jv3n8vSwvA0Xn0okAv1FWYLStiCpNxnD6lmXQvcmL/skAlJJpHY9/58qt/e5sGYrkKBw"
523 "3jnX40zaK4W7GeJvhij0MRr6yUL2lvaEcWDnK6K1F90G/ybKRCTHBCJzyBe7yHhZCc+Zc" 502 "3jnX40zaK4W7GeJvhij0MRr6yUL2lvaEcWDnK6K1F90G/ybKRCTHBCJzyBe7yHhZCc+Zc"
524 "vKK6DTi83fELTyupy08BkXt7oPdapxmKlZxTldo9FpPXSqrdRtAWhDkEkIEf8dMf8QrQr" 503 "vKK6DTi83fELTyupy08BkXt7oPdapxmKlZxTldo9FpPXSqrdRtAWhDkEkIEf8dMf8QrQr"
525 "3glCWfbcQ047URYX45AHRnLTLLkJfdY8+Y3KsHoqL2UrOrct+J1u0mmnLbonN3pB2B4nd" 504 "3glCWfbcQ047URYX45AHRnLTLLkJfdY8+Y3KsHoqL2UrOrct+J1u0mmnLbonN3pB2B4nd"
526 "9X9vf9/uSFrgvk0iPO0Ro3UPRUIIYEP2Kx51pZZVDd++hl5gXtqe0NIpphGhxLycIdzEl" 505 "9X9vf9/uSFrgvk0iPO0Ro3UPRUIIYEP2Kx51pZZVDd++hl5gXtqe0NIpphGhxLycIdzEl"
527 "MCMGCSqGSIb3DQEJFTEWBBR1uVpGjHRddIEYuJhz/FgG4Onh6jAxMCEwCQYFKw4DAhoFA" 506 "MCMGCSqGSIb3DQEJFTEWBBR1uVpGjHRddIEYuJhz/FgG4Onh6jAxMCEwCQYFKw4DAhoFA"
528 "AQU1M+0WRDkoVGbGg1jj7q2fI67qHIECBzRYESpgt5iAgIIAA==\"" 507 "AQU1M+0WRDkoVGbGg1jj7q2fI67qHIECBzRYESpgt5iAgIIAA==\""
529 " }" 508 " }"
530 " ]," 509 " ],"
531 "}"); 510 "}");
511 std::string test_guid("{f998f760-272b-6939-4c2beffe428697ac}");
532 OncNetworkParser parser(test_blob); 512 OncNetworkParser parser(test_blob);
513 ASSERT_EQ(1, parser.GetCertificatesSize());
533 514
534 EXPECT_EQ(1, parser.GetCertificatesSize()); 515 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get();
535 EXPECT_TRUE(parser.ParseCertificate(0)); 516 EXPECT_TRUE(cert.get() != NULL);
517 EXPECT_EQ(net::USER_CERT, GetCertType(cert.get()));
518
519 EXPECT_STREQ(test_guid.c_str(),
520 cert->GetDefaultNickname(net::USER_CERT).c_str());
521 net::CertificateList result_list;
522 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list);
523 ASSERT_EQ(1ul, result_list.size());
524 EXPECT_EQ(net::USER_CERT, GetCertType(result_list[0].get()));
525
526 SECKEYPrivateKeyList* privkey_list =
527 PK11_ListPrivKeysInSlot(slot_->os_module_handle(), NULL, NULL);
528 EXPECT_TRUE(privkey_list);
529 if (privkey_list) {
530 SECKEYPrivateKeyListNode* node = PRIVKEY_LIST_HEAD(privkey_list);
531 int count = 0;
532 while (!PRIVKEY_LIST_END(node, privkey_list)) {
533 char* name = PK11_GetPrivateKeyNickname(node->key);
534 EXPECT_STREQ(test_guid.c_str(), name);
535 PORT_Free(name);
536 count++;
537 node = PRIVKEY_LIST_NEXT(node);
538 }
539 EXPECT_EQ(1, count);
540 SECKEY_DestroyPrivateKeyList(privkey_list);
541 }
542
543 SECKEYPublicKeyList* pubkey_list =
544 PK11_ListPublicKeysInSlot(slot_->os_module_handle(), NULL);
545 EXPECT_TRUE(pubkey_list);
546 if (pubkey_list) {
547 SECKEYPublicKeyListNode* node = PUBKEY_LIST_HEAD(pubkey_list);
548 int count = 0;
549 while (!PUBKEY_LIST_END(node, pubkey_list)) {
550 count++;
551 node = PUBKEY_LIST_NEXT(node);
552 }
553 EXPECT_EQ(1, count);
554 SECKEY_DestroyPublicKeyList(pubkey_list);
555 }
556 }
557
558 TEST_F(OncNetworkParserTest, TestAddServerCertificate) {
559 std::string test_blob(
560 "{"
561 " \"Certificates\": ["
562 " {"
563 " \"GUID\": \"{f998f760-272b-6939-4c2beffe428697aa}\","
564 " \"Type\": \"Server\","
565 " \"X509\": \"MIICWDCCAcECAxAAATANBgkqhkiG9w0BAQQFADCBkzEVM"
566 "BMGA1UEChMMR29vZ2xlLCBJbmMuMREwDwYDVQQLEwhDaHJvbWVPUzEiMCAGCSqGSIb3DQ"
567 "EJARYTZ3NwZW5jZXJAZ29vZ2xlLmNvbTEaMBgGA1UEBxMRTW91bnRhaW4gVmlldywgQ0E"
568 "xCzAJBgNVBAgTAkNBMQswCQYDVQQGEwJVUzENMAsGA1UEAxMEbG1hbzAeFw0xMTAzMTYy"
569 "MzQ5MzhaFw0xMjAzMTUyMzQ5MzhaMFMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVM"
570 "BMGA1UEChMMR29vZ2xlLCBJbmMuMREwDwYDVQQLEwhDaHJvbWVPUzENMAsGA1UEAxMEbG"
571 "1hbzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA31WiJ9LvprrhKtDlW0RdLFAO7Qj"
572 "kvs+sG6j2Vp2aBSrlhALG/0BVHUhWi4F/HHJho+ncLHAg5AGO0sdAjYUdQG6tfPqjLsIA"
573 "LtoKEZZdFe/JhmqOEaxWsSdu2S2RdPgCQOsP79EH58gXwu2gejCkJDmU22WL4YLuqOc17"
574 "nxbDC8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCv4vMD+PMlfnftu4/6Yf/oMLE8yCOqZT"
575 "Q/dWCxB9PiJnOefiBeSzSZE6Uv3G7qnblZPVZaFeJMd+ostt0viCyPucFsFgLMyyoV1dM"
576 "VPVwJT5Iq1AHehWXnTBbxUK9wioA5jOEKdroKjuSSsg/Q8Wx6cpJmttQz5olGPgstmACR"
577 "WA==\""
578 " }"
579 " ],"
580 "}");
581 std::string test_guid("{f998f760-272b-6939-4c2beffe428697aa}");
582 OncNetworkParser parser(test_blob);
583 ASSERT_EQ(1, parser.GetCertificatesSize());
584
585 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get();
586 EXPECT_TRUE(cert.get() != NULL);
587 EXPECT_EQ(net::SERVER_CERT, GetCertType(cert.get()));
588
589 EXPECT_STREQ(test_guid.c_str(),
590 cert->GetDefaultNickname(net::SERVER_CERT).c_str());
591 net::CertificateList result_list;
592 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list);
593 ASSERT_EQ(1ul, result_list.size());
594 EXPECT_EQ(net::SERVER_CERT, GetCertType(result_list[0].get()));
595
596 SECKEYPrivateKeyList* privkey_list =
597 PK11_ListPrivKeysInSlot(slot_->os_module_handle(), NULL, NULL);
598 EXPECT_FALSE(privkey_list);
599
600 SECKEYPublicKeyList* pubkey_list =
601 PK11_ListPublicKeysInSlot(slot_->os_module_handle(), NULL);
602 EXPECT_FALSE(pubkey_list);
603
604 }
605
606 TEST_F(OncNetworkParserTest, TestAddAuthorityCertificate) {
607 const std::string test_blob(std::string("{"
608 " \"Certificates\": [") +
609 std::string(kCertificateWebAuthority) + std::string(
610 " ],"
611 "}"));
612 std::string test_guid("{f998f760-272b-6939-4c2beffe428697ab}");
613 OncNetworkParser parser(test_blob);
614 ASSERT_EQ(1, parser.GetCertificatesSize());
615
616 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get();
617 EXPECT_TRUE(cert.get() != NULL);
618 EXPECT_EQ(net::CA_CERT, GetCertType(cert.get()));
619
620 EXPECT_STREQ(test_guid.c_str(),
621 cert->GetDefaultNickname(net::CA_CERT).c_str());
622 net::CertificateList result_list;
623 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list);
624 ASSERT_EQ(1ul, result_list.size());
625 EXPECT_EQ(net::CA_CERT, GetCertType(result_list[0].get()));
626
627 SECKEYPrivateKeyList* privkey_list =
628 PK11_ListPrivKeysInSlot(slot_->os_module_handle(), NULL, NULL);
629 EXPECT_FALSE(privkey_list);
630
631 SECKEYPublicKeyList* pubkey_list =
632 PK11_ListPublicKeysInSlot(slot_->os_module_handle(), NULL);
633 EXPECT_FALSE(pubkey_list);
634
536 } 635 }
537 636
538 TEST_F(OncNetworkParserTest, TestNetworkAndCertificate) { 637 TEST_F(OncNetworkParserTest, TestNetworkAndCertificate) {
539 std::string test_blob(std::string( 638 std::string test_blob(std::string(
540 "{" 639 "{"
541 " \"NetworkConfigurations\": [") + 640 " \"NetworkConfigurations\": [") +
542 std::string(kNetworkConfigurationOpenVPN) + std::string( 641 std::string(kNetworkConfigurationOpenVPN) + std::string(
543 " ]," 642 " ],"
544 " \"Certificates\": [") + 643 " \"Certificates\": [") +
545 std::string(kCertificateWebAuthority) + std::string( 644 std::string(kCertificateWebAuthority) + std::string(
546 " ]," 645 " ],"
547 "}")); 646 "}"));
548 OncNetworkParser parser(test_blob); 647 OncNetworkParser parser(test_blob);
549 648
550 EXPECT_EQ(1, parser.GetCertificatesSize()); 649 EXPECT_EQ(1, parser.GetCertificatesSize());
551 EXPECT_TRUE(parser.ParseCertificate(0)); 650 EXPECT_TRUE(parser.ParseCertificate(0));
552 651
553 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); 652 EXPECT_EQ(1, parser.GetNetworkConfigsSize());
554 scoped_ptr<Network> network(parser.ParseNetwork(0)); 653 scoped_ptr<Network> network(parser.ParseNetwork(0));
555 ASSERT_TRUE(network.get() != NULL); 654 ASSERT_TRUE(network.get() != NULL);
556 EXPECT_EQ(network->type(), chromeos::TYPE_VPN); 655 EXPECT_EQ(network->type(), chromeos::TYPE_VPN);
557 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get()); 656 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get());
558 EXPECT_EQ(PROVIDER_TYPE_OPEN_VPN, vpn->provider_type()); 657 EXPECT_EQ(PROVIDER_TYPE_OPEN_VPN, vpn->provider_type());
559 } 658 }
560 659
561 } // namespace chromeos 660 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/cros/onc_network_parser.cc ('k') | net/base/cert_database.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698