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 "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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |