| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/extensions/extension_management.h" | 5 #include "chrome/browser/extensions/extension_management.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 719 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 730 EXPECT_FALSE(extension_management_->IsInstallationExplicitlyAllowed(blocked)); | 730 EXPECT_FALSE(extension_management_->IsInstallationExplicitlyAllowed(blocked)); |
| 731 EXPECT_FALSE( | 731 EXPECT_FALSE( |
| 732 extension_management_->IsInstallationExplicitlyAllowed(not_specified)); | 732 extension_management_->IsInstallationExplicitlyAllowed(not_specified)); |
| 733 } | 733 } |
| 734 | 734 |
| 735 // Tests the flag value indicating that extensions are blacklisted by default. | 735 // Tests the flag value indicating that extensions are blacklisted by default. |
| 736 TEST_F(ExtensionAdminPolicyTest, BlacklistedByDefault) { | 736 TEST_F(ExtensionAdminPolicyTest, BlacklistedByDefault) { |
| 737 EXPECT_FALSE(BlacklistedByDefault(NULL)); | 737 EXPECT_FALSE(BlacklistedByDefault(NULL)); |
| 738 | 738 |
| 739 base::ListValue blacklist; | 739 base::ListValue blacklist; |
| 740 blacklist.Append(new base::StringValue(kNonExistingExtension)); | 740 blacklist.AppendString(kNonExistingExtension); |
| 741 EXPECT_FALSE(BlacklistedByDefault(&blacklist)); | 741 EXPECT_FALSE(BlacklistedByDefault(&blacklist)); |
| 742 blacklist.Append(new base::StringValue("*")); | 742 blacklist.AppendString("*"); |
| 743 EXPECT_TRUE(BlacklistedByDefault(&blacklist)); | 743 EXPECT_TRUE(BlacklistedByDefault(&blacklist)); |
| 744 | 744 |
| 745 blacklist.Clear(); | 745 blacklist.Clear(); |
| 746 blacklist.Append(new base::StringValue("*")); | 746 blacklist.AppendString("*"); |
| 747 EXPECT_TRUE(BlacklistedByDefault(&blacklist)); | 747 EXPECT_TRUE(BlacklistedByDefault(&blacklist)); |
| 748 } | 748 } |
| 749 | 749 |
| 750 // Tests UserMayLoad for required extensions. | 750 // Tests UserMayLoad for required extensions. |
| 751 TEST_F(ExtensionAdminPolicyTest, UserMayLoadRequired) { | 751 TEST_F(ExtensionAdminPolicyTest, UserMayLoadRequired) { |
| 752 CreateExtension(Manifest::COMPONENT); | 752 CreateExtension(Manifest::COMPONENT); |
| 753 EXPECT_TRUE(UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL)); | 753 EXPECT_TRUE(UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL)); |
| 754 base::string16 error; | 754 base::string16 error; |
| 755 EXPECT_TRUE(UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), &error)); | 755 EXPECT_TRUE(UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), &error)); |
| 756 EXPECT_TRUE(error.empty()); | 756 EXPECT_TRUE(error.empty()); |
| 757 | 757 |
| 758 // Required extensions may load even if they're on the blacklist. | 758 // Required extensions may load even if they're on the blacklist. |
| 759 base::ListValue blacklist; | 759 base::ListValue blacklist; |
| 760 blacklist.Append(new base::StringValue(extension_->id())); | 760 blacklist.AppendString(extension_->id()); |
| 761 EXPECT_TRUE( | 761 EXPECT_TRUE( |
| 762 UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), NULL)); | 762 UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), NULL)); |
| 763 | 763 |
| 764 blacklist.Append(new base::StringValue("*")); | 764 blacklist.AppendString("*"); |
| 765 EXPECT_TRUE( | 765 EXPECT_TRUE( |
| 766 UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), NULL)); | 766 UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), NULL)); |
| 767 } | 767 } |
| 768 | 768 |
| 769 // Tests UserMayLoad when no blacklist exists, or it's empty. | 769 // Tests UserMayLoad when no blacklist exists, or it's empty. |
| 770 TEST_F(ExtensionAdminPolicyTest, UserMayLoadNoBlacklist) { | 770 TEST_F(ExtensionAdminPolicyTest, UserMayLoadNoBlacklist) { |
| 771 CreateExtension(Manifest::INTERNAL); | 771 CreateExtension(Manifest::INTERNAL); |
| 772 EXPECT_TRUE(UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL)); | 772 EXPECT_TRUE(UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL)); |
| 773 base::ListValue blacklist; | 773 base::ListValue blacklist; |
| 774 EXPECT_TRUE( | 774 EXPECT_TRUE( |
| 775 UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), NULL)); | 775 UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), NULL)); |
| 776 base::string16 error; | 776 base::string16 error; |
| 777 EXPECT_TRUE( | 777 EXPECT_TRUE( |
| 778 UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), &error)); | 778 UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), &error)); |
| 779 EXPECT_TRUE(error.empty()); | 779 EXPECT_TRUE(error.empty()); |
| 780 } | 780 } |
| 781 | 781 |
| 782 // Tests UserMayLoad for an extension on the whitelist. | 782 // Tests UserMayLoad for an extension on the whitelist. |
| 783 TEST_F(ExtensionAdminPolicyTest, UserMayLoadWhitelisted) { | 783 TEST_F(ExtensionAdminPolicyTest, UserMayLoadWhitelisted) { |
| 784 CreateExtension(Manifest::INTERNAL); | 784 CreateExtension(Manifest::INTERNAL); |
| 785 | 785 |
| 786 base::ListValue whitelist; | 786 base::ListValue whitelist; |
| 787 whitelist.Append(new base::StringValue(extension_->id())); | 787 whitelist.AppendString(extension_->id()); |
| 788 EXPECT_TRUE( | 788 EXPECT_TRUE( |
| 789 UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(), NULL)); | 789 UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(), NULL)); |
| 790 | 790 |
| 791 base::ListValue blacklist; | 791 base::ListValue blacklist; |
| 792 blacklist.Append(new base::StringValue(extension_->id())); | 792 blacklist.AppendString(extension_->id()); |
| 793 EXPECT_TRUE( | 793 EXPECT_TRUE( |
| 794 UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(), NULL)); | 794 UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(), NULL)); |
| 795 base::string16 error; | 795 base::string16 error; |
| 796 EXPECT_TRUE( | 796 EXPECT_TRUE( |
| 797 UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(), &error)); | 797 UserMayLoad(NULL, &whitelist, NULL, NULL, extension_.get(), &error)); |
| 798 EXPECT_TRUE(error.empty()); | 798 EXPECT_TRUE(error.empty()); |
| 799 } | 799 } |
| 800 | 800 |
| 801 // Tests UserMayLoad for an extension on the blacklist. | 801 // Tests UserMayLoad for an extension on the blacklist. |
| 802 TEST_F(ExtensionAdminPolicyTest, UserMayLoadBlacklisted) { | 802 TEST_F(ExtensionAdminPolicyTest, UserMayLoadBlacklisted) { |
| 803 CreateExtension(Manifest::INTERNAL); | 803 CreateExtension(Manifest::INTERNAL); |
| 804 | 804 |
| 805 // Blacklisted by default. | 805 // Blacklisted by default. |
| 806 base::ListValue blacklist; | 806 base::ListValue blacklist; |
| 807 blacklist.Append(new base::StringValue("*")); | 807 blacklist.AppendString("*"); |
| 808 EXPECT_FALSE( | 808 EXPECT_FALSE( |
| 809 UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), NULL)); | 809 UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), NULL)); |
| 810 base::string16 error; | 810 base::string16 error; |
| 811 EXPECT_FALSE( | 811 EXPECT_FALSE( |
| 812 UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), &error)); | 812 UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), &error)); |
| 813 EXPECT_FALSE(error.empty()); | 813 EXPECT_FALSE(error.empty()); |
| 814 | 814 |
| 815 // Extension on the blacklist, with and without wildcard. | 815 // Extension on the blacklist, with and without wildcard. |
| 816 blacklist.Append(new base::StringValue(extension_->id())); | 816 blacklist.AppendString(extension_->id()); |
| 817 EXPECT_FALSE( | 817 EXPECT_FALSE( |
| 818 UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), NULL)); | 818 UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), NULL)); |
| 819 blacklist.Clear(); | 819 blacklist.Clear(); |
| 820 blacklist.Append(new base::StringValue(extension_->id())); | 820 blacklist.AppendString(extension_->id()); |
| 821 EXPECT_FALSE( | 821 EXPECT_FALSE( |
| 822 UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), NULL)); | 822 UserMayLoad(&blacklist, NULL, NULL, NULL, extension_.get(), NULL)); |
| 823 | 823 |
| 824 // With a whitelist. There's no such thing as a whitelist wildcard. | 824 // With a whitelist. There's no such thing as a whitelist wildcard. |
| 825 base::ListValue whitelist; | 825 base::ListValue whitelist; |
| 826 whitelist.Append(new base::StringValue("behllobkkfkfnphdnhnkndlbkcpglgmj")); | 826 whitelist.AppendString("behllobkkfkfnphdnhnkndlbkcpglgmj"); |
| 827 EXPECT_FALSE( | 827 EXPECT_FALSE( |
| 828 UserMayLoad(&blacklist, &whitelist, NULL, NULL, extension_.get(), NULL)); | 828 UserMayLoad(&blacklist, &whitelist, NULL, NULL, extension_.get(), NULL)); |
| 829 whitelist.Append(new base::StringValue("*")); | 829 whitelist.AppendString("*"); |
| 830 EXPECT_FALSE( | 830 EXPECT_FALSE( |
| 831 UserMayLoad(&blacklist, &whitelist, NULL, NULL, extension_.get(), NULL)); | 831 UserMayLoad(&blacklist, &whitelist, NULL, NULL, extension_.get(), NULL)); |
| 832 } | 832 } |
| 833 | 833 |
| 834 TEST_F(ExtensionAdminPolicyTest, UserMayLoadAllowedTypes) { | 834 TEST_F(ExtensionAdminPolicyTest, UserMayLoadAllowedTypes) { |
| 835 CreateExtension(Manifest::INTERNAL); | 835 CreateExtension(Manifest::INTERNAL); |
| 836 EXPECT_TRUE(UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL)); | 836 EXPECT_TRUE(UserMayLoad(NULL, NULL, NULL, NULL, extension_.get(), NULL)); |
| 837 | 837 |
| 838 base::ListValue allowed_types; | 838 base::ListValue allowed_types; |
| 839 EXPECT_FALSE( | 839 EXPECT_FALSE( |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 874 EXPECT_FALSE(error.empty()); | 874 EXPECT_FALSE(error.empty()); |
| 875 | 875 |
| 876 CreateExtension(Manifest::INTERNAL); | 876 CreateExtension(Manifest::INTERNAL); |
| 877 error.clear(); | 877 error.clear(); |
| 878 EXPECT_FALSE(MustRemainEnabled(extension_.get(), NULL)); | 878 EXPECT_FALSE(MustRemainEnabled(extension_.get(), NULL)); |
| 879 EXPECT_FALSE(MustRemainEnabled(extension_.get(), &error)); | 879 EXPECT_FALSE(MustRemainEnabled(extension_.get(), &error)); |
| 880 EXPECT_TRUE(error.empty()); | 880 EXPECT_TRUE(error.empty()); |
| 881 } | 881 } |
| 882 | 882 |
| 883 } // namespace extensions | 883 } // namespace extensions |
| OLD | NEW |