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 806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
817 PermissionMessageProvider::Get()->GetPermissionMessages( | 817 PermissionMessageProvider::Get()->GetPermissionMessages( |
818 permissions, Manifest::TYPE_PLATFORM_APP); | 818 permissions, Manifest::TYPE_PLATFORM_APP); |
819 ASSERT_EQ(1u, messages.size()); | 819 ASSERT_EQ(1u, messages.size()); |
820 EXPECT_EQ(PermissionMessage::kFileSystemWriteDirectory, messages[0].id()); | 820 EXPECT_EQ(PermissionMessage::kFileSystemWriteDirectory, messages[0].id()); |
821 } | 821 } |
822 | 822 |
823 TEST(PermissionsTest, SuppressedPermissionMessages) { | 823 TEST(PermissionsTest, SuppressedPermissionMessages) { |
824 { | 824 { |
825 APIPermissionSet api_permissions; | 825 APIPermissionSet api_permissions; |
826 api_permissions.insert(APIPermission::kTab); | 826 api_permissions.insert(APIPermission::kTab); |
827 api_permissions.insert(APIPermission::kHistory); | |
828 scoped_refptr<PermissionSet> permissions( | |
829 new PermissionSet(api_permissions, ManifestPermissionSet(), | |
830 URLPatternSet(), URLPatternSet())); | |
831 PermissionMessages messages = | |
832 PermissionMessageProvider::Get()->GetPermissionMessages( | |
833 permissions, Manifest::TYPE_EXTENSION); | |
834 EXPECT_EQ(1u, messages.size()); | |
835 EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id()); | |
836 } | |
837 { | |
838 APIPermissionSet api_permissions; | |
839 api_permissions.insert(APIPermission::kTab); | |
840 URLPatternSet hosts; | 827 URLPatternSet hosts; |
841 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, | 828 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, |
842 "chrome://favicon/")); | 829 "chrome://favicon/")); |
843 scoped_refptr<PermissionSet> permissions( | 830 scoped_refptr<PermissionSet> permissions( |
844 new PermissionSet(api_permissions, ManifestPermissionSet(), | 831 new PermissionSet(api_permissions, ManifestPermissionSet(), |
845 hosts, URLPatternSet())); | 832 hosts, URLPatternSet())); |
846 PermissionMessages messages = | 833 PermissionMessages messages = |
847 PermissionMessageProvider::Get()->GetPermissionMessages( | 834 PermissionMessageProvider::Get()->GetPermissionMessages( |
848 permissions, Manifest::TYPE_EXTENSION); | 835 permissions, Manifest::TYPE_EXTENSION); |
849 EXPECT_EQ(1u, messages.size()); | 836 EXPECT_EQ(1u, messages.size()); |
(...skipping 20 matching lines...) Expand all Loading... |
870 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); | 857 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); |
871 api_permissions.insert(APIPermission::kTab); | 858 api_permissions.insert(APIPermission::kTab); |
872 scoped_refptr<PermissionSet> permissions(new PermissionSet( | 859 scoped_refptr<PermissionSet> permissions(new PermissionSet( |
873 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); | 860 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); |
874 PermissionMessages messages = | 861 PermissionMessages messages = |
875 PermissionMessageProvider::Get()->GetPermissionMessages( | 862 PermissionMessageProvider::Get()->GetPermissionMessages( |
876 permissions, Manifest::TYPE_EXTENSION); | 863 permissions, Manifest::TYPE_EXTENSION); |
877 EXPECT_EQ(1u, messages.size()); | 864 EXPECT_EQ(1u, messages.size()); |
878 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); | 865 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); |
879 } | 866 } |
| 867 { |
| 868 APIPermissionSet api_permissions; |
| 869 api_permissions.insert(APIPermission::kHistory); |
| 870 api_permissions.insert(APIPermission::kTab); |
| 871 api_permissions.insert(APIPermission::kTopSites); |
| 872 api_permissions.insert(APIPermission::kProcesses); |
| 873 api_permissions.insert(APIPermission::kWebNavigation); |
| 874 scoped_refptr<PermissionSet> permissions( |
| 875 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 876 URLPatternSet(), URLPatternSet())); |
| 877 PermissionMessages messages = |
| 878 PermissionMessageProvider::Get()->GetPermissionMessages( |
| 879 permissions, Manifest::TYPE_EXTENSION); |
| 880 EXPECT_EQ(1u, messages.size()); |
| 881 EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id()); |
| 882 } |
| 883 { |
| 884 APIPermissionSet api_permissions; |
| 885 api_permissions.insert(APIPermission::kTab); |
| 886 api_permissions.insert(APIPermission::kTopSites); |
| 887 api_permissions.insert(APIPermission::kProcesses); |
| 888 api_permissions.insert(APIPermission::kWebNavigation); |
| 889 scoped_refptr<PermissionSet> permissions( |
| 890 new PermissionSet(api_permissions, ManifestPermissionSet(), |
| 891 URLPatternSet(), URLPatternSet())); |
| 892 PermissionMessages messages = |
| 893 PermissionMessageProvider::Get()->GetPermissionMessages( |
| 894 permissions, Manifest::TYPE_EXTENSION); |
| 895 EXPECT_EQ(1u, messages.size()); |
| 896 EXPECT_EQ(PermissionMessage::kTabs, messages[0].id()); |
| 897 } |
880 } | 898 } |
881 | 899 |
882 TEST(PermissionsTest, MergedFileSystemPermissionComparison) { | 900 TEST(PermissionsTest, MergedFileSystemPermissionComparison) { |
883 APIPermissionSet write_api_permissions; | 901 APIPermissionSet write_api_permissions; |
884 write_api_permissions.insert(APIPermission::kFileSystemWrite); | 902 write_api_permissions.insert(APIPermission::kFileSystemWrite); |
885 scoped_refptr<PermissionSet> write_permissions( | 903 scoped_refptr<PermissionSet> write_permissions( |
886 new PermissionSet(write_api_permissions, ManifestPermissionSet(), | 904 new PermissionSet(write_api_permissions, ManifestPermissionSet(), |
887 URLPatternSet(), URLPatternSet())); | 905 URLPatternSet(), URLPatternSet())); |
888 | 906 |
889 APIPermissionSet directory_api_permissions; | 907 APIPermissionSet directory_api_permissions; |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
985 EXPECT_EQ(combined_size, warnings.size()); | 1003 EXPECT_EQ(combined_size, warnings.size()); |
986 EXPECT_FALSE(Contains(warnings, "Use your microphone")); | 1004 EXPECT_FALSE(Contains(warnings, "Use your microphone")); |
987 EXPECT_FALSE(Contains(warnings, "Use your microphone and camera")); | 1005 EXPECT_FALSE(Contains(warnings, "Use your microphone and camera")); |
988 EXPECT_TRUE(Contains(warnings, "Use your camera")); | 1006 EXPECT_TRUE(Contains(warnings, "Use your camera")); |
989 } | 1007 } |
990 | 1008 |
991 TEST(PermissionsTest, GetWarningMessages_CombinedSessions) { | 1009 TEST(PermissionsTest, GetWarningMessages_CombinedSessions) { |
992 { | 1010 { |
993 APIPermissionSet api_permissions; | 1011 APIPermissionSet api_permissions; |
994 api_permissions.insert(APIPermission::kTab); | 1012 api_permissions.insert(APIPermission::kTab); |
| 1013 api_permissions.insert(APIPermission::kTopSites); |
| 1014 api_permissions.insert(APIPermission::kProcesses); |
| 1015 api_permissions.insert(APIPermission::kWebNavigation); |
995 api_permissions.insert(APIPermission::kSessions); | 1016 api_permissions.insert(APIPermission::kSessions); |
996 scoped_refptr<PermissionSet> permissions( | 1017 scoped_refptr<PermissionSet> permissions( |
997 new PermissionSet(api_permissions, ManifestPermissionSet(), | 1018 new PermissionSet(api_permissions, ManifestPermissionSet(), |
998 URLPatternSet(), URLPatternSet())); | 1019 URLPatternSet(), URLPatternSet())); |
999 std::vector<base::string16> messages = | 1020 std::vector<base::string16> messages = |
1000 PermissionMessageProvider::Get()->GetWarningMessages( | 1021 PermissionMessageProvider::Get()->GetWarningMessages( |
1001 permissions, Manifest::TYPE_EXTENSION); | 1022 permissions, Manifest::TYPE_EXTENSION); |
1002 EXPECT_EQ(1u, messages.size()); | 1023 EXPECT_EQ(1u, messages.size()); |
1003 EXPECT_EQ(l10n_util::GetStringUTF16( | 1024 EXPECT_EQ(l10n_util::GetStringUTF16( |
1004 IDS_EXTENSION_PROMPT_WARNING_TABS_AND_SESSIONS), | 1025 IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS), |
1005 messages[0]); | 1026 messages[0]); |
1006 } | 1027 } |
1007 { | 1028 { |
1008 APIPermissionSet api_permissions; | 1029 APIPermissionSet api_permissions; |
1009 api_permissions.insert(APIPermission::kHistory); | 1030 api_permissions.insert(APIPermission::kHistory); |
| 1031 api_permissions.insert(APIPermission::kTab); |
| 1032 api_permissions.insert(APIPermission::kTopSites); |
| 1033 api_permissions.insert(APIPermission::kProcesses); |
| 1034 api_permissions.insert(APIPermission::kWebNavigation); |
1010 api_permissions.insert(APIPermission::kSessions); | 1035 api_permissions.insert(APIPermission::kSessions); |
1011 scoped_refptr<PermissionSet> permissions( | 1036 scoped_refptr<PermissionSet> permissions( |
1012 new PermissionSet(api_permissions, ManifestPermissionSet(), | 1037 new PermissionSet(api_permissions, ManifestPermissionSet(), |
1013 URLPatternSet(), URLPatternSet())); | |
1014 std::vector<base::string16> messages = | |
1015 PermissionMessageProvider::Get()->GetWarningMessages( | |
1016 permissions, Manifest::TYPE_EXTENSION); | |
1017 EXPECT_EQ(1u, messages.size()); | |
1018 EXPECT_EQ(l10n_util::GetStringUTF16( | |
1019 IDS_EXTENSION_PROMPT_WARNING_BROWSING_HISTORY_AND_SESSIONS), | |
1020 messages[0]); | |
1021 } | |
1022 { | |
1023 APIPermissionSet api_permissions; | |
1024 api_permissions.insert(APIPermission::kTab); | |
1025 api_permissions.insert(APIPermission::kHistory); | |
1026 api_permissions.insert(APIPermission::kSessions); | |
1027 scoped_refptr<PermissionSet> permissions( | |
1028 new PermissionSet(api_permissions, ManifestPermissionSet(), | |
1029 URLPatternSet(), URLPatternSet())); | 1038 URLPatternSet(), URLPatternSet())); |
1030 std::vector<base::string16> messages = | 1039 std::vector<base::string16> messages = |
1031 PermissionMessageProvider::Get()->GetWarningMessages( | 1040 PermissionMessageProvider::Get()->GetWarningMessages( |
1032 permissions, Manifest::TYPE_EXTENSION); | 1041 permissions, Manifest::TYPE_EXTENSION); |
1033 EXPECT_EQ(1u, messages.size()); | 1042 EXPECT_EQ(1u, messages.size()); |
1034 EXPECT_EQ(l10n_util::GetStringUTF16( | 1043 EXPECT_EQ(l10n_util::GetStringUTF16( |
1035 IDS_EXTENSION_PROMPT_WARNING_BROWSING_HISTORY_AND_SESSIONS), | 1044 IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS), |
1036 messages[0]); | 1045 messages[0]); |
1037 } | 1046 } |
1038 } | 1047 } |
1039 | 1048 |
1040 TEST(PermissionsTest, GetWarningMessages_DeclarativeWebRequest) { | 1049 TEST(PermissionsTest, GetWarningMessages_DeclarativeWebRequest) { |
1041 // Test that if the declarativeWebRequest permission is present | 1050 // Test that if the declarativeWebRequest permission is present |
1042 // in combination with all hosts permission, then only the warning | 1051 // in combination with all hosts permission, then only the warning |
1043 // for host permissions is shown, because that covers the use of | 1052 // for host permissions is shown, because that covers the use of |
1044 // declarativeWebRequest. | 1053 // declarativeWebRequest. |
1045 | 1054 |
(...skipping 601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1647 scoped_refptr<const PermissionSet> permissions_dwr( | 1656 scoped_refptr<const PermissionSet> permissions_dwr( |
1648 extension_dwr->permissions_data()->active_permissions()); | 1657 extension_dwr->permissions_data()->active_permissions()); |
1649 | 1658 |
1650 EXPECT_FALSE(PermissionMessageProvider::Get()-> | 1659 EXPECT_FALSE(PermissionMessageProvider::Get()-> |
1651 IsPrivilegeIncrease(permissions.get(), | 1660 IsPrivilegeIncrease(permissions.get(), |
1652 permissions_dwr.get(), | 1661 permissions_dwr.get(), |
1653 extension->GetType())); | 1662 extension->GetType())); |
1654 } | 1663 } |
1655 | 1664 |
1656 } // namespace extensions | 1665 } // namespace extensions |
OLD | NEW |