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