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 "base/command_line.h" | 5 #include "base/command_line.h" |
6 #include "base/json/json_file_value_serializer.h" | 6 #include "base/json/json_file_value_serializer.h" |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "chrome/common/chrome_paths.h" | 10 #include "chrome/common/chrome_paths.h" |
(...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
752 if (skip.count(i->id())) { | 752 if (skip.count(i->id())) { |
753 EXPECT_EQ(PermissionMessage::kNone, permission_info->message_id()) | 753 EXPECT_EQ(PermissionMessage::kNone, permission_info->message_id()) |
754 << "unexpected message_id for " << permission_info->name(); | 754 << "unexpected message_id for " << permission_info->name(); |
755 } else { | 755 } else { |
756 EXPECT_NE(PermissionMessage::kNone, permission_info->message_id()) | 756 EXPECT_NE(PermissionMessage::kNone, permission_info->message_id()) |
757 << "missing message_id for " << permission_info->name(); | 757 << "missing message_id for " << permission_info->name(); |
758 } | 758 } |
759 } | 759 } |
760 } | 760 } |
761 | 761 |
762 TEST(PermissionsTest, FileSystemWritePermissionMessages) { | 762 TEST(PermissionsTest, FileSystemPermissionMessages) { |
763 APIPermissionSet api_permissions; | |
764 api_permissions.insert(APIPermission::kFileSystemWrite); | |
765 scoped_refptr<PermissionSet> permissions( | |
766 new PermissionSet(api_permissions, URLPatternSet(), URLPatternSet())); | |
767 PermissionMessages messages = | |
768 permissions->GetPermissionMessages(Manifest::TYPE_PLATFORM_APP); | |
769 ASSERT_EQ(1u, messages.size()); | |
770 EXPECT_EQ(PermissionMessage::kFileSystemWrite, messages[0].id()); | |
771 } | |
772 | |
773 TEST(PermissionsTest, FileSystemDirectoryPermissionMessages) { | |
774 APIPermissionSet api_permissions; | |
775 api_permissions.insert(APIPermission::kFileSystemDirectory); | |
776 scoped_refptr<PermissionSet> permissions( | |
777 new PermissionSet(api_permissions, URLPatternSet(), URLPatternSet())); | |
778 PermissionMessages messages = | |
779 permissions->GetPermissionMessages(Manifest::TYPE_PLATFORM_APP); | |
780 ASSERT_EQ(1u, messages.size()); | |
781 EXPECT_EQ(PermissionMessage::kFileSystemDirectory, messages[0].id()); | |
782 } | |
783 | |
784 TEST(PermissionsTest, MergedFileSystemPermissionMessages) { | |
785 APIPermissionSet api_permissions; | 763 APIPermissionSet api_permissions; |
786 api_permissions.insert(APIPermission::kFileSystemWrite); | 764 api_permissions.insert(APIPermission::kFileSystemWrite); |
787 api_permissions.insert(APIPermission::kFileSystemDirectory); | 765 api_permissions.insert(APIPermission::kFileSystemDirectory); |
788 scoped_refptr<PermissionSet> permissions( | 766 scoped_refptr<PermissionSet> permissions( |
789 new PermissionSet(api_permissions, URLPatternSet(), URLPatternSet())); | 767 new PermissionSet(api_permissions, URLPatternSet(), URLPatternSet())); |
790 PermissionMessages messages = | 768 PermissionMessages messages = |
| 769 permissions->GetPermissionMessages(Manifest::TYPE_PLATFORM_APP); |
| 770 ASSERT_EQ(2u, messages.size()); |
| 771 std::sort(messages.begin(), messages.end()); |
| 772 std::set<PermissionMessage::ID> ids; |
| 773 for (PermissionMessages::const_iterator it = messages.begin(); |
| 774 it != messages.end(); ++it) { |
| 775 ids.insert(it->id()); |
| 776 } |
| 777 EXPECT_TRUE(ContainsKey(ids, PermissionMessage::kFileSystemDirectory)); |
| 778 EXPECT_TRUE(ContainsKey(ids, PermissionMessage::kFileSystemWrite)); |
| 779 } |
| 780 |
| 781 TEST(PermissionsTest, HiddenFileSystemPermissionMessages) { |
| 782 APIPermissionSet api_permissions; |
| 783 api_permissions.insert(APIPermission::kFileSystemWrite); |
| 784 api_permissions.insert(APIPermission::kFileSystemDirectory); |
| 785 api_permissions.insert(APIPermission::kFileSystemWriteDirectory); |
| 786 scoped_refptr<PermissionSet> permissions( |
| 787 new PermissionSet(api_permissions, URLPatternSet(), URLPatternSet())); |
| 788 PermissionMessages messages = |
791 permissions->GetPermissionMessages(Manifest::TYPE_PLATFORM_APP); | 789 permissions->GetPermissionMessages(Manifest::TYPE_PLATFORM_APP); |
792 ASSERT_EQ(1u, messages.size()); | 790 ASSERT_EQ(1u, messages.size()); |
793 EXPECT_EQ(PermissionMessage::kFileSystemWriteDirectory, messages[0].id()); | 791 EXPECT_EQ(PermissionMessage::kFileSystemWriteDirectory, messages[0].id()); |
794 } | 792 } |
795 | 793 |
796 TEST(PermissionsTest, MergedFileSystemPermissionComparison) { | 794 TEST(PermissionsTest, MergedFileSystemPermissionComparison) { |
797 APIPermissionSet write_api_permissions; | 795 APIPermissionSet write_api_permissions; |
798 write_api_permissions.insert(APIPermission::kFileSystemWrite); | 796 write_api_permissions.insert(APIPermission::kFileSystemWrite); |
799 scoped_refptr<PermissionSet> write_permissions(new PermissionSet( | 797 scoped_refptr<PermissionSet> write_permissions(new PermissionSet( |
800 write_api_permissions, URLPatternSet(), URLPatternSet())); | 798 write_api_permissions, URLPatternSet(), URLPatternSet())); |
801 | 799 |
802 APIPermissionSet directory_api_permissions; | 800 APIPermissionSet directory_api_permissions; |
803 directory_api_permissions.insert(APIPermission::kFileSystemDirectory); | 801 directory_api_permissions.insert(APIPermission::kFileSystemDirectory); |
804 scoped_refptr<PermissionSet> directory_permissions(new PermissionSet( | 802 scoped_refptr<PermissionSet> directory_permissions(new PermissionSet( |
805 directory_api_permissions, URLPatternSet(), URLPatternSet())); | 803 directory_api_permissions, URLPatternSet(), URLPatternSet())); |
806 | 804 |
807 APIPermissionSet both_api_permissions; | 805 APIPermissionSet write_directory_api_permissions; |
808 both_api_permissions.insert(APIPermission::kFileSystemWrite); | 806 write_directory_api_permissions.insert( |
809 both_api_permissions.insert(APIPermission::kFileSystemDirectory); | 807 APIPermission::kFileSystemWriteDirectory); |
810 scoped_refptr<PermissionSet> both_permissions(new PermissionSet( | 808 scoped_refptr<PermissionSet> write_directory_permissions(new PermissionSet( |
811 both_api_permissions, URLPatternSet(), URLPatternSet())); | 809 write_directory_api_permissions, URLPatternSet(), URLPatternSet())); |
812 | 810 |
813 EXPECT_FALSE(both_permissions->HasLessPrivilegesThan( | 811 EXPECT_FALSE(write_directory_permissions->HasLessPrivilegesThan( |
814 write_permissions, Manifest::TYPE_PLATFORM_APP)); | 812 write_permissions, Manifest::TYPE_PLATFORM_APP)); |
815 EXPECT_FALSE(both_permissions->HasLessPrivilegesThan( | 813 EXPECT_FALSE(write_directory_permissions->HasLessPrivilegesThan( |
816 directory_permissions, Manifest::TYPE_PLATFORM_APP)); | 814 directory_permissions, Manifest::TYPE_PLATFORM_APP)); |
817 EXPECT_TRUE(write_permissions->HasLessPrivilegesThan( | 815 EXPECT_TRUE(write_permissions->HasLessPrivilegesThan( |
818 directory_permissions, Manifest::TYPE_PLATFORM_APP)); | 816 directory_permissions, Manifest::TYPE_PLATFORM_APP)); |
819 EXPECT_TRUE(write_permissions->HasLessPrivilegesThan( | 817 EXPECT_TRUE(write_permissions->HasLessPrivilegesThan( |
820 both_permissions, Manifest::TYPE_PLATFORM_APP)); | 818 write_directory_permissions, Manifest::TYPE_PLATFORM_APP)); |
821 EXPECT_TRUE(directory_permissions->HasLessPrivilegesThan( | 819 EXPECT_TRUE(directory_permissions->HasLessPrivilegesThan( |
822 write_permissions, Manifest::TYPE_PLATFORM_APP)); | 820 write_permissions, Manifest::TYPE_PLATFORM_APP)); |
823 EXPECT_TRUE(directory_permissions->HasLessPrivilegesThan( | 821 EXPECT_TRUE(directory_permissions->HasLessPrivilegesThan( |
824 both_permissions, Manifest::TYPE_PLATFORM_APP)); | 822 write_directory_permissions, Manifest::TYPE_PLATFORM_APP)); |
825 } | 823 } |
826 | 824 |
827 TEST(PermissionsTest, GetWarningMessages_ManyHosts) { | 825 TEST(PermissionsTest, GetWarningMessages_ManyHosts) { |
828 scoped_refptr<Extension> extension; | 826 scoped_refptr<Extension> extension; |
829 | 827 |
830 extension = LoadManifest("permissions", "many-hosts.json"); | 828 extension = LoadManifest("permissions", "many-hosts.json"); |
831 std::vector<string16> warnings = | 829 std::vector<string16> warnings = |
832 PermissionsData::GetPermissionMessageStrings(extension.get()); | 830 PermissionsData::GetPermissionMessageStrings(extension.get()); |
833 ASSERT_EQ(1u, warnings.size()); | 831 ASSERT_EQ(1u, warnings.size()); |
834 EXPECT_EQ("Access your data on encrypted.google.com and www.google.com", | 832 EXPECT_EQ("Access your data on encrypted.google.com and www.google.com", |
(...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1435 | 1433 |
1436 scoped_refptr<Extension> extension_dwr( | 1434 scoped_refptr<Extension> extension_dwr( |
1437 LoadManifest("permissions", "web_request_all_host_permissions.json")); | 1435 LoadManifest("permissions", "web_request_all_host_permissions.json")); |
1438 scoped_refptr<const PermissionSet> permissions_dwr( | 1436 scoped_refptr<const PermissionSet> permissions_dwr( |
1439 extension_dwr->GetActivePermissions()); | 1437 extension_dwr->GetActivePermissions()); |
1440 | 1438 |
1441 EXPECT_FALSE(permissions->HasLessPrivilegesThan(permissions_dwr.get(), | 1439 EXPECT_FALSE(permissions->HasLessPrivilegesThan(permissions_dwr.get(), |
1442 extension->GetType())); | 1440 extension->GetType())); |
1443 } | 1441 } |
1444 } // namespace extensions | 1442 } // namespace extensions |
OLD | NEW |