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

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

Issue 506883003: Remove implicit conversions from scoped_refptr to T* in chrome/*/extensions/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
« no previous file with comments | « chrome/common/extensions/manifest_tests/extension_manifests_chromepermission_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/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 779 matching lines...) Expand 10 before | Expand all | Expand 10 after
790 790
791 TEST(PermissionsTest, FileSystemPermissionMessages) { 791 TEST(PermissionsTest, FileSystemPermissionMessages) {
792 APIPermissionSet api_permissions; 792 APIPermissionSet api_permissions;
793 api_permissions.insert(APIPermission::kFileSystemWrite); 793 api_permissions.insert(APIPermission::kFileSystemWrite);
794 api_permissions.insert(APIPermission::kFileSystemDirectory); 794 api_permissions.insert(APIPermission::kFileSystemDirectory);
795 scoped_refptr<PermissionSet> permissions( 795 scoped_refptr<PermissionSet> permissions(
796 new PermissionSet(api_permissions, ManifestPermissionSet(), 796 new PermissionSet(api_permissions, ManifestPermissionSet(),
797 URLPatternSet(), URLPatternSet())); 797 URLPatternSet(), URLPatternSet()));
798 PermissionMessages messages = 798 PermissionMessages messages =
799 PermissionMessageProvider::Get()->GetPermissionMessages( 799 PermissionMessageProvider::Get()->GetPermissionMessages(
800 permissions, Manifest::TYPE_PLATFORM_APP); 800 permissions.get(), Manifest::TYPE_PLATFORM_APP);
801 ASSERT_EQ(1u, messages.size()); 801 ASSERT_EQ(1u, messages.size());
802 std::sort(messages.begin(), messages.end()); 802 std::sort(messages.begin(), messages.end());
803 std::set<PermissionMessage::ID> ids; 803 std::set<PermissionMessage::ID> ids;
804 for (PermissionMessages::const_iterator it = messages.begin(); 804 for (PermissionMessages::const_iterator it = messages.begin();
805 it != messages.end(); ++it) { 805 it != messages.end(); ++it) {
806 ids.insert(it->id()); 806 ids.insert(it->id());
807 } 807 }
808 EXPECT_TRUE(ContainsKey(ids, PermissionMessage::kFileSystemDirectory)); 808 EXPECT_TRUE(ContainsKey(ids, PermissionMessage::kFileSystemDirectory));
809 } 809 }
810 810
811 TEST(PermissionsTest, HiddenFileSystemPermissionMessages) { 811 TEST(PermissionsTest, HiddenFileSystemPermissionMessages) {
812 APIPermissionSet api_permissions; 812 APIPermissionSet api_permissions;
813 api_permissions.insert(APIPermission::kFileSystemWrite); 813 api_permissions.insert(APIPermission::kFileSystemWrite);
814 api_permissions.insert(APIPermission::kFileSystemDirectory); 814 api_permissions.insert(APIPermission::kFileSystemDirectory);
815 api_permissions.insert(APIPermission::kFileSystemWriteDirectory); 815 api_permissions.insert(APIPermission::kFileSystemWriteDirectory);
816 scoped_refptr<PermissionSet> permissions( 816 scoped_refptr<PermissionSet> permissions(
817 new PermissionSet(api_permissions, ManifestPermissionSet(), 817 new PermissionSet(api_permissions, ManifestPermissionSet(),
818 URLPatternSet(), URLPatternSet())); 818 URLPatternSet(), URLPatternSet()));
819 PermissionMessages messages = 819 PermissionMessages messages =
820 PermissionMessageProvider::Get()->GetPermissionMessages( 820 PermissionMessageProvider::Get()->GetPermissionMessages(
821 permissions, Manifest::TYPE_PLATFORM_APP); 821 permissions.get(), Manifest::TYPE_PLATFORM_APP);
822 ASSERT_EQ(1u, messages.size()); 822 ASSERT_EQ(1u, messages.size());
823 EXPECT_EQ(PermissionMessage::kFileSystemWriteDirectory, messages[0].id()); 823 EXPECT_EQ(PermissionMessage::kFileSystemWriteDirectory, messages[0].id());
824 } 824 }
825 825
826 TEST(PermissionsTest, SuppressedPermissionMessages) { 826 TEST(PermissionsTest, SuppressedPermissionMessages) {
827 { 827 {
828 APIPermissionSet api_permissions; 828 APIPermissionSet api_permissions;
829 api_permissions.insert(APIPermission::kTab); 829 api_permissions.insert(APIPermission::kTab);
830 URLPatternSet hosts; 830 URLPatternSet hosts;
831 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, 831 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI,
832 "chrome://favicon/")); 832 "chrome://favicon/"));
833 scoped_refptr<PermissionSet> permissions( 833 scoped_refptr<PermissionSet> permissions(
834 new PermissionSet(api_permissions, ManifestPermissionSet(), 834 new PermissionSet(api_permissions, ManifestPermissionSet(),
835 hosts, URLPatternSet())); 835 hosts, URLPatternSet()));
836 PermissionMessages messages = 836 PermissionMessages messages =
837 PermissionMessageProvider::Get()->GetPermissionMessages( 837 PermissionMessageProvider::Get()->GetPermissionMessages(
838 permissions, Manifest::TYPE_EXTENSION); 838 permissions.get(), Manifest::TYPE_EXTENSION);
839 EXPECT_EQ(1u, messages.size()); 839 EXPECT_EQ(1u, messages.size());
840 EXPECT_EQ(PermissionMessage::kTabs, messages[0].id()); 840 EXPECT_EQ(PermissionMessage::kTabs, messages[0].id());
841 } 841 }
842 { 842 {
843 APIPermissionSet api_permissions; 843 APIPermissionSet api_permissions;
844 api_permissions.insert(APIPermission::kHistory); 844 api_permissions.insert(APIPermission::kHistory);
845 URLPatternSet hosts; 845 URLPatternSet hosts;
846 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, 846 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI,
847 "chrome://favicon/")); 847 "chrome://favicon/"));
848 scoped_refptr<PermissionSet> permissions( 848 scoped_refptr<PermissionSet> permissions(
849 new PermissionSet(api_permissions, ManifestPermissionSet(), 849 new PermissionSet(api_permissions, ManifestPermissionSet(),
850 hosts, URLPatternSet())); 850 hosts, URLPatternSet()));
851 PermissionMessages messages = 851 PermissionMessages messages =
852 PermissionMessageProvider::Get()->GetPermissionMessages( 852 PermissionMessageProvider::Get()->GetPermissionMessages(
853 permissions, Manifest::TYPE_EXTENSION); 853 permissions.get(), Manifest::TYPE_EXTENSION);
854 EXPECT_EQ(1u, messages.size()); 854 EXPECT_EQ(1u, messages.size());
855 EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id()); 855 EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id());
856 } 856 }
857 { 857 {
858 APIPermissionSet api_permissions; 858 APIPermissionSet api_permissions;
859 URLPatternSet hosts; 859 URLPatternSet hosts;
860 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); 860 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*"));
861 api_permissions.insert(APIPermission::kTab); 861 api_permissions.insert(APIPermission::kTab);
862 scoped_refptr<PermissionSet> permissions(new PermissionSet( 862 scoped_refptr<PermissionSet> permissions(new PermissionSet(
863 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); 863 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet()));
864 PermissionMessages messages = 864 PermissionMessages messages =
865 PermissionMessageProvider::Get()->GetPermissionMessages( 865 PermissionMessageProvider::Get()->GetPermissionMessages(
866 permissions, Manifest::TYPE_EXTENSION); 866 permissions.get(), Manifest::TYPE_EXTENSION);
867 EXPECT_EQ(1u, messages.size()); 867 EXPECT_EQ(1u, messages.size());
868 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); 868 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id());
869 } 869 }
870 { 870 {
871 APIPermissionSet api_permissions; 871 APIPermissionSet api_permissions;
872 URLPatternSet hosts; 872 URLPatternSet hosts;
873 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*")); 873 hosts.AddPattern(URLPattern(URLPattern::SCHEME_CHROMEUI, "*://*/*"));
874 api_permissions.insert(APIPermission::kDeclarativeWebRequest); 874 api_permissions.insert(APIPermission::kDeclarativeWebRequest);
875 scoped_refptr<PermissionSet> permissions(new PermissionSet( 875 scoped_refptr<PermissionSet> permissions(new PermissionSet(
876 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet())); 876 api_permissions, ManifestPermissionSet(), hosts, URLPatternSet()));
877 PermissionMessages messages = 877 PermissionMessages messages =
878 PermissionMessageProvider::Get()->GetPermissionMessages( 878 PermissionMessageProvider::Get()->GetPermissionMessages(
879 permissions, Manifest::TYPE_EXTENSION); 879 permissions.get(), Manifest::TYPE_EXTENSION);
880 EXPECT_EQ(1u, messages.size()); 880 EXPECT_EQ(1u, messages.size());
881 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id()); 881 EXPECT_EQ(PermissionMessage::kHostsAll, messages[0].id());
882 } 882 }
883 { 883 {
884 APIPermissionSet api_permissions; 884 APIPermissionSet api_permissions;
885 api_permissions.insert(APIPermission::kHistory); 885 api_permissions.insert(APIPermission::kHistory);
886 api_permissions.insert(APIPermission::kTab); 886 api_permissions.insert(APIPermission::kTab);
887 api_permissions.insert(APIPermission::kTopSites); 887 api_permissions.insert(APIPermission::kTopSites);
888 api_permissions.insert(APIPermission::kProcesses); 888 api_permissions.insert(APIPermission::kProcesses);
889 api_permissions.insert(APIPermission::kWebNavigation); 889 api_permissions.insert(APIPermission::kWebNavigation);
890 scoped_refptr<PermissionSet> permissions( 890 scoped_refptr<PermissionSet> permissions(
891 new PermissionSet(api_permissions, ManifestPermissionSet(), 891 new PermissionSet(api_permissions, ManifestPermissionSet(),
892 URLPatternSet(), URLPatternSet())); 892 URLPatternSet(), URLPatternSet()));
893 PermissionMessages messages = 893 PermissionMessages messages =
894 PermissionMessageProvider::Get()->GetPermissionMessages( 894 PermissionMessageProvider::Get()->GetPermissionMessages(
895 permissions, Manifest::TYPE_EXTENSION); 895 permissions.get(), Manifest::TYPE_EXTENSION);
896 EXPECT_EQ(1u, messages.size()); 896 EXPECT_EQ(1u, messages.size());
897 EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id()); 897 EXPECT_EQ(PermissionMessage::kBrowsingHistory, messages[0].id());
898 } 898 }
899 { 899 {
900 APIPermissionSet api_permissions; 900 APIPermissionSet api_permissions;
901 api_permissions.insert(APIPermission::kTab); 901 api_permissions.insert(APIPermission::kTab);
902 api_permissions.insert(APIPermission::kTopSites); 902 api_permissions.insert(APIPermission::kTopSites);
903 api_permissions.insert(APIPermission::kProcesses); 903 api_permissions.insert(APIPermission::kProcesses);
904 api_permissions.insert(APIPermission::kWebNavigation); 904 api_permissions.insert(APIPermission::kWebNavigation);
905 scoped_refptr<PermissionSet> permissions( 905 scoped_refptr<PermissionSet> permissions(
906 new PermissionSet(api_permissions, ManifestPermissionSet(), 906 new PermissionSet(api_permissions, ManifestPermissionSet(),
907 URLPatternSet(), URLPatternSet())); 907 URLPatternSet(), URLPatternSet()));
908 PermissionMessages messages = 908 PermissionMessages messages =
909 PermissionMessageProvider::Get()->GetPermissionMessages( 909 PermissionMessageProvider::Get()->GetPermissionMessages(
910 permissions, Manifest::TYPE_EXTENSION); 910 permissions.get(), Manifest::TYPE_EXTENSION);
911 EXPECT_EQ(1u, messages.size()); 911 EXPECT_EQ(1u, messages.size());
912 EXPECT_EQ(PermissionMessage::kTabs, messages[0].id()); 912 EXPECT_EQ(PermissionMessage::kTabs, messages[0].id());
913 } 913 }
914 } 914 }
915 915
916 TEST(PermissionsTest, AccessToDevicesMessages) { 916 TEST(PermissionsTest, AccessToDevicesMessages) {
917 { 917 {
918 APIPermissionSet api_permissions; 918 APIPermissionSet api_permissions;
919 api_permissions.insert(APIPermission::kUsb); 919 api_permissions.insert(APIPermission::kUsb);
920 scoped_refptr<PermissionSet> permissions( 920 scoped_refptr<PermissionSet> permissions(
921 new PermissionSet(api_permissions, 921 new PermissionSet(api_permissions,
922 ManifestPermissionSet(), 922 ManifestPermissionSet(),
923 URLPatternSet(), 923 URLPatternSet(),
924 URLPatternSet())); 924 URLPatternSet()));
925 std::vector<base::string16> messages = 925 std::vector<base::string16> messages =
926 PermissionMessageProvider::Get()->GetWarningMessages( 926 PermissionMessageProvider::Get()->GetWarningMessages(
927 permissions, Manifest::TYPE_EXTENSION); 927 permissions.get(), Manifest::TYPE_EXTENSION);
928 EXPECT_EQ(1u, messages.size()); 928 EXPECT_EQ(1u, messages.size());
929 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB), 929 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB),
930 messages[0]); 930 messages[0]);
931 } 931 }
932 { 932 {
933 // Testing that multiple permissions will show the one message. 933 // Testing that multiple permissions will show the one message.
934 APIPermissionSet api_permissions; 934 APIPermissionSet api_permissions;
935 api_permissions.insert(APIPermission::kUsb); 935 api_permissions.insert(APIPermission::kUsb);
936 api_permissions.insert(APIPermission::kUsb); 936 api_permissions.insert(APIPermission::kUsb);
937 scoped_refptr<PermissionSet> permissions( 937 scoped_refptr<PermissionSet> permissions(
938 new PermissionSet(api_permissions, 938 new PermissionSet(api_permissions,
939 ManifestPermissionSet(), 939 ManifestPermissionSet(),
940 URLPatternSet(), 940 URLPatternSet(),
941 URLPatternSet())); 941 URLPatternSet()));
942 std::vector<base::string16> messages = 942 std::vector<base::string16> messages =
943 PermissionMessageProvider::Get()->GetWarningMessages( 943 PermissionMessageProvider::Get()->GetWarningMessages(
944 permissions, Manifest::TYPE_EXTENSION); 944 permissions.get(), Manifest::TYPE_EXTENSION);
945 EXPECT_EQ(1u, messages.size()); 945 EXPECT_EQ(1u, messages.size());
946 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB), 946 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB),
947 messages[0]); 947 messages[0]);
948 } 948 }
949 { 949 {
950 APIPermissionSet api_permissions; 950 APIPermissionSet api_permissions;
951 api_permissions.insert(APIPermission::kSerial); 951 api_permissions.insert(APIPermission::kSerial);
952 scoped_refptr<PermissionSet> permissions( 952 scoped_refptr<PermissionSet> permissions(
953 new PermissionSet(api_permissions, 953 new PermissionSet(api_permissions,
954 ManifestPermissionSet(), 954 ManifestPermissionSet(),
955 URLPatternSet(), 955 URLPatternSet(),
956 URLPatternSet())); 956 URLPatternSet()));
957 std::vector<base::string16> messages = 957 std::vector<base::string16> messages =
958 PermissionMessageProvider::Get()->GetWarningMessages( 958 PermissionMessageProvider::Get()->GetWarningMessages(
959 permissions, Manifest::TYPE_EXTENSION); 959 permissions.get(), Manifest::TYPE_EXTENSION);
960 EXPECT_EQ(1u, messages.size()); 960 EXPECT_EQ(1u, messages.size());
961 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_SERIAL), 961 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_SERIAL),
962 messages[0]); 962 messages[0]);
963 } 963 }
964 { 964 {
965 APIPermissionSet api_permissions; 965 APIPermissionSet api_permissions;
966 api_permissions.insert(APIPermission::kUsb); 966 api_permissions.insert(APIPermission::kUsb);
967 api_permissions.insert(APIPermission::kSerial); 967 api_permissions.insert(APIPermission::kSerial);
968 scoped_refptr<PermissionSet> permissions( 968 scoped_refptr<PermissionSet> permissions(
969 new PermissionSet(api_permissions, 969 new PermissionSet(api_permissions,
970 ManifestPermissionSet(), 970 ManifestPermissionSet(),
971 URLPatternSet(), 971 URLPatternSet(),
972 URLPatternSet())); 972 URLPatternSet()));
973 std::vector<base::string16> messages = 973 std::vector<base::string16> messages =
974 PermissionMessageProvider::Get()->GetWarningMessages( 974 PermissionMessageProvider::Get()->GetWarningMessages(
975 permissions, Manifest::TYPE_EXTENSION); 975 permissions.get(), Manifest::TYPE_EXTENSION);
976 EXPECT_EQ(1u, messages.size()); 976 EXPECT_EQ(1u, messages.size());
977 EXPECT_EQ( 977 EXPECT_EQ(
978 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_SERIAL), 978 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_SERIAL),
979 messages[0]); 979 messages[0]);
980 } 980 }
981 { 981 {
982 // Testing that the same permission(s) will show one message. 982 // Testing that the same permission(s) will show one message.
983 APIPermissionSet api_permissions; 983 APIPermissionSet api_permissions;
984 api_permissions.insert(APIPermission::kUsb); 984 api_permissions.insert(APIPermission::kUsb);
985 api_permissions.insert(APIPermission::kSerial); 985 api_permissions.insert(APIPermission::kSerial);
986 api_permissions.insert(APIPermission::kUsb); 986 api_permissions.insert(APIPermission::kUsb);
987 scoped_refptr<PermissionSet> permissions( 987 scoped_refptr<PermissionSet> permissions(
988 new PermissionSet(api_permissions, 988 new PermissionSet(api_permissions,
989 ManifestPermissionSet(), 989 ManifestPermissionSet(),
990 URLPatternSet(), 990 URLPatternSet(),
991 URLPatternSet())); 991 URLPatternSet()));
992 std::vector<base::string16> messages = 992 std::vector<base::string16> messages =
993 PermissionMessageProvider::Get()->GetWarningMessages( 993 PermissionMessageProvider::Get()->GetWarningMessages(
994 permissions, Manifest::TYPE_EXTENSION); 994 permissions.get(), Manifest::TYPE_EXTENSION);
995 EXPECT_EQ(1u, messages.size()); 995 EXPECT_EQ(1u, messages.size());
996 EXPECT_EQ( 996 EXPECT_EQ(
997 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_SERIAL), 997 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_SERIAL),
998 messages[0]); 998 messages[0]);
999 } 999 }
1000 { 1000 {
1001 scoped_refptr<Extension> extension = 1001 scoped_refptr<Extension> extension =
1002 LoadManifest("permissions", "access_to_devices_bluetooth.json"); 1002 LoadManifest("permissions", "access_to_devices_bluetooth.json");
1003 const PermissionMessageProvider* provider = 1003 const PermissionMessageProvider* provider =
1004 PermissionMessageProvider::Get(); 1004 PermissionMessageProvider::Get();
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1053 APIPermissionSet write_directory_api_permissions; 1053 APIPermissionSet write_directory_api_permissions;
1054 write_directory_api_permissions.insert( 1054 write_directory_api_permissions.insert(
1055 APIPermission::kFileSystemWriteDirectory); 1055 APIPermission::kFileSystemWriteDirectory);
1056 scoped_refptr<PermissionSet> write_directory_permissions( 1056 scoped_refptr<PermissionSet> write_directory_permissions(
1057 new PermissionSet(write_directory_api_permissions, 1057 new PermissionSet(write_directory_api_permissions,
1058 ManifestPermissionSet(), 1058 ManifestPermissionSet(),
1059 URLPatternSet(), 1059 URLPatternSet(),
1060 URLPatternSet())); 1060 URLPatternSet()));
1061 1061
1062 const PermissionMessageProvider* provider = PermissionMessageProvider::Get(); 1062 const PermissionMessageProvider* provider = PermissionMessageProvider::Get();
1063 EXPECT_FALSE(provider->IsPrivilegeIncrease(write_directory_permissions, 1063 EXPECT_FALSE(provider->IsPrivilegeIncrease(write_directory_permissions.get(),
1064 write_permissions, 1064 write_permissions.get(),
1065 Manifest::TYPE_PLATFORM_APP)); 1065 Manifest::TYPE_PLATFORM_APP));
1066 EXPECT_FALSE(provider->IsPrivilegeIncrease(write_directory_permissions, 1066 EXPECT_FALSE(provider->IsPrivilegeIncrease(write_directory_permissions.get(),
1067 directory_permissions, 1067 directory_permissions.get(),
1068 Manifest::TYPE_PLATFORM_APP)); 1068 Manifest::TYPE_PLATFORM_APP));
1069 EXPECT_TRUE(provider->IsPrivilegeIncrease(write_permissions, 1069 EXPECT_TRUE(provider->IsPrivilegeIncrease(write_permissions.get(),
1070 directory_permissions, 1070 directory_permissions.get(),
1071 Manifest::TYPE_PLATFORM_APP)); 1071 Manifest::TYPE_PLATFORM_APP));
1072 EXPECT_TRUE(provider->IsPrivilegeIncrease(write_permissions, 1072 EXPECT_TRUE(provider->IsPrivilegeIncrease(write_permissions.get(),
1073 write_directory_permissions, 1073 write_directory_permissions.get(),
1074 Manifest::TYPE_PLATFORM_APP)); 1074 Manifest::TYPE_PLATFORM_APP));
1075 EXPECT_FALSE(provider->IsPrivilegeIncrease(directory_permissions, 1075 EXPECT_FALSE(provider->IsPrivilegeIncrease(directory_permissions.get(),
1076 write_permissions, 1076 write_permissions.get(),
1077 Manifest::TYPE_PLATFORM_APP)); 1077 Manifest::TYPE_PLATFORM_APP));
1078 EXPECT_TRUE(provider->IsPrivilegeIncrease(directory_permissions, 1078 EXPECT_TRUE(provider->IsPrivilegeIncrease(directory_permissions.get(),
1079 write_directory_permissions, 1079 write_directory_permissions.get(),
1080 Manifest::TYPE_PLATFORM_APP)); 1080 Manifest::TYPE_PLATFORM_APP));
1081 } 1081 }
1082 1082
1083 TEST(PermissionsTest, GetWarningMessages_ManyHosts) { 1083 TEST(PermissionsTest, GetWarningMessages_ManyHosts) {
1084 scoped_refptr<Extension> extension; 1084 scoped_refptr<Extension> extension;
1085 1085
1086 extension = LoadManifest("permissions", "many-hosts.json"); 1086 extension = LoadManifest("permissions", "many-hosts.json");
1087 std::vector<base::string16> warnings = 1087 std::vector<base::string16> warnings =
1088 extension->permissions_data()->GetPermissionMessageStrings(); 1088 extension->permissions_data()->GetPermissionMessageStrings();
1089 ASSERT_EQ(1u, warnings.size()); 1089 ASSERT_EQ(1u, warnings.size());
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1152 api_permissions.insert(APIPermission::kTab); 1152 api_permissions.insert(APIPermission::kTab);
1153 api_permissions.insert(APIPermission::kTopSites); 1153 api_permissions.insert(APIPermission::kTopSites);
1154 api_permissions.insert(APIPermission::kProcesses); 1154 api_permissions.insert(APIPermission::kProcesses);
1155 api_permissions.insert(APIPermission::kWebNavigation); 1155 api_permissions.insert(APIPermission::kWebNavigation);
1156 api_permissions.insert(APIPermission::kSessions); 1156 api_permissions.insert(APIPermission::kSessions);
1157 scoped_refptr<PermissionSet> permissions( 1157 scoped_refptr<PermissionSet> permissions(
1158 new PermissionSet(api_permissions, ManifestPermissionSet(), 1158 new PermissionSet(api_permissions, ManifestPermissionSet(),
1159 URLPatternSet(), URLPatternSet())); 1159 URLPatternSet(), URLPatternSet()));
1160 std::vector<base::string16> messages = 1160 std::vector<base::string16> messages =
1161 PermissionMessageProvider::Get()->GetWarningMessages( 1161 PermissionMessageProvider::Get()->GetWarningMessages(
1162 permissions, Manifest::TYPE_EXTENSION); 1162 permissions.get(), Manifest::TYPE_EXTENSION);
1163 EXPECT_EQ(1u, messages.size()); 1163 EXPECT_EQ(1u, messages.size());
1164 EXPECT_EQ(l10n_util::GetStringUTF16( 1164 EXPECT_EQ(l10n_util::GetStringUTF16(
1165 IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS), 1165 IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS),
1166 messages[0]); 1166 messages[0]);
1167 } 1167 }
1168 { 1168 {
1169 APIPermissionSet api_permissions; 1169 APIPermissionSet api_permissions;
1170 api_permissions.insert(APIPermission::kHistory); 1170 api_permissions.insert(APIPermission::kHistory);
1171 api_permissions.insert(APIPermission::kTab); 1171 api_permissions.insert(APIPermission::kTab);
1172 api_permissions.insert(APIPermission::kTopSites); 1172 api_permissions.insert(APIPermission::kTopSites);
1173 api_permissions.insert(APIPermission::kProcesses); 1173 api_permissions.insert(APIPermission::kProcesses);
1174 api_permissions.insert(APIPermission::kWebNavigation); 1174 api_permissions.insert(APIPermission::kWebNavigation);
1175 api_permissions.insert(APIPermission::kSessions); 1175 api_permissions.insert(APIPermission::kSessions);
1176 scoped_refptr<PermissionSet> permissions( 1176 scoped_refptr<PermissionSet> permissions(
1177 new PermissionSet(api_permissions, ManifestPermissionSet(), 1177 new PermissionSet(api_permissions, ManifestPermissionSet(),
1178 URLPatternSet(), URLPatternSet())); 1178 URLPatternSet(), URLPatternSet()));
1179 std::vector<base::string16> messages = 1179 std::vector<base::string16> messages =
1180 PermissionMessageProvider::Get()->GetWarningMessages( 1180 PermissionMessageProvider::Get()->GetWarningMessages(
1181 permissions, Manifest::TYPE_EXTENSION); 1181 permissions.get(), Manifest::TYPE_EXTENSION);
1182 EXPECT_EQ(1u, messages.size()); 1182 EXPECT_EQ(1u, messages.size());
1183 EXPECT_EQ(l10n_util::GetStringUTF16( 1183 EXPECT_EQ(l10n_util::GetStringUTF16(
1184 IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS), 1184 IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS),
1185 messages[0]); 1185 messages[0]);
1186 } 1186 }
1187 } 1187 }
1188 1188
1189 TEST(PermissionsTest, GetWarningMessages_DeclarativeWebRequest) { 1189 TEST(PermissionsTest, GetWarningMessages_DeclarativeWebRequest) {
1190 // Test that if the declarativeWebRequest permission is present 1190 // Test that if the declarativeWebRequest permission is present
1191 // in combination with all hosts permission, then only the warning 1191 // in combination with all hosts permission, then only the warning
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after
1624 elist2.AddPattern( 1624 elist2.AddPattern(
1625 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com/path")); 1625 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com/path"));
1626 elist2.AddPattern( 1626 elist2.AddPattern(
1627 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com.hk/path")); 1627 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com.hk/path"));
1628 1628
1629 set1 = new PermissionSet(empty_perms, empty_manifest_permissions, 1629 set1 = new PermissionSet(empty_perms, empty_manifest_permissions,
1630 elist1, slist1); 1630 elist1, slist1);
1631 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, 1631 set2 = new PermissionSet(empty_perms, empty_manifest_permissions,
1632 elist2, slist2); 1632 elist2, slist2);
1633 1633
1634 EXPECT_FALSE(provider->IsPrivilegeIncrease(set1, set2, type)); 1634 EXPECT_FALSE(provider->IsPrivilegeIncrease(set1.get(), set2.get(), type));
1635 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); 1635 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2.get(), set1.get(), type));
1636 1636
1637 // Test that paths are ignored. 1637 // Test that paths are ignored.
1638 elist2.ClearPatterns(); 1638 elist2.ClearPatterns();
1639 elist2.AddPattern( 1639 elist2.AddPattern(
1640 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com/*")); 1640 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com/*"));
1641 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, 1641 set2 = new PermissionSet(empty_perms, empty_manifest_permissions,
1642 elist2, slist2); 1642 elist2, slist2);
1643 EXPECT_FALSE(provider->IsPrivilegeIncrease(set1, set2, type)); 1643 EXPECT_FALSE(provider->IsPrivilegeIncrease(set1.get(), set2.get(), type));
1644 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); 1644 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2.get(), set1.get(), type));
1645 1645
1646 // Test that RCDs are ignored. 1646 // Test that RCDs are ignored.
1647 elist2.ClearPatterns(); 1647 elist2.ClearPatterns();
1648 elist2.AddPattern( 1648 elist2.AddPattern(
1649 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com.hk/*")); 1649 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com.hk/*"));
1650 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, 1650 set2 = new PermissionSet(empty_perms, empty_manifest_permissions,
1651 elist2, slist2); 1651 elist2, slist2);
1652 EXPECT_FALSE(provider->IsPrivilegeIncrease(set1, set2, type)); 1652 EXPECT_FALSE(provider->IsPrivilegeIncrease(set1.get(), set2.get(), type));
1653 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); 1653 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2.get(), set1.get(), type));
1654 1654
1655 // Test that subdomain wildcards are handled properly. 1655 // Test that subdomain wildcards are handled properly.
1656 elist2.ClearPatterns(); 1656 elist2.ClearPatterns();
1657 elist2.AddPattern( 1657 elist2.AddPattern(
1658 URLPattern(URLPattern::SCHEME_HTTP, "http://*.google.com.hk/*")); 1658 URLPattern(URLPattern::SCHEME_HTTP, "http://*.google.com.hk/*"));
1659 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, 1659 set2 = new PermissionSet(empty_perms, empty_manifest_permissions,
1660 elist2, slist2); 1660 elist2, slist2);
1661 EXPECT_TRUE(provider->IsPrivilegeIncrease(set1, set2, type)); 1661 EXPECT_TRUE(provider->IsPrivilegeIncrease(set1.get(), set2.get(), type));
1662 // TODO(jstritar): Does not match subdomains properly. http://crbug.com/65337 1662 // TODO(jstritar): Does not match subdomains properly. http://crbug.com/65337
1663 // EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); 1663 // EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type));
1664 1664
1665 // Test that different domains count as different hosts. 1665 // Test that different domains count as different hosts.
1666 elist2.ClearPatterns(); 1666 elist2.ClearPatterns();
1667 elist2.AddPattern( 1667 elist2.AddPattern(
1668 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com/path")); 1668 URLPattern(URLPattern::SCHEME_HTTP, "http://www.google.com/path"));
1669 elist2.AddPattern( 1669 elist2.AddPattern(
1670 URLPattern(URLPattern::SCHEME_HTTP, "http://www.example.org/path")); 1670 URLPattern(URLPattern::SCHEME_HTTP, "http://www.example.org/path"));
1671 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, 1671 set2 = new PermissionSet(empty_perms, empty_manifest_permissions,
1672 elist2, slist2); 1672 elist2, slist2);
1673 EXPECT_TRUE(provider->IsPrivilegeIncrease(set1, set2, type)); 1673 EXPECT_TRUE(provider->IsPrivilegeIncrease(set1.get(), set2.get(), type));
1674 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); 1674 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2.get(), set1.get(), type));
1675 1675
1676 // Test that different subdomains count as different hosts. 1676 // Test that different subdomains count as different hosts.
1677 elist2.ClearPatterns(); 1677 elist2.ClearPatterns();
1678 elist2.AddPattern( 1678 elist2.AddPattern(
1679 URLPattern(URLPattern::SCHEME_HTTP, "http://mail.google.com/*")); 1679 URLPattern(URLPattern::SCHEME_HTTP, "http://mail.google.com/*"));
1680 set2 = new PermissionSet(empty_perms, empty_manifest_permissions, 1680 set2 = new PermissionSet(empty_perms, empty_manifest_permissions,
1681 elist2, slist2); 1681 elist2, slist2);
1682 EXPECT_TRUE(provider->IsPrivilegeIncrease(set1, set2, type)); 1682 EXPECT_TRUE(provider->IsPrivilegeIncrease(set1.get(), set2.get(), type));
1683 EXPECT_TRUE(provider->IsPrivilegeIncrease(set2, set1, type)); 1683 EXPECT_TRUE(provider->IsPrivilegeIncrease(set2.get(), set1.get(), type));
1684 1684
1685 // Test that platform apps do not have host permissions increases. 1685 // Test that platform apps do not have host permissions increases.
1686 type = Manifest::TYPE_PLATFORM_APP; 1686 type = Manifest::TYPE_PLATFORM_APP;
1687 EXPECT_FALSE(provider->IsPrivilegeIncrease(set1, set2, type)); 1687 EXPECT_FALSE(provider->IsPrivilegeIncrease(set1.get(), set2.get(), type));
1688 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2, set1, type)); 1688 EXPECT_FALSE(provider->IsPrivilegeIncrease(set2.get(), set1.get(), type));
1689 } 1689 }
1690 1690
1691 TEST(PermissionsTest, GetAPIsAsStrings) { 1691 TEST(PermissionsTest, GetAPIsAsStrings) {
1692 APIPermissionSet apis; 1692 APIPermissionSet apis;
1693 URLPatternSet empty_set; 1693 URLPatternSet empty_set;
1694 1694
1695 apis.insert(APIPermission::kProxy); 1695 apis.insert(APIPermission::kProxy);
1696 apis.insert(APIPermission::kBackground); 1696 apis.insert(APIPermission::kBackground);
1697 apis.insert(APIPermission::kNotifications); 1697 apis.insert(APIPermission::kNotifications);
1698 apis.insert(APIPermission::kTab); 1698 apis.insert(APIPermission::kTab);
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1773 URLPatternSet allowed_hosts; 1773 URLPatternSet allowed_hosts;
1774 allowed_hosts.AddPattern( 1774 allowed_hosts.AddPattern(
1775 URLPattern(URLPattern::SCHEME_ALL, "http://www.google.com/")); 1775 URLPattern(URLPattern::SCHEME_ALL, "http://www.google.com/"));
1776 allowed_hosts.AddPattern( 1776 allowed_hosts.AddPattern(
1777 URLPattern(URLPattern::SCHEME_ALL, "chrome://favicon/")); 1777 URLPattern(URLPattern::SCHEME_ALL, "chrome://favicon/"));
1778 allowed_hosts.AddPattern( 1778 allowed_hosts.AddPattern(
1779 URLPattern(URLPattern::SCHEME_ALL, "chrome://thumb/")); 1779 URLPattern(URLPattern::SCHEME_ALL, "chrome://thumb/"));
1780 scoped_refptr<PermissionSet> permissions( 1780 scoped_refptr<PermissionSet> permissions(
1781 new PermissionSet(APIPermissionSet(), ManifestPermissionSet(), 1781 new PermissionSet(APIPermissionSet(), ManifestPermissionSet(),
1782 allowed_hosts, URLPatternSet())); 1782 allowed_hosts, URLPatternSet()));
1783 PermissionMessageProvider::Get()-> 1783 PermissionMessageProvider::Get()->GetPermissionMessages(
1784 GetPermissionMessages(permissions, Manifest::TYPE_EXTENSION); 1784 permissions.get(), Manifest::TYPE_EXTENSION);
1785 } 1785 }
1786 1786
1787 TEST(PermissionsTest, IsPrivilegeIncrease_DeclarativeWebRequest) { 1787 TEST(PermissionsTest, IsPrivilegeIncrease_DeclarativeWebRequest) {
1788 scoped_refptr<Extension> extension( 1788 scoped_refptr<Extension> extension(
1789 LoadManifest("permissions", "permissions_all_urls.json")); 1789 LoadManifest("permissions", "permissions_all_urls.json"));
1790 scoped_refptr<const PermissionSet> permissions( 1790 scoped_refptr<const PermissionSet> permissions(
1791 extension->permissions_data()->active_permissions()); 1791 extension->permissions_data()->active_permissions());
1792 1792
1793 scoped_refptr<Extension> extension_dwr( 1793 scoped_refptr<Extension> extension_dwr(
1794 LoadManifest("permissions", "web_request_all_host_permissions.json")); 1794 LoadManifest("permissions", "web_request_all_host_permissions.json"));
1795 scoped_refptr<const PermissionSet> permissions_dwr( 1795 scoped_refptr<const PermissionSet> permissions_dwr(
1796 extension_dwr->permissions_data()->active_permissions()); 1796 extension_dwr->permissions_data()->active_permissions());
1797 1797
1798 EXPECT_FALSE(PermissionMessageProvider::Get()-> 1798 EXPECT_FALSE(PermissionMessageProvider::Get()->
1799 IsPrivilegeIncrease(permissions.get(), 1799 IsPrivilegeIncrease(permissions.get(),
1800 permissions_dwr.get(), 1800 permissions_dwr.get(),
1801 extension->GetType())); 1801 extension->GetType()));
1802 } 1802 }
1803 1803
1804 } // namespace extensions 1804 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/common/extensions/manifest_tests/extension_manifests_chromepermission_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698