Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Side by Side Diff: chrome/common/extensions/permissions/permission_set_unittest.cc

Issue 1006453002: Extensions: Prepare switch to new permission message system (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/common/chrome_paths.h" 9 #include "chrome/common/chrome_paths.h"
10 #include "chrome/common/chrome_switches.h" 10 #include "chrome/common/chrome_switches.h"
(...skipping 784 matching lines...) Expand 10 before | Expand all | Expand 10 after
795 } 795 }
796 } 796 }
797 797
798 TEST(PermissionsTest, FileSystemPermissionMessages) { 798 TEST(PermissionsTest, FileSystemPermissionMessages) {
799 APIPermissionSet api_permissions; 799 APIPermissionSet api_permissions;
800 api_permissions.insert(APIPermission::kFileSystemWrite); 800 api_permissions.insert(APIPermission::kFileSystemWrite);
801 api_permissions.insert(APIPermission::kFileSystemDirectory); 801 api_permissions.insert(APIPermission::kFileSystemDirectory);
802 scoped_refptr<PermissionSet> permissions( 802 scoped_refptr<PermissionSet> permissions(
803 new PermissionSet(api_permissions, ManifestPermissionSet(), 803 new PermissionSet(api_permissions, ManifestPermissionSet(),
804 URLPatternSet(), URLPatternSet())); 804 URLPatternSet(), URLPatternSet()));
805 PermissionMessages messages = 805 PermissionMessageIDs ids =
806 PermissionMessageProvider::Get()->GetPermissionMessages( 806 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs(
807 permissions.get(), Manifest::TYPE_PLATFORM_APP); 807 permissions.get(), Manifest::TYPE_PLATFORM_APP);
808 ASSERT_EQ(1u, messages.size()); 808 ASSERT_EQ(1u, ids.size());
809 std::sort(messages.begin(), messages.end()); 809 EXPECT_EQ(PermissionMessage::kFileSystemDirectory, ids[0]);
810 std::set<PermissionMessage::ID> ids;
811 for (PermissionMessages::const_iterator it = messages.begin();
812 it != messages.end(); ++it) {
813 ids.insert(it->id());
814 }
815 EXPECT_TRUE(ContainsKey(ids, PermissionMessage::kFileSystemDirectory));
816 } 810 }
817 811
818 // The file system permissions have a special-case hack to show a warning for 812 // The file system permissions have a special-case hack to show a warning for
819 // write and directory at the same time. 813 // write and directory at the same time.
820 // TODO(sammc): Remove this. See http://crbug.com/284849. 814 // TODO(sammc): Remove this. See http://crbug.com/284849.
821 TEST(PermissionsTest, FileSystemImplicitPermissions) { 815 TEST(PermissionsTest, FileSystemImplicitPermissions) {
822 APIPermissionSet apis; 816 APIPermissionSet apis;
823 apis.insert(APIPermission::kFileSystemWrite); 817 apis.insert(APIPermission::kFileSystemWrite);
824 apis.AddImpliedPermissions(); 818 apis.AddImpliedPermissions();
825 819
(...skipping 22 matching lines...) Expand all
848 } 842 }
849 843
850 TEST(PermissionsTest, HiddenFileSystemPermissionMessages) { 844 TEST(PermissionsTest, HiddenFileSystemPermissionMessages) {
851 APIPermissionSet api_permissions; 845 APIPermissionSet api_permissions;
852 api_permissions.insert(APIPermission::kFileSystemWrite); 846 api_permissions.insert(APIPermission::kFileSystemWrite);
853 api_permissions.insert(APIPermission::kFileSystemDirectory); 847 api_permissions.insert(APIPermission::kFileSystemDirectory);
854 api_permissions.insert(APIPermission::kFileSystemWriteDirectory); 848 api_permissions.insert(APIPermission::kFileSystemWriteDirectory);
855 scoped_refptr<PermissionSet> permissions( 849 scoped_refptr<PermissionSet> permissions(
856 new PermissionSet(api_permissions, ManifestPermissionSet(), 850 new PermissionSet(api_permissions, ManifestPermissionSet(),
857 URLPatternSet(), URLPatternSet())); 851 URLPatternSet(), URLPatternSet()));
858 PermissionMessages messages = 852 PermissionMessageIDs ids =
859 PermissionMessageProvider::Get()->GetPermissionMessages( 853 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs(
860 permissions.get(), Manifest::TYPE_PLATFORM_APP); 854 permissions.get(), Manifest::TYPE_PLATFORM_APP);
861 ASSERT_EQ(1u, messages.size()); 855 ASSERT_EQ(1u, ids.size());
862 EXPECT_EQ(PermissionMessage::kFileSystemWriteDirectory, messages[0].id()); 856 EXPECT_EQ(PermissionMessage::kFileSystemWriteDirectory, ids[0]);
863 } 857 }
864 858
865 TEST(PermissionsTest, SuppressedPermissionMessages) { 859 TEST(PermissionsTest, SuppressedPermissionMessages) {
866 { 860 {
867 // Tabs warning suppresses favicon warning. 861 // Tabs warning suppresses favicon warning.
868 APIPermissionSet api_permissions; 862 APIPermissionSet api_permissions;
869 api_permissions.insert(APIPermission::kTab); 863 api_permissions.insert(APIPermission::kTab);
870 URLPatternSet hosts; 864 URLPatternSet hosts;
871 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, 865 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI,
872 "chrome://favicon/")); 866 "chrome://favicon/"));
873 scoped_refptr<PermissionSet> permissions( 867 scoped_refptr<PermissionSet> permissions(
874 new PermissionSet(api_permissions, ManifestPermissionSet(), 868 new PermissionSet(api_permissions, ManifestPermissionSet(),
875 hosts, URLPatternSet())); 869 hosts, URLPatternSet()));
876 PermissionMessages messages = 870 PermissionMessageIDs ids =
877 PermissionMessageProvider::Get()->GetPermissionMessages( 871 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs(
878 permissions.get(), Manifest::TYPE_EXTENSION); 872 permissions.get(), Manifest::TYPE_EXTENSION);
879 EXPECT_EQ(1u, messages.size()); 873 EXPECT_EQ(1u, ids.size());
880 EXPECT_EQ(PermissionMessage::kTabs, messages[0].id()); 874 EXPECT_EQ(PermissionMessage::kTabs, ids[0]);
881 } 875 }
882 { 876 {
883 // History warning suppresses favicon warning. 877 // History warning suppresses favicon warning.
884 APIPermissionSet api_permissions; 878 APIPermissionSet api_permissions;
885 api_permissions.insert(APIPermission::kHistory); 879 api_permissions.insert(APIPermission::kHistory);
886 URLPatternSet hosts; 880 URLPatternSet hosts;
887 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, 881 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI,
888 "chrome://favicon/")); 882 "chrome://favicon/"));
889 scoped_refptr<PermissionSet> permissions( 883 scoped_refptr<PermissionSet> permissions(
890 new PermissionSet(api_permissions, ManifestPermissionSet(), 884 new PermissionSet(api_permissions, ManifestPermissionSet(),
891 hosts, URLPatternSet())); 885 hosts, URLPatternSet()));
892 PermissionMessages messages = 886 PermissionMessageIDs ids =
893 PermissionMessageProvider::Get()->GetPermissionMessages( 887 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs(
894 permissions.get(), Manifest::TYPE_EXTENSION); 888 permissions.get(), Manifest::TYPE_EXTENSION);
895 EXPECT_EQ(1u, messages.size()); 889 EXPECT_EQ(1u, ids.size());
896 EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id()); 890 EXPECT_EQ(PermissionMessage::kBrowsingHistory, ids[0]);
897 } 891 }
898 { 892 {
899 // All sites warning suppresses tabs warning. 893 // All sites warning suppresses tabs warning.
900 APIPermissionSet api_permissions; 894 APIPermissionSet api_permissions;
901 URLPatternSet hosts; 895 URLPatternSet hosts;
902 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); 896 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*"));
903 api_permissions.insert(APIPermission::kTab); 897 api_permissions.insert(APIPermission::kTab);
904 scoped_refptr<PermissionSet> permissions(new PermissionSet( 898 scoped_refptr<PermissionSet> permissions(new PermissionSet(
905 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); 899 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet()));
906 PermissionMessages messages = 900 PermissionMessageIDs ids =
907 PermissionMessageProvider::Get()->GetPermissionMessages( 901 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs(
908 permissions.get(), Manifest::TYPE_EXTENSION); 902 permissions.get(), Manifest::TYPE_EXTENSION);
909 EXPECT_EQ(1u, messages.size()); 903 EXPECT_EQ(1u, ids.size());
910 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); 904 EXPECT_EQ(PermissionMessage::kHostsAll, ids[0]);
911 } 905 }
912 { 906 {
913 // All sites warning suppresses topSites warning. 907 // All sites warning suppresses topSites warning.
914 APIPermissionSet api_permissions; 908 APIPermissionSet api_permissions;
915 URLPatternSet hosts; 909 URLPatternSet hosts;
916 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); 910 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*"));
917 api_permissions.insert(APIPermission::kTopSites); 911 api_permissions.insert(APIPermission::kTopSites);
918 scoped_refptr<PermissionSet> permissions(new PermissionSet( 912 scoped_refptr<PermissionSet> permissions(new PermissionSet(
919 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); 913 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet()));
920 PermissionMessages messages = 914 PermissionMessageIDs ids =
921 PermissionMessageProvider::Get()->GetPermissionMessages( 915 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs(
922 permissions.get(), Manifest::TYPE_EXTENSION); 916 permissions.get(), Manifest::TYPE_EXTENSION);
923 EXPECT_EQ(1u, messages.size()); 917 EXPECT_EQ(1u, ids.size());
924 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); 918 EXPECT_EQ(PermissionMessage::kHostsAll, ids[0]);
925 } 919 }
926 { 920 {
927 // All sites warning suppresses declarativeWebRequest warning. 921 // All sites warning suppresses declarativeWebRequest warning.
928 APIPermissionSet api_permissions; 922 APIPermissionSet api_permissions;
929 URLPatternSet hosts; 923 URLPatternSet hosts;
930 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); 924 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*"));
931 api_permissions.insert(APIPermission::kDeclarativeWebRequest); 925 api_permissions.insert(APIPermission::kDeclarativeWebRequest);
932 scoped_refptr<PermissionSet> permissions(new PermissionSet( 926 scoped_refptr<PermissionSet> permissions(new PermissionSet(
933 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); 927 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet()));
934 PermissionMessages messages = 928 PermissionMessageIDs ids =
935 PermissionMessageProvider::Get()->GetPermissionMessages( 929 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs(
936 permissions.get(), Manifest::TYPE_EXTENSION); 930 permissions.get(), Manifest::TYPE_EXTENSION);
937 EXPECT_EQ(1u, messages.size()); 931 EXPECT_EQ(1u, ids.size());
938 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); 932 EXPECT_EQ(PermissionMessage::kHostsAll, ids[0]);
939 } 933 }
940 { 934 {
941 // BrowsingHistory warning suppresses all history read/write warnings. 935 // BrowsingHistory warning suppresses all history read/write warnings.
942 APIPermissionSet api_permissions; 936 APIPermissionSet api_permissions;
943 api_permissions.insert(APIPermission::kHistory); 937 api_permissions.insert(APIPermission::kHistory);
944 api_permissions.insert(APIPermission::kTab); 938 api_permissions.insert(APIPermission::kTab);
945 api_permissions.insert(APIPermission::kTopSites); 939 api_permissions.insert(APIPermission::kTopSites);
946 api_permissions.insert(APIPermission::kProcesses); 940 api_permissions.insert(APIPermission::kProcesses);
947 api_permissions.insert(APIPermission::kWebNavigation); 941 api_permissions.insert(APIPermission::kWebNavigation);
948 scoped_refptr<PermissionSet> permissions( 942 scoped_refptr<PermissionSet> permissions(
949 new PermissionSet(api_permissions, ManifestPermissionSet(), 943 new PermissionSet(api_permissions, ManifestPermissionSet(),
950 URLPatternSet(), URLPatternSet())); 944 URLPatternSet(), URLPatternSet()));
951 PermissionMessages messages = 945 PermissionMessageIDs ids =
952 PermissionMessageProvider::Get()->GetPermissionMessages( 946 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs(
953 permissions.get(), Manifest::TYPE_EXTENSION); 947 permissions.get(), Manifest::TYPE_EXTENSION);
954 EXPECT_EQ(1u, messages.size()); 948 EXPECT_EQ(1u, ids.size());
955 EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id()); 949 EXPECT_EQ(PermissionMessage::kBrowsingHistory, ids[0]);
956 } 950 }
957 { 951 {
958 // Tabs warning suppresses all read-only history warnings. 952 // Tabs warning suppresses all read-only history warnings.
959 APIPermissionSet api_permissions; 953 APIPermissionSet api_permissions;
960 api_permissions.insert(APIPermission::kTab); 954 api_permissions.insert(APIPermission::kTab);
961 api_permissions.insert(APIPermission::kTopSites); 955 api_permissions.insert(APIPermission::kTopSites);
962 api_permissions.insert(APIPermission::kProcesses); 956 api_permissions.insert(APIPermission::kProcesses);
963 api_permissions.insert(APIPermission::kWebNavigation); 957 api_permissions.insert(APIPermission::kWebNavigation);
964 scoped_refptr<PermissionSet> permissions( 958 scoped_refptr<PermissionSet> permissions(
965 new PermissionSet(api_permissions, ManifestPermissionSet(), 959 new PermissionSet(api_permissions, ManifestPermissionSet(),
966 URLPatternSet(), URLPatternSet())); 960 URLPatternSet(), URLPatternSet()));
967 PermissionMessages messages = 961 PermissionMessageIDs ids =
968 PermissionMessageProvider::Get()->GetPermissionMessages( 962 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs(
969 permissions.get(), Manifest::TYPE_EXTENSION); 963 permissions.get(), Manifest::TYPE_EXTENSION);
970 EXPECT_EQ(1u, messages.size()); 964 EXPECT_EQ(1u, ids.size());
971 EXPECT_EQ(PermissionMessage::kTabs, messages[0].id()); 965 EXPECT_EQ(PermissionMessage::kTabs, ids[0]);
972 } 966 }
973 } 967 }
974 968
975 TEST(PermissionsTest, AccessToDevicesMessages) { 969 TEST(PermissionsTest, AccessToDevicesMessages) {
976 { 970 {
977 APIPermissionSet api_permissions; 971 APIPermissionSet api_permissions;
978 api_permissions.insert(APIPermission::kSerial); 972 api_permissions.insert(APIPermission::kSerial);
979 scoped_refptr<PermissionSet> permissions( 973 scoped_refptr<PermissionSet> permissions(
980 new PermissionSet(api_permissions, 974 new PermissionSet(api_permissions,
981 ManifestPermissionSet(), 975 ManifestPermissionSet(),
982 URLPatternSet(), 976 URLPatternSet(),
983 URLPatternSet())); 977 URLPatternSet()));
984 std::vector<base::string16> messages = 978 std::vector<base::string16> messages =
985 PermissionMessageProvider::Get()->GetWarningMessages( 979 PermissionMessageProvider::Get()->GetLegacyWarningMessages(
986 permissions.get(), Manifest::TYPE_EXTENSION); 980 permissions.get(), Manifest::TYPE_EXTENSION);
987 EXPECT_EQ(1u, messages.size()); 981 EXPECT_EQ(1u, messages.size());
988 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_SERIAL), 982 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_SERIAL),
989 messages[0]); 983 messages[0]);
990 } 984 }
991 { 985 {
992 // Testing that multiple permissions will show the one message. 986 // Testing that multiple permissions will show the one message.
993 APIPermissionSet api_permissions; 987 APIPermissionSet api_permissions;
994 api_permissions.insert(APIPermission::kSerial); 988 api_permissions.insert(APIPermission::kSerial);
995 api_permissions.insert(APIPermission::kSerial); 989 api_permissions.insert(APIPermission::kSerial);
996 scoped_refptr<PermissionSet> permissions( 990 scoped_refptr<PermissionSet> permissions(
997 new PermissionSet(api_permissions, 991 new PermissionSet(api_permissions,
998 ManifestPermissionSet(), 992 ManifestPermissionSet(),
999 URLPatternSet(), 993 URLPatternSet(),
1000 URLPatternSet())); 994 URLPatternSet()));
1001 std::vector<base::string16> messages = 995 std::vector<base::string16> messages =
1002 PermissionMessageProvider::Get()->GetWarningMessages( 996 PermissionMessageProvider::Get()->GetLegacyWarningMessages(
1003 permissions.get(), Manifest::TYPE_EXTENSION); 997 permissions.get(), Manifest::TYPE_EXTENSION);
1004 EXPECT_EQ(1u, messages.size()); 998 EXPECT_EQ(1u, messages.size());
1005 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_SERIAL), 999 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_SERIAL),
1006 messages[0]); 1000 messages[0]);
1007 } 1001 }
1008 { 1002 {
1009 scoped_refptr<Extension> extension = 1003 scoped_refptr<Extension> extension =
1010 LoadManifest("permissions", "access_to_devices_bluetooth.json"); 1004 LoadManifest("permissions", "access_to_devices_bluetooth.json");
1011 const PermissionMessageProvider* provider = 1005 const PermissionMessageProvider* provider =
1012 PermissionMessageProvider::Get(); 1006 PermissionMessageProvider::Get();
1013 PermissionSet* set = const_cast<PermissionSet*>( 1007 PermissionSet* set = const_cast<PermissionSet*>(
1014 extension->permissions_data()->active_permissions().get()); 1008 extension->permissions_data()->active_permissions().get());
1015 std::vector<base::string16> warnings = 1009 std::vector<base::string16> warnings =
1016 provider->GetWarningMessages(set, extension->GetType()); 1010 provider->GetLegacyWarningMessages(set, extension->GetType());
1017 EXPECT_EQ(1u, warnings.size()); 1011 EXPECT_EQ(1u, warnings.size());
1018 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH), 1012 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH),
1019 warnings[0]); 1013 warnings[0]);
1020 1014
1021 // Test Bluetooth and Serial 1015 // Test Bluetooth and Serial
1022 set->apis_.insert(APIPermission::kSerial); 1016 set->apis_.insert(APIPermission::kSerial);
1023 warnings = provider->GetWarningMessages(set, extension->GetType()); 1017 warnings = provider->GetLegacyWarningMessages(set, extension->GetType());
1024 EXPECT_EQ(1u, warnings.size()); 1018 EXPECT_EQ(1u, warnings.size());
1025 EXPECT_EQ(l10n_util::GetStringUTF16( 1019 EXPECT_EQ(l10n_util::GetStringUTF16(
1026 IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_SERIAL), 1020 IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_SERIAL),
1027 warnings[0]); 1021 warnings[0]);
1028 set->apis_.erase(APIPermission::kSerial); 1022 set->apis_.erase(APIPermission::kSerial);
1029 } 1023 }
1030 } 1024 }
1031 1025
1032 TEST(PermissionsTest, MergedFileSystemPermissionComparison) { 1026 TEST(PermissionsTest, MergedFileSystemPermissionComparison) {
1033 APIPermissionSet write_api_permissions; 1027 APIPermissionSet write_api_permissions;
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1106 } 1100 }
1107 1101
1108 TEST(PermissionsTest, GetWarningMessages_AudioVideo) { 1102 TEST(PermissionsTest, GetWarningMessages_AudioVideo) {
1109 // Both audio and video present. 1103 // Both audio and video present.
1110 scoped_refptr<Extension> extension = 1104 scoped_refptr<Extension> extension =
1111 LoadManifest("permissions", "audio-video.json"); 1105 LoadManifest("permissions", "audio-video.json");
1112 const PermissionMessageProvider* provider = PermissionMessageProvider::Get(); 1106 const PermissionMessageProvider* provider = PermissionMessageProvider::Get();
1113 PermissionSet* set = const_cast<PermissionSet*>( 1107 PermissionSet* set = const_cast<PermissionSet*>(
1114 extension->permissions_data()->active_permissions().get()); 1108 extension->permissions_data()->active_permissions().get());
1115 std::vector<base::string16> warnings = 1109 std::vector<base::string16> warnings =
1116 provider->GetWarningMessages(set, extension->GetType()); 1110 provider->GetLegacyWarningMessages(set, extension->GetType());
1117 EXPECT_FALSE(Contains(warnings, "Use your microphone")); 1111 EXPECT_FALSE(Contains(warnings, "Use your microphone"));
1118 EXPECT_FALSE(Contains(warnings, "Use your camera")); 1112 EXPECT_FALSE(Contains(warnings, "Use your camera"));
1119 EXPECT_TRUE(Contains(warnings, "Use your microphone and camera")); 1113 EXPECT_TRUE(Contains(warnings, "Use your microphone and camera"));
1120 size_t combined_index = IndexOf(warnings, "Use your microphone and camera"); 1114 size_t combined_index = IndexOf(warnings, "Use your microphone and camera");
1121 size_t combined_size = warnings.size(); 1115 size_t combined_size = warnings.size();
1122 1116
1123 // Just audio present. 1117 // Just audio present.
1124 set->apis_.erase(APIPermission::kVideoCapture); 1118 set->apis_.erase(APIPermission::kVideoCapture);
1125 warnings = provider->GetWarningMessages(set, extension->GetType()); 1119 warnings = provider->GetLegacyWarningMessages(set, extension->GetType());
1126 EXPECT_EQ(combined_size, warnings.size()); 1120 EXPECT_EQ(combined_size, warnings.size());
1127 EXPECT_EQ(combined_index, IndexOf(warnings, "Use your microphone")); 1121 EXPECT_EQ(combined_index, IndexOf(warnings, "Use your microphone"));
1128 EXPECT_FALSE(Contains(warnings, "Use your camera")); 1122 EXPECT_FALSE(Contains(warnings, "Use your camera"));
1129 EXPECT_FALSE(Contains(warnings, "Use your microphone and camera")); 1123 EXPECT_FALSE(Contains(warnings, "Use your microphone and camera"));
1130 1124
1131 // Just video present. 1125 // Just video present.
1132 set->apis_.erase(APIPermission::kAudioCapture); 1126 set->apis_.erase(APIPermission::kAudioCapture);
1133 set->apis_.insert(APIPermission::kVideoCapture); 1127 set->apis_.insert(APIPermission::kVideoCapture);
1134 warnings = provider->GetWarningMessages(set, extension->GetType()); 1128 warnings = provider->GetLegacyWarningMessages(set, extension->GetType());
1135 EXPECT_EQ(combined_size, warnings.size()); 1129 EXPECT_EQ(combined_size, warnings.size());
1136 EXPECT_FALSE(Contains(warnings, "Use your microphone")); 1130 EXPECT_FALSE(Contains(warnings, "Use your microphone"));
1137 EXPECT_FALSE(Contains(warnings, "Use your microphone and camera")); 1131 EXPECT_FALSE(Contains(warnings, "Use your microphone and camera"));
1138 EXPECT_TRUE(Contains(warnings, "Use your camera")); 1132 EXPECT_TRUE(Contains(warnings, "Use your camera"));
1139 } 1133 }
1140 1134
1141 TEST(PermissionsTest, GetWarningMessages_CombinedSessions) { 1135 TEST(PermissionsTest, GetWarningMessages_CombinedSessions) {
1142 { 1136 {
1143 APIPermissionSet api_permissions; 1137 APIPermissionSet api_permissions;
1144 api_permissions.insert(APIPermission::kTab); 1138 api_permissions.insert(APIPermission::kTab);
1145 api_permissions.insert(APIPermission::kTopSites); 1139 api_permissions.insert(APIPermission::kTopSites);
1146 api_permissions.insert(APIPermission::kProcesses); 1140 api_permissions.insert(APIPermission::kProcesses);
1147 api_permissions.insert(APIPermission::kWebNavigation); 1141 api_permissions.insert(APIPermission::kWebNavigation);
1148 api_permissions.insert(APIPermission::kSessions); 1142 api_permissions.insert(APIPermission::kSessions);
1149 scoped_refptr<PermissionSet> permissions( 1143 scoped_refptr<PermissionSet> permissions(
1150 new PermissionSet(api_permissions, ManifestPermissionSet(), 1144 new PermissionSet(api_permissions, ManifestPermissionSet(),
1151 URLPatternSet(), URLPatternSet())); 1145 URLPatternSet(), URLPatternSet()));
1152 std::vector<base::string16> messages = 1146 std::vector<base::string16> messages =
1153 PermissionMessageProvider::Get()->GetWarningMessages( 1147 PermissionMessageProvider::Get()->GetLegacyWarningMessages(
1154 permissions.get(), Manifest::TYPE_EXTENSION); 1148 permissions.get(), Manifest::TYPE_EXTENSION);
1155 EXPECT_EQ(1u, messages.size()); 1149 EXPECT_EQ(1u, messages.size());
1156 EXPECT_EQ(l10n_util::GetStringUTF16( 1150 EXPECT_EQ(l10n_util::GetStringUTF16(
1157 IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS), 1151 IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS),
1158 messages[0]); 1152 messages[0]);
1159 } 1153 }
1160 { 1154 {
1161 APIPermissionSet api_permissions; 1155 APIPermissionSet api_permissions;
1162 api_permissions.insert(APIPermission::kHistory); 1156 api_permissions.insert(APIPermission::kHistory);
1163 api_permissions.insert(APIPermission::kTab); 1157 api_permissions.insert(APIPermission::kTab);
1164 api_permissions.insert(APIPermission::kTopSites); 1158 api_permissions.insert(APIPermission::kTopSites);
1165 api_permissions.insert(APIPermission::kProcesses); 1159 api_permissions.insert(APIPermission::kProcesses);
1166 api_permissions.insert(APIPermission::kWebNavigation); 1160 api_permissions.insert(APIPermission::kWebNavigation);
1167 api_permissions.insert(APIPermission::kSessions); 1161 api_permissions.insert(APIPermission::kSessions);
1168 scoped_refptr<PermissionSet> permissions( 1162 scoped_refptr<PermissionSet> permissions(
1169 new PermissionSet(api_permissions, ManifestPermissionSet(), 1163 new PermissionSet(api_permissions, ManifestPermissionSet(),
1170 URLPatternSet(), URLPatternSet())); 1164 URLPatternSet(), URLPatternSet()));
1171 std::vector<base::string16> messages = 1165 std::vector<base::string16> messages =
1172 PermissionMessageProvider::Get()->GetWarningMessages( 1166 PermissionMessageProvider::Get()->GetLegacyWarningMessages(
1173 permissions.get(), Manifest::TYPE_EXTENSION); 1167 permissions.get(), Manifest::TYPE_EXTENSION);
1174 EXPECT_EQ(1u, messages.size()); 1168 EXPECT_EQ(1u, messages.size());
1175 EXPECT_EQ(l10n_util::GetStringUTF16( 1169 EXPECT_EQ(l10n_util::GetStringUTF16(
1176 IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS), 1170 IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS),
1177 messages[0]); 1171 messages[0]);
1178 } 1172 }
1179 } 1173 }
1180 1174
1181 TEST(PermissionsTest, GetWarningMessages_DeclarativeWebRequest) { 1175 TEST(PermissionsTest, GetWarningMessages_DeclarativeWebRequest) {
1182 // Test that if the declarativeWebRequest permission is present 1176 // Test that if the declarativeWebRequest permission is present
1183 // in combination with all hosts permission, then only the warning 1177 // in combination with all hosts permission, then only the warning
1184 // for host permissions is shown, because that covers the use of 1178 // for host permissions is shown, because that covers the use of
1185 // declarativeWebRequest. 1179 // declarativeWebRequest.
1186 1180
1187 // Until Declarative Web Request is in stable, let's make sure it is enabled 1181 // Until Declarative Web Request is in stable, let's make sure it is enabled
1188 // on the current channel. 1182 // on the current channel.
1189 ScopedCurrentChannel sc(chrome::VersionInfo::CHANNEL_CANARY); 1183 ScopedCurrentChannel sc(chrome::VersionInfo::CHANNEL_CANARY);
1190 1184
1191 // First verify that declarativeWebRequest produces a message when host 1185 // First verify that declarativeWebRequest produces a message when host
1192 // permissions do not cover all hosts. 1186 // permissions do not cover all hosts.
1193 scoped_refptr<Extension> extension = 1187 scoped_refptr<Extension> extension =
1194 LoadManifest("permissions", "web_request_not_all_host_permissions.json"); 1188 LoadManifest("permissions", "web_request_not_all_host_permissions.json");
1195 const PermissionMessageProvider* provider = PermissionMessageProvider::Get(); 1189 const PermissionMessageProvider* provider = PermissionMessageProvider::Get();
1196 const PermissionSet* set = 1190 const PermissionSet* set =
1197 extension->permissions_data()->active_permissions().get(); 1191 extension->permissions_data()->active_permissions().get();
1198 std::vector<base::string16> warnings = 1192 std::vector<base::string16> warnings =
1199 provider->GetWarningMessages(set, extension->GetType()); 1193 provider->GetLegacyWarningMessages(set, extension->GetType());
1200 EXPECT_TRUE(Contains(warnings, "Block parts of web pages")); 1194 EXPECT_TRUE(Contains(warnings, "Block parts of web pages"));
1201 EXPECT_FALSE(Contains( 1195 EXPECT_FALSE(Contains(
1202 warnings, "Read and change all your data on the websites you visit")); 1196 warnings, "Read and change all your data on the websites you visit"));
1203 1197
1204 // Now verify that declarativeWebRequest does not produce a message when host 1198 // Now verify that declarativeWebRequest does not produce a message when host
1205 // permissions do cover all hosts. 1199 // permissions do cover all hosts.
1206 extension = 1200 extension =
1207 LoadManifest("permissions", "web_request_all_host_permissions.json"); 1201 LoadManifest("permissions", "web_request_all_host_permissions.json");
1208 set = extension->permissions_data()->active_permissions().get(); 1202 set = extension->permissions_data()->active_permissions().get();
1209 warnings = provider->GetWarningMessages(set, extension->GetType()); 1203 warnings = provider->GetLegacyWarningMessages(set, extension->GetType());
1210 EXPECT_FALSE(Contains(warnings, "Block parts of web pages")); 1204 EXPECT_FALSE(Contains(warnings, "Block parts of web pages"));
1211 EXPECT_TRUE(Contains( 1205 EXPECT_TRUE(Contains(
1212 warnings, "Read and change all your data on the websites you visit")); 1206 warnings, "Read and change all your data on the websites you visit"));
1213 } 1207 }
1214 1208
1215 TEST(PermissionsTest, GetWarningMessages_Serial) { 1209 TEST(PermissionsTest, GetWarningMessages_Serial) {
1216 scoped_refptr<Extension> extension = 1210 scoped_refptr<Extension> extension =
1217 LoadManifest("permissions", "serial.json"); 1211 LoadManifest("permissions", "serial.json");
1218 1212
1219 EXPECT_TRUE(extension->is_platform_app()); 1213 EXPECT_TRUE(extension->is_platform_app());
(...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after
1765 URLPatternSet allowed_hosts; 1759 URLPatternSet allowed_hosts;
1766 allowed_hosts.AddPattern( 1760 allowed_hosts.AddPattern(
1767 URLPattern(URLPattern::SCHEME_ALL, "http://www.google.com/")); 1761 URLPattern(URLPattern::SCHEME_ALL, "http://www.google.com/"));
1768 allowed_hosts.AddPattern( 1762 allowed_hosts.AddPattern(
1769 URLPattern(URLPattern::SCHEME_ALL, "chrome://favicon/")); 1763 URLPattern(URLPattern::SCHEME_ALL, "chrome://favicon/"));
1770 allowed_hosts.AddPattern( 1764 allowed_hosts.AddPattern(
1771 URLPattern(URLPattern::SCHEME_ALL, "chrome://thumb/")); 1765 URLPattern(URLPattern::SCHEME_ALL, "chrome://thumb/"));
1772 scoped_refptr<PermissionSet> permissions( 1766 scoped_refptr<PermissionSet> permissions(
1773 new PermissionSet(APIPermissionSet(), ManifestPermissionSet(), 1767 new PermissionSet(APIPermissionSet(), ManifestPermissionSet(),
1774 allowed_hosts, URLPatternSet())); 1768 allowed_hosts, URLPatternSet()));
1775 PermissionMessageProvider::Get()->GetPermissionMessages( 1769 PermissionMessageProvider::Get()->GetLegacyPermissionMessageIDs(
1776 permissions.get(), Manifest::TYPE_EXTENSION); 1770 permissions.get(), Manifest::TYPE_EXTENSION);
1777 } 1771 }
1778 1772
1779 TEST(PermissionsTest, IsPrivilegeIncrease_DeclarativeWebRequest) { 1773 TEST(PermissionsTest, IsPrivilegeIncrease_DeclarativeWebRequest) {
1780 scoped_refptr<Extension> extension( 1774 scoped_refptr<Extension> extension(
1781 LoadManifest("permissions", "permissions_all_urls.json")); 1775 LoadManifest("permissions", "permissions_all_urls.json"));
1782 scoped_refptr<const PermissionSet> permissions( 1776 scoped_refptr<const PermissionSet> permissions(
1783 extension->permissions_data()->active_permissions()); 1777 extension->permissions_data()->active_permissions());
1784 1778
1785 scoped_refptr<Extension> extension_dwr( 1779 scoped_refptr<Extension> extension_dwr(
1786 LoadManifest("permissions", "web_request_all_host_permissions.json")); 1780 LoadManifest("permissions", "web_request_all_host_permissions.json"));
1787 scoped_refptr<const PermissionSet> permissions_dwr( 1781 scoped_refptr<const PermissionSet> permissions_dwr(
1788 extension_dwr->permissions_data()->active_permissions()); 1782 extension_dwr->permissions_data()->active_permissions());
1789 1783
1790 EXPECT_FALSE(PermissionMessageProvider::Get()-> 1784 EXPECT_FALSE(PermissionMessageProvider::Get()->
1791 IsPrivilegeIncrease(permissions.get(), 1785 IsPrivilegeIncrease(permissions.get(),
1792 permissions_dwr.get(), 1786 permissions_dwr.get(),
1793 extension->GetType())); 1787 extension->GetType()));
1794 } 1788 }
1795 1789
1796 } // namespace extensions 1790 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698