| 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 |