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

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

Issue 8949056: This adds support for encrypted ONC import (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed merge Created 8 years, 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "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 <keyhi.h>
9 #include <pk11pub.h> 9 #include <pk11pub.h>
10 10
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 " \"NetworkConfigurations\": [{" 462 " \"NetworkConfigurations\": [{"
463 " \"GUID\": \"{485d6076-dd44-6b6d-69787465725f5045}\"," 463 " \"GUID\": \"{485d6076-dd44-6b6d-69787465725f5045}\","
464 " \"Type\": \"WiFi\"," 464 " \"Type\": \"WiFi\","
465 " \"WiFi\": {" 465 " \"WiFi\": {"
466 " \"Security\": \"WEP-PSK\"," 466 " \"Security\": \"WEP-PSK\","
467 " \"SSID\": \"ssid\"," 467 " \"SSID\": \"ssid\","
468 " \"Passphrase\": \"pass\"," 468 " \"Passphrase\": \"pass\","
469 " }" 469 " }"
470 " }]" 470 " }]"
471 "}"); 471 "}");
472 OncNetworkParser parser(test_blob, NetworkUIData::ONC_SOURCE_USER_IMPORT); 472 OncNetworkParser parser(test_blob, "", NetworkUIData::ONC_SOURCE_USER_IMPORT);
473 473
474 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); 474 EXPECT_EQ(1, parser.GetNetworkConfigsSize());
475 EXPECT_EQ(0, parser.GetCertificatesSize()); 475 EXPECT_EQ(0, parser.GetCertificatesSize());
476 scoped_ptr<Network> network(parser.ParseNetwork(0)); 476 scoped_ptr<Network> network(parser.ParseNetwork(0));
477 ASSERT_TRUE(network.get()); 477 ASSERT_TRUE(network.get());
478 478
479 EXPECT_EQ(network->type(), chromeos::TYPE_WIFI); 479 EXPECT_EQ(network->type(), chromeos::TYPE_WIFI);
480 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); 480 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get());
481 EXPECT_EQ(wifi->encryption(), chromeos::SECURITY_WEP); 481 EXPECT_EQ(wifi->encryption(), chromeos::SECURITY_WEP);
482 CheckStringProperty(wifi, PROPERTY_INDEX_SECURITY, flimflam::kSecurityWep); 482 CheckStringProperty(wifi, PROPERTY_INDEX_SECURITY, flimflam::kSecurityWep);
483 EXPECT_EQ(wifi->name(), "ssid"); 483 EXPECT_EQ(wifi->name(), "ssid");
484 CheckStringProperty(wifi, PROPERTY_INDEX_SSID, "ssid"); 484 CheckStringProperty(wifi, PROPERTY_INDEX_SSID, "ssid");
485 EXPECT_EQ(wifi->auto_connect(), false); 485 EXPECT_EQ(wifi->auto_connect(), false);
486 EXPECT_EQ(wifi->passphrase(), "pass"); 486 EXPECT_EQ(wifi->passphrase(), "pass");
487 CheckStringProperty(wifi, PROPERTY_INDEX_PASSPHRASE, "pass"); 487 CheckStringProperty(wifi, PROPERTY_INDEX_PASSPHRASE, "pass");
488 } 488 }
489 489
490 TEST_F(OncNetworkParserTest, TestLoadEncryptedOnc) {
491 std::string test_blob(
492 "{"
493 " \"Cipher\": \"AES256\","
494 " \"Ciphertext\": \"eQ9/r6v29/83M745aa0JllEj4lklt3Nfy4kPPvXgjBt1eTBy"
495 "xXB+FnsdvL6Uca5JBU5aROxfiol2+ZZOkxPmUNNIFZj70pkdqOGVe09ncf0aVBDsAa27"
496 "veGIG8rG/VQTTbAo7d8QaxdNNbZvwQVkdsAXawzPCu7zSh4NF/hDnDbYjbN/JEm1NzvW"
497 "gEjeOfqnnw3PnGUYCArIaRsKq9uD0a1NccU+16ZSzyDhX724JNrJjsuxohotk5YXsCK0"
498 "lP7ZXuXj+nSR0aRIETSQ+eqGhrew2octLXq8cXK05s6ZuVAc0mFKPkntSI/fzBACuPi4"
499 "ZaGd3YEYiKzNOgKJ+qEwgoE39xp0EXMZOZyjMOAtA6e1ZZDQGWG7vKdTLmLKNztHGrXv"
500 "lZkyEf1RDs10YgkwwLgUhm0yBJ+eqbxO/RiBXz7O2/UVOkkkVcmeI6yh3BdL6HIYsMMy"
501 "gnZa5WRkd/2/EudoqEnjcqUyGsL+YUqV6KRTC0PH+z7zSwvFs2KygrSM7SIAZM2yiQHT"
502 "QACkA/YCJDwACkkQOBFnRWTWiX0xmN55WMbgrs/wqJ4zGC9LgdAInOBlc3P+76+i7QLa"
503 "NjMovQ==\","
504 " \"HMAC\": \"3ylRy5InlhVzFGakJ/9lvGSyVH0=\","
505 " \"HMACMethod\": \"SHA1\","
506 " \"IV\": \"hcm6OENfqG6C/TVO6p5a8g==\","
507 " \"Iterations\": 20000,"
508 " \"Salt\": \"/3O73QadCzA=\","
509 " \"Stretch\": \"PBKDF2\","
510 " \"Type\": \"EncryptedConfiguration\""
511 "}");
512 OncNetworkParser parser(test_blob,
513 "test0000",
514 NetworkUIData::ONC_SOURCE_USER_IMPORT);
515 ASSERT_TRUE(parser.parse_error().empty());
516 EXPECT_EQ(1, parser.GetNetworkConfigsSize());
517 EXPECT_EQ(0, parser.GetCertificatesSize());
518 scoped_ptr<Network> network(parser.ParseNetwork(0));
519 ASSERT_TRUE(network.get());
520
521 EXPECT_EQ(network->type(), chromeos::TYPE_WIFI);
522 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get());
523 EXPECT_EQ(wifi->encryption(), chromeos::SECURITY_NONE);
524 EXPECT_EQ(wifi->name(), "WirelessNetwork");
525 EXPECT_EQ(wifi->auto_connect(), false);
526 EXPECT_EQ(wifi->passphrase(), "");
527 }
528
529
490 TEST_F(OncNetworkParserTest, TestCreateNetworkWifiEAP1) { 530 TEST_F(OncNetworkParserTest, TestCreateNetworkWifiEAP1) {
491 std::string test_blob( 531 std::string test_blob(
492 "{" 532 "{"
493 " \"NetworkConfigurations\": [{" 533 " \"NetworkConfigurations\": [{"
494 " \"GUID\": \"{485d6076-dd44-6b6d-69787465725f5045}\"," 534 " \"GUID\": \"{485d6076-dd44-6b6d-69787465725f5045}\","
495 " \"Type\": \"WiFi\"," 535 " \"Type\": \"WiFi\","
496 " \"WiFi\": {" 536 " \"WiFi\": {"
497 " \"Security\": \"WPA-EAP\"," 537 " \"Security\": \"WPA-EAP\","
498 " \"SSID\": \"ssid\"," 538 " \"SSID\": \"ssid\","
499 " \"AutoConnect\": true," 539 " \"AutoConnect\": true,"
500 " \"EAP\": {" 540 " \"EAP\": {"
501 " \"Outer\": \"PEAP\"," 541 " \"Outer\": \"PEAP\","
502 " \"UseSystemCAs\": false," 542 " \"UseSystemCAs\": false,"
503 " }" 543 " }"
504 " }" 544 " }"
505 " }]" 545 " }]"
506 "}"); 546 "}");
507 OncNetworkParser parser(test_blob, NetworkUIData::ONC_SOURCE_USER_IMPORT); 547 OncNetworkParser parser(test_blob, "", NetworkUIData::ONC_SOURCE_USER_IMPORT);
508 548
509 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); 549 EXPECT_EQ(1, parser.GetNetworkConfigsSize());
510 EXPECT_EQ(0, parser.GetCertificatesSize()); 550 EXPECT_EQ(0, parser.GetCertificatesSize());
511 scoped_ptr<Network> network(parser.ParseNetwork(0)); 551 scoped_ptr<Network> network(parser.ParseNetwork(0));
512 ASSERT_TRUE(network.get()); 552 ASSERT_TRUE(network.get());
513 553
514 EXPECT_EQ(network->type(), chromeos::TYPE_WIFI); 554 EXPECT_EQ(network->type(), chromeos::TYPE_WIFI);
515 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); 555 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get());
516 EXPECT_EQ(wifi->encryption(), chromeos::SECURITY_8021X); 556 EXPECT_EQ(wifi->encryption(), chromeos::SECURITY_8021X);
517 CheckStringProperty(wifi, PROPERTY_INDEX_SECURITY, flimflam::kSecurity8021x); 557 CheckStringProperty(wifi, PROPERTY_INDEX_SECURITY, flimflam::kSecurity8021x);
(...skipping 18 matching lines...) Expand all
536 " \"AutoConnect\": false," 576 " \"AutoConnect\": false,"
537 " \"EAP\": {" 577 " \"EAP\": {"
538 " \"Outer\": \"LEAP\"," 578 " \"Outer\": \"LEAP\","
539 " \"Identity\": \"user\"," 579 " \"Identity\": \"user\","
540 " \"Password\": \"pass\"," 580 " \"Password\": \"pass\","
541 " \"AnonymousIdentity\": \"anon\"," 581 " \"AnonymousIdentity\": \"anon\","
542 " }" 582 " }"
543 " }" 583 " }"
544 " }]" 584 " }]"
545 "}"); 585 "}");
546 OncNetworkParser parser(test_blob, NetworkUIData::ONC_SOURCE_USER_IMPORT); 586 OncNetworkParser parser(test_blob, "", NetworkUIData::ONC_SOURCE_USER_IMPORT);
547 587
548 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); 588 EXPECT_EQ(1, parser.GetNetworkConfigsSize());
549 EXPECT_EQ(0, parser.GetCertificatesSize()); 589 EXPECT_EQ(0, parser.GetCertificatesSize());
550 scoped_ptr<Network> network(parser.ParseNetwork(0)); 590 scoped_ptr<Network> network(parser.ParseNetwork(0));
551 ASSERT_TRUE(network.get()); 591 ASSERT_TRUE(network.get());
552 592
553 EXPECT_EQ(network->type(), chromeos::TYPE_WIFI); 593 EXPECT_EQ(network->type(), chromeos::TYPE_WIFI);
554 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); 594 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get());
555 EXPECT_EQ(wifi->encryption(), chromeos::SECURITY_8021X); 595 EXPECT_EQ(wifi->encryption(), chromeos::SECURITY_8021X);
556 EXPECT_EQ(wifi->name(), "ssid"); 596 EXPECT_EQ(wifi->name(), "ssid");
(...skipping 18 matching lines...) Expand all
575 " \"Security\": \"WEP-PSK\"," 615 " \"Security\": \"WEP-PSK\","
576 " \"SSID\": \"ssid\"," 616 " \"SSID\": \"ssid\","
577 " \"Passphrase\": \"pass\"," 617 " \"Passphrase\": \"pass\","
578 " }," 618 " },"
579 " \"UnknownField1\": \"Value1\"," 619 " \"UnknownField1\": \"Value1\","
580 " \"UnknownField2\": {" 620 " \"UnknownField2\": {"
581 " \"UnknownSubField\": \"Value2\"" 621 " \"UnknownSubField\": \"Value2\""
582 " }," 622 " },"
583 " }]" 623 " }]"
584 "}"); 624 "}");
585 OncNetworkParser parser(test_blob, NetworkUIData::ONC_SOURCE_USER_IMPORT); 625 OncNetworkParser parser(test_blob, "", NetworkUIData::ONC_SOURCE_USER_IMPORT);
586 scoped_ptr<Network> network(parser.ParseNetwork(0)); 626 scoped_ptr<Network> network(parser.ParseNetwork(0));
587 ASSERT_TRUE(network.get()); 627 ASSERT_TRUE(network.get());
588 628
589 EXPECT_EQ(network->type(), chromeos::TYPE_WIFI); 629 EXPECT_EQ(network->type(), chromeos::TYPE_WIFI);
590 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get()); 630 WifiNetwork* wifi = static_cast<WifiNetwork*>(network.get());
591 EXPECT_EQ(wifi->encryption(), chromeos::SECURITY_WEP); 631 EXPECT_EQ(wifi->encryption(), chromeos::SECURITY_WEP);
592 EXPECT_EQ(wifi->name(), "ssid"); 632 EXPECT_EQ(wifi->name(), "ssid");
593 EXPECT_EQ(wifi->passphrase(), "pass"); 633 EXPECT_EQ(wifi->passphrase(), "pass");
594 } 634 }
595 635
596 TEST_F(OncNetworkParserTest, TestCreateNetworkOpenVPN) { 636 TEST_F(OncNetworkParserTest, TestCreateNetworkOpenVPN) {
597 std::string test_blob(std::string( 637 std::string test_blob(std::string(
598 "{" 638 "{"
599 " \"NetworkConfigurations\": [") + 639 " \"NetworkConfigurations\": [") +
600 std::string(kNetworkConfigurationOpenVPN) + std::string( 640 std::string(kNetworkConfigurationOpenVPN) + std::string(
601 " ]}")); 641 " ]}"));
602 OncNetworkParser parser(test_blob, NetworkUIData::ONC_SOURCE_USER_IMPORT); 642 OncNetworkParser parser(test_blob, "", NetworkUIData::ONC_SOURCE_USER_IMPORT);
603 643
604 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); 644 EXPECT_EQ(1, parser.GetNetworkConfigsSize());
605 EXPECT_EQ(0, parser.GetCertificatesSize()); 645 EXPECT_EQ(0, parser.GetCertificatesSize());
606 scoped_ptr<Network> network(parser.ParseNetwork(0)); 646 scoped_ptr<Network> network(parser.ParseNetwork(0));
607 ASSERT_TRUE(network.get() != NULL); 647 ASSERT_TRUE(network.get() != NULL);
608 648
609 EXPECT_EQ(network->type(), chromeos::TYPE_VPN); 649 EXPECT_EQ(network->type(), chromeos::TYPE_VPN);
610 CheckStringProperty(network.get(), PROPERTY_INDEX_TYPE, flimflam::kTypeVPN); 650 CheckStringProperty(network.get(), PROPERTY_INDEX_TYPE, flimflam::kTypeVPN);
611 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get()); 651 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get());
612 EXPECT_EQ("MyVPN", vpn->name()); 652 EXPECT_EQ("MyVPN", vpn->name());
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
671 " \"PSK\": \"passphrase\"" 711 " \"PSK\": \"passphrase\""
672 " }," 712 " },"
673 " \"L2TP\": {" 713 " \"L2TP\": {"
674 " \"SaveCredentials\": false" 714 " \"SaveCredentials\": false"
675 " }" 715 " }"
676 " }" 716 " }"
677 " }" 717 " }"
678 " ]," 718 " ],"
679 " \"Certificates\": []" 719 " \"Certificates\": []"
680 "}"); 720 "}");
681 OncNetworkParser parser(test_blob, NetworkUIData::ONC_SOURCE_USER_IMPORT); 721 OncNetworkParser parser(test_blob, "", NetworkUIData::ONC_SOURCE_USER_IMPORT);
682 722
683 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); 723 EXPECT_EQ(1, parser.GetNetworkConfigsSize());
684 EXPECT_EQ(0, parser.GetCertificatesSize()); 724 EXPECT_EQ(0, parser.GetCertificatesSize());
685 scoped_ptr<Network> network(parser.ParseNetwork(0)); 725 scoped_ptr<Network> network(parser.ParseNetwork(0));
686 ASSERT_TRUE(network != NULL); 726 ASSERT_TRUE(network != NULL);
687 727
688 EXPECT_EQ(network->type(), chromeos::TYPE_VPN); 728 EXPECT_EQ(network->type(), chromeos::TYPE_VPN);
689 CheckStringProperty(network.get(), PROPERTY_INDEX_TYPE, flimflam::kTypeVPN); 729 CheckStringProperty(network.get(), PROPERTY_INDEX_TYPE, flimflam::kTypeVPN);
690 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get()); 730 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get());
691 EXPECT_EQ("MyL2TPVPN", vpn->name()); 731 EXPECT_EQ("MyL2TPVPN", vpn->name());
(...skipping 10 matching lines...) Expand all
702 } 742 }
703 743
704 TEST_F(OncNetworkParserTest, TestAddClientCertificate) { 744 TEST_F(OncNetworkParserTest, TestAddClientCertificate) {
705 std::string certificate_json( 745 std::string certificate_json(
706 "{" 746 "{"
707 " \"Certificates\": [" 747 " \"Certificates\": ["
708 + std::string(kCertificateClient) + 748 + std::string(kCertificateClient) +
709 " ]," 749 " ],"
710 "}"); 750 "}");
711 std::string test_guid("{f998f760-272b-6939-4c2beffe428697ac}"); 751 std::string test_guid("{f998f760-272b-6939-4c2beffe428697ac}");
712 OncNetworkParser parser(certificate_json, 752 OncNetworkParser parser(certificate_json, "",
713 NetworkUIData::ONC_SOURCE_USER_IMPORT); 753 NetworkUIData::ONC_SOURCE_USER_IMPORT);
714 ASSERT_EQ(1, parser.GetCertificatesSize()); 754 ASSERT_EQ(1, parser.GetCertificatesSize());
715 755
716 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get(); 756 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get();
717 EXPECT_TRUE(cert.get() != NULL); 757 EXPECT_TRUE(cert.get() != NULL);
718 EXPECT_EQ(net::USER_CERT, GetCertType(cert.get())); 758 EXPECT_EQ(net::USER_CERT, GetCertType(cert.get()));
719 759
720 EXPECT_STREQ(test_guid.c_str(), 760 EXPECT_STREQ(test_guid.c_str(),
721 cert->GetDefaultNickname(net::USER_CERT).c_str()); 761 cert->GetDefaultNickname(net::USER_CERT).c_str());
722 net::CertificateList result_list; 762 net::CertificateList result_list;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 std::string certificate_alternate_json( 807 std::string certificate_alternate_json(
768 "{" 808 "{"
769 " \"Certificates\": [" 809 " \"Certificates\": ["
770 + std::string(kCertificateClientAlternate) + 810 + std::string(kCertificateClientAlternate) +
771 " ]," 811 " ],"
772 "}"); 812 "}");
773 813
774 std::string test_guid("{f998f760-272b-6939-4c2beffe428697ac}"); 814 std::string test_guid("{f998f760-272b-6939-4c2beffe428697ac}");
775 { 815 {
776 // First we import a certificate. 816 // First we import a certificate.
777 OncNetworkParser parser(certificate_json, 817 OncNetworkParser parser(certificate_json, "",
778 NetworkUIData::ONC_SOURCE_USER_IMPORT); 818 NetworkUIData::ONC_SOURCE_USER_IMPORT);
779 ASSERT_EQ(1, parser.GetCertificatesSize()); 819 ASSERT_EQ(1, parser.GetCertificatesSize());
780 820
781 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get(); 821 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get();
782 ASSERT_TRUE(cert.get() != NULL); 822 ASSERT_TRUE(cert.get() != NULL);
783 EXPECT_EQ(net::USER_CERT, GetCertType(cert.get())); 823 EXPECT_EQ(net::USER_CERT, GetCertType(cert.get()));
784 824
785 EXPECT_STREQ(test_guid.c_str(), 825 EXPECT_STREQ(test_guid.c_str(),
786 cert->GetDefaultNickname(net::USER_CERT).c_str()); 826 cert->GetDefaultNickname(net::USER_CERT).c_str());
787 net::CertificateList result_list; 827 net::CertificateList result_list;
788 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list); 828 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list);
789 ASSERT_EQ(1ul, result_list.size()); 829 ASSERT_EQ(1ul, result_list.size());
790 EXPECT_EQ(net::USER_CERT, GetCertType(result_list[0].get())); 830 EXPECT_EQ(net::USER_CERT, GetCertType(result_list[0].get()));
791 } 831 }
792 832
793 { 833 {
794 // Now we import a new certificate with the same GUID as the 834 // Now we import a new certificate with the same GUID as the
795 // first. It should replace the old one. 835 // first. It should replace the old one.
796 OncNetworkParser parser(certificate_alternate_json, 836 OncNetworkParser parser(certificate_alternate_json, "",
797 NetworkUIData::ONC_SOURCE_USER_IMPORT); 837 NetworkUIData::ONC_SOURCE_USER_IMPORT);
798 ASSERT_EQ(1, parser.GetCertificatesSize()); 838 ASSERT_EQ(1, parser.GetCertificatesSize());
799 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get(); 839 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get();
800 ASSERT_TRUE(cert.get() != NULL); 840 ASSERT_TRUE(cert.get() != NULL);
801 841
802 EXPECT_STREQ(test_guid.c_str(), 842 EXPECT_STREQ(test_guid.c_str(),
803 cert->GetDefaultNickname(net::USER_CERT).c_str()); 843 cert->GetDefaultNickname(net::USER_CERT).c_str());
804 net::CertificateList result_list; 844 net::CertificateList result_list;
805 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list); 845 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list);
806 ASSERT_EQ(1ul, result_list.size()); 846 ASSERT_EQ(1ul, result_list.size());
807 EXPECT_EQ(net::USER_CERT, GetCertType(result_list[0].get())); 847 EXPECT_EQ(net::USER_CERT, GetCertType(result_list[0].get()));
808 }} 848 }}
809 849
810 TEST_F(OncNetworkParserTest, TestAddServerCertificate) { 850 TEST_F(OncNetworkParserTest, TestAddServerCertificate) {
811 std::string test_blob( 851 std::string test_blob(
812 "{" 852 "{"
813 " \"Certificates\": [" 853 " \"Certificates\": ["
814 + std::string(kCertificateServer) + 854 + std::string(kCertificateServer) +
815 " ]," 855 " ],"
816 "}"); 856 "}");
817 std::string test_guid("{f998f760-272b-6939-4c2beffe428697aa}"); 857 std::string test_guid("{f998f760-272b-6939-4c2beffe428697aa}");
818 OncNetworkParser parser(test_blob, NetworkUIData::ONC_SOURCE_USER_IMPORT); 858 OncNetworkParser parser(test_blob, "", NetworkUIData::ONC_SOURCE_USER_IMPORT);
819 ASSERT_EQ(1, parser.GetCertificatesSize()); 859 ASSERT_EQ(1, parser.GetCertificatesSize());
820 860
821 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get(); 861 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get();
822 EXPECT_TRUE(cert.get() != NULL); 862 EXPECT_TRUE(cert.get() != NULL);
823 EXPECT_EQ(net::SERVER_CERT, GetCertType(cert.get())); 863 EXPECT_EQ(net::SERVER_CERT, GetCertType(cert.get()));
824 864
825 EXPECT_STREQ(test_guid.c_str(), 865 EXPECT_STREQ(test_guid.c_str(),
826 cert->GetDefaultNickname(net::SERVER_CERT).c_str()); 866 cert->GetDefaultNickname(net::SERVER_CERT).c_str());
827 net::CertificateList result_list; 867 net::CertificateList result_list;
828 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list); 868 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list);
(...skipping 20 matching lines...) Expand all
849 889
850 std::string certificate_alternate_json( 890 std::string certificate_alternate_json(
851 "{" 891 "{"
852 " \"Certificates\": [" 892 " \"Certificates\": ["
853 + std::string(kCertificateServerAlternate) + 893 + std::string(kCertificateServerAlternate) +
854 " ]," 894 " ],"
855 "}"); 895 "}");
856 std::string test_guid("{f998f760-272b-6939-4c2beffe428697aa}"); 896 std::string test_guid("{f998f760-272b-6939-4c2beffe428697aa}");
857 { 897 {
858 // First we import a certificate. 898 // First we import a certificate.
859 OncNetworkParser parser(certificate_json, 899 OncNetworkParser parser(certificate_json, "",
860 NetworkUIData::ONC_SOURCE_USER_IMPORT); 900 NetworkUIData::ONC_SOURCE_USER_IMPORT);
861 ASSERT_EQ(1, parser.GetCertificatesSize()); 901 ASSERT_EQ(1, parser.GetCertificatesSize());
862 902
863 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get(); 903 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get();
864 ASSERT_TRUE(cert.get() != NULL); 904 ASSERT_TRUE(cert.get() != NULL);
865 EXPECT_EQ(net::SERVER_CERT, GetCertType(cert.get())); 905 EXPECT_EQ(net::SERVER_CERT, GetCertType(cert.get()));
866 906
867 EXPECT_STREQ(test_guid.c_str(), 907 EXPECT_STREQ(test_guid.c_str(),
868 cert->GetDefaultNickname(net::SERVER_CERT).c_str()); 908 cert->GetDefaultNickname(net::SERVER_CERT).c_str());
869 net::CertificateList result_list; 909 net::CertificateList result_list;
870 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list); 910 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list);
871 ASSERT_EQ(1ul, result_list.size()); 911 ASSERT_EQ(1ul, result_list.size());
872 EXPECT_EQ(net::SERVER_CERT, GetCertType(result_list[0].get())); 912 EXPECT_EQ(net::SERVER_CERT, GetCertType(result_list[0].get()));
873 } 913 }
874 914
875 { 915 {
876 // Now we import a new certificate with the same GUID as the 916 // Now we import a new certificate with the same GUID as the
877 // first. It should replace the old one. 917 // first. It should replace the old one.
878 OncNetworkParser parser(certificate_alternate_json, 918 OncNetworkParser parser(certificate_alternate_json, "",
879 NetworkUIData::ONC_SOURCE_USER_IMPORT); 919 NetworkUIData::ONC_SOURCE_USER_IMPORT);
880 ASSERT_EQ(1, parser.GetCertificatesSize()); 920 ASSERT_EQ(1, parser.GetCertificatesSize());
881 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get(); 921 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get();
882 ASSERT_TRUE(cert.get() != NULL); 922 ASSERT_TRUE(cert.get() != NULL);
883 923
884 EXPECT_STREQ(test_guid.c_str(), 924 EXPECT_STREQ(test_guid.c_str(),
885 cert->GetDefaultNickname(net::SERVER_CERT).c_str()); 925 cert->GetDefaultNickname(net::SERVER_CERT).c_str());
886 net::CertificateList result_list; 926 net::CertificateList result_list;
887 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list); 927 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list);
888 ASSERT_EQ(1ul, result_list.size()); 928 ASSERT_EQ(1ul, result_list.size());
889 EXPECT_EQ(net::SERVER_CERT, GetCertType(result_list[0].get())); 929 EXPECT_EQ(net::SERVER_CERT, GetCertType(result_list[0].get()));
890 } 930 }
891 } 931 }
892 932
893 933
894 TEST_F(OncNetworkParserTest, TestAddAuthorityCertificate) { 934 TEST_F(OncNetworkParserTest, TestAddAuthorityCertificate) {
895 const std::string test_blob("{" 935 const std::string test_blob("{"
896 " \"Certificates\": [" + 936 " \"Certificates\": [" +
897 std::string(kCertificateWebAuthority) + 937 std::string(kCertificateWebAuthority) +
898 " ]," 938 " ],"
899 "}"); 939 "}");
900 std::string test_guid("{f998f760-272b-6939-4c2beffe428697ab}"); 940 std::string test_guid("{f998f760-272b-6939-4c2beffe428697ab}");
901 OncNetworkParser parser(test_blob, NetworkUIData::ONC_SOURCE_USER_IMPORT); 941 OncNetworkParser parser(test_blob, "", NetworkUIData::ONC_SOURCE_USER_IMPORT);
902 ASSERT_EQ(1, parser.GetCertificatesSize()); 942 ASSERT_EQ(1, parser.GetCertificatesSize());
903 943
904 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get(); 944 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get();
905 EXPECT_TRUE(cert.get() != NULL); 945 EXPECT_TRUE(cert.get() != NULL);
906 EXPECT_EQ(net::CA_CERT, GetCertType(cert.get())); 946 EXPECT_EQ(net::CA_CERT, GetCertType(cert.get()));
907 947
908 EXPECT_STREQ(test_guid.c_str(), 948 EXPECT_STREQ(test_guid.c_str(),
909 cert->GetDefaultNickname(net::CA_CERT).c_str()); 949 cert->GetDefaultNickname(net::CA_CERT).c_str());
910 net::CertificateList result_list; 950 net::CertificateList result_list;
911 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list); 951 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list);
(...skipping 19 matching lines...) Expand all
931 std::string authority_alternate_json( 971 std::string authority_alternate_json(
932 "{" 972 "{"
933 " \"Certificates\": [" + 973 " \"Certificates\": [" +
934 std::string(kCertificateWebAuthorityAlternate) + 974 std::string(kCertificateWebAuthorityAlternate) +
935 " ]" 975 " ]"
936 "}"); 976 "}");
937 std::string test_guid("{f998f760-272b-6939-4c2beffe428697ab}"); 977 std::string test_guid("{f998f760-272b-6939-4c2beffe428697ab}");
938 978
939 { 979 {
940 // First we import an authority certificate. 980 // First we import an authority certificate.
941 OncNetworkParser parser(authority_json, 981 OncNetworkParser parser(authority_json, "",
942 NetworkUIData::ONC_SOURCE_USER_IMPORT); 982 NetworkUIData::ONC_SOURCE_USER_IMPORT);
943 ASSERT_EQ(1, parser.GetCertificatesSize()); 983 ASSERT_EQ(1, parser.GetCertificatesSize());
944 984
945 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get(); 985 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get();
946 ASSERT_TRUE(cert.get() != NULL); 986 ASSERT_TRUE(cert.get() != NULL);
947 EXPECT_EQ(net::CA_CERT, GetCertType(cert.get())); 987 EXPECT_EQ(net::CA_CERT, GetCertType(cert.get()));
948 988
949 EXPECT_STREQ(test_guid.c_str(), 989 EXPECT_STREQ(test_guid.c_str(),
950 cert->GetDefaultNickname(net::CA_CERT).c_str()); 990 cert->GetDefaultNickname(net::CA_CERT).c_str());
951 net::CertificateList result_list; 991 net::CertificateList result_list;
952 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list); 992 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list);
953 ASSERT_EQ(1ul, result_list.size()); 993 ASSERT_EQ(1ul, result_list.size());
954 EXPECT_EQ(net::CA_CERT, GetCertType(result_list[0].get())); 994 EXPECT_EQ(net::CA_CERT, GetCertType(result_list[0].get()));
955 } 995 }
956 996
957 { 997 {
958 // Now we import a new authority certificate with the same GUID as the 998 // Now we import a new authority certificate with the same GUID as the
959 // first. It should replace the old one. 999 // first. It should replace the old one.
960 OncNetworkParser parser(authority_alternate_json, 1000 OncNetworkParser parser(authority_alternate_json, "",
961 NetworkUIData::ONC_SOURCE_USER_IMPORT); 1001 NetworkUIData::ONC_SOURCE_USER_IMPORT);
962 ASSERT_EQ(1, parser.GetCertificatesSize()); 1002 ASSERT_EQ(1, parser.GetCertificatesSize());
963 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get(); 1003 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get();
964 ASSERT_TRUE(cert.get() != NULL); 1004 ASSERT_TRUE(cert.get() != NULL);
965 1005
966 EXPECT_STREQ(test_guid.c_str(), 1006 EXPECT_STREQ(test_guid.c_str(),
967 cert->GetDefaultNickname(net::CA_CERT).c_str()); 1007 cert->GetDefaultNickname(net::CA_CERT).c_str());
968 net::CertificateList result_list; 1008 net::CertificateList result_list;
969 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list); 1009 OncNetworkParser::ListCertsWithNickname(test_guid, &result_list);
970 ASSERT_EQ(1ul, result_list.size()); 1010 ASSERT_EQ(1ul, result_list.size());
971 EXPECT_EQ(net::CA_CERT, GetCertType(result_list[0].get())); 1011 EXPECT_EQ(net::CA_CERT, GetCertType(result_list[0].get()));
972 } 1012 }
973 } 1013 }
974 1014
975 TEST_F(OncNetworkParserTest, TestNetworkAndCertificate) { 1015 TEST_F(OncNetworkParserTest, TestNetworkAndCertificate) {
976 std::string test_blob( 1016 std::string test_blob(
977 "{" 1017 "{"
978 " \"NetworkConfigurations\": [" + 1018 " \"NetworkConfigurations\": [" +
979 std::string(kNetworkConfigurationOpenVPN) + 1019 std::string(kNetworkConfigurationOpenVPN) +
980 " ]," 1020 " ],"
981 " \"Certificates\": [" + 1021 " \"Certificates\": [" +
982 std::string(kCertificateWebAuthority) + 1022 std::string(kCertificateWebAuthority) +
983 " ]," 1023 " ],"
984 "}"); 1024 "}");
985 OncNetworkParser parser(test_blob, NetworkUIData::ONC_SOURCE_USER_IMPORT); 1025 OncNetworkParser parser(test_blob, "",
1026 NetworkUIData::ONC_SOURCE_USER_IMPORT);
986 1027
987 EXPECT_EQ(1, parser.GetCertificatesSize()); 1028 EXPECT_EQ(1, parser.GetCertificatesSize());
988 EXPECT_TRUE(parser.ParseCertificate(0)); 1029 EXPECT_TRUE(parser.ParseCertificate(0));
989 1030
990 EXPECT_EQ(1, parser.GetNetworkConfigsSize()); 1031 EXPECT_EQ(1, parser.GetNetworkConfigsSize());
991 scoped_ptr<Network> network(parser.ParseNetwork(0)); 1032 scoped_ptr<Network> network(parser.ParseNetwork(0));
992 ASSERT_TRUE(network.get() != NULL); 1033 ASSERT_TRUE(network.get() != NULL);
993 EXPECT_EQ(network->type(), chromeos::TYPE_VPN); 1034 EXPECT_EQ(network->type(), chromeos::TYPE_VPN);
994 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get()); 1035 VirtualNetwork* vpn = static_cast<VirtualNetwork*>(network.get());
995 EXPECT_EQ(PROVIDER_TYPE_OPEN_VPN, vpn->provider_type()); 1036 EXPECT_EQ(PROVIDER_TYPE_OPEN_VPN, vpn->provider_type());
996 } 1037 }
997 1038
998 } // namespace chromeos 1039 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/cros/onc_network_parser.cc ('k') | chrome/browser/policy/configuration_policy_handler_chromeos.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698