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

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

Issue 336313009: Showing devices transport method in one device (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing the style of using overriding instead of options and adding const when needed Created 6 years, 5 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/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"
11 #include "chrome/common/chrome_switches.h" 11 #include "chrome/common/chrome_switches.h"
12 #include "chrome/common/extensions/extension_test_util.h" 12 #include "chrome/common/extensions/extension_test_util.h"
13 #include "chrome/common/extensions/features/feature_channel.h" 13 #include "chrome/common/extensions/features/feature_channel.h"
14 #include "chrome/common/extensions/permissions/chrome_permission_message_provide r.h" 14 #include "chrome/common/extensions/permissions/chrome_permission_message_provide r.h"
15 #include "extensions/common/error_utils.h" 15 #include "extensions/common/error_utils.h"
16 #include "extensions/common/extension.h" 16 #include "extensions/common/extension.h"
17 #include "extensions/common/extension_builder.h" 17 #include "extensions/common/extension_builder.h"
18 #include "extensions/common/permissions/permission_message_provider.h" 18 #include "extensions/common/permissions/permission_message_provider.h"
19 #include "extensions/common/permissions/permission_message_util.h" 19 #include "extensions/common/permissions/permission_message_util.h"
20 #include "extensions/common/permissions/permission_set.h" 20 #include "extensions/common/permissions/permission_set.h"
21 #include "extensions/common/permissions/permissions_data.h" 21 #include "extensions/common/permissions/permissions_data.h"
22 #include "extensions/common/permissions/permissions_info.h" 22 #include "extensions/common/permissions/permissions_info.h"
23 #include "extensions/common/permissions/socket_permission.h" 23 #include "extensions/common/permissions/socket_permission.h"
24 #include "extensions/common/value_builder.h" 24 #include "extensions/common/value_builder.h"
25 #include "grit/extensions_strings.h"
25 #include "grit/generated_resources.h" 26 #include "grit/generated_resources.h"
26 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
27 #include "ui/base/l10n/l10n_util.h" 28 #include "ui/base/l10n/l10n_util.h"
28 29
29 using extension_test_util::LoadManifest; 30 using extension_test_util::LoadManifest;
30 31
31 namespace extensions { 32 namespace extensions {
32 33
33 namespace { 34 namespace {
34 35
(...skipping 869 matching lines...) Expand 10 before | Expand all | Expand 10 after
904 new PermissionSet(api_permissions, ManifestPermissionSet(), 905 new PermissionSet(api_permissions, ManifestPermissionSet(),
905 URLPatternSet(), URLPatternSet())); 906 URLPatternSet(), URLPatternSet()));
906 PermissionMessages messages = 907 PermissionMessages messages =
907 PermissionMessageProvider::Get()->GetPermissionMessages( 908 PermissionMessageProvider::Get()->GetPermissionMessages(
908 permissions, Manifest::TYPE_EXTENSION); 909 permissions, Manifest::TYPE_EXTENSION);
909 EXPECT_EQ(1u, messages.size()); 910 EXPECT_EQ(1u, messages.size());
910 EXPECT_EQ(PermissionMessage::kTabs, messages[0].id()); 911 EXPECT_EQ(PermissionMessage::kTabs, messages[0].id());
911 } 912 }
912 } 913 }
913 914
915 TEST(PermissionsTest, AccessToDevicesMessages) {
916 {
917 APIPermissionSet api_permissions;
918 api_permissions.insert(APIPermission::kUsb);
919 scoped_refptr<PermissionSet> permissions(
920 new PermissionSet(api_permissions,
921 ManifestPermissionSet(),
922 URLPatternSet(),
923 URLPatternSet()));
924 std::vector<base::string16> messages =
925 PermissionMessageProvider::Get()->GetWarningMessages(
926 permissions, Manifest::TYPE_EXTENSION);
927 EXPECT_EQ(1u, messages.size());
928 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB),
929 messages[0]);
930 }
931 {
932 // Testing that multiple permissions will show the one message.
933 APIPermissionSet api_permissions;
934 api_permissions.insert(APIPermission::kUsb);
935 api_permissions.insert(APIPermission::kUsb);
936 scoped_refptr<PermissionSet> permissions(
937 new PermissionSet(api_permissions,
938 ManifestPermissionSet(),
939 URLPatternSet(),
940 URLPatternSet()));
941 std::vector<base::string16> messages =
942 PermissionMessageProvider::Get()->GetWarningMessages(
943 permissions, Manifest::TYPE_EXTENSION);
944 EXPECT_EQ(1u, messages.size());
945 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB),
946 messages[0]);
947 }
948 {
949 APIPermissionSet api_permissions;
950 api_permissions.insert(APIPermission::kSerial);
951 scoped_refptr<PermissionSet> permissions(
952 new PermissionSet(api_permissions,
953 ManifestPermissionSet(),
954 URLPatternSet(),
955 URLPatternSet()));
956 std::vector<base::string16> messages =
957 PermissionMessageProvider::Get()->GetWarningMessages(
958 permissions, Manifest::TYPE_EXTENSION);
959 EXPECT_EQ(1u, messages.size());
960 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_SERIAL),
961 messages[0]);
962 }
963 {
964 APIPermissionSet api_permissions;
965 api_permissions.insert(APIPermission::kUsb);
966 api_permissions.insert(APIPermission::kSerial);
967 scoped_refptr<PermissionSet> permissions(
968 new PermissionSet(api_permissions,
969 ManifestPermissionSet(),
970 URLPatternSet(),
971 URLPatternSet()));
972 std::vector<base::string16> messages =
973 PermissionMessageProvider::Get()->GetWarningMessages(
974 permissions, Manifest::TYPE_EXTENSION);
975 EXPECT_EQ(1u, messages.size());
976 EXPECT_EQ(
977 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_SERIAL),
978 messages[0]);
979 }
980 {
981 // Testing that the same permission(s) will show one message.
982 APIPermissionSet api_permissions;
983 api_permissions.insert(APIPermission::kUsb);
984 api_permissions.insert(APIPermission::kSerial);
985 api_permissions.insert(APIPermission::kUsb);
986 scoped_refptr<PermissionSet> permissions(
987 new PermissionSet(api_permissions,
988 ManifestPermissionSet(),
989 URLPatternSet(),
990 URLPatternSet()));
991 std::vector<base::string16> messages =
992 PermissionMessageProvider::Get()->GetWarningMessages(
993 permissions, Manifest::TYPE_EXTENSION);
994 EXPECT_EQ(1u, messages.size());
995 EXPECT_EQ(
996 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_SERIAL),
997 messages[0]);
998 }
999 {
1000 scoped_refptr<Extension> extension =
1001 LoadManifest("permissions", "access_to_devices_bluetooth.json");
1002 const PermissionMessageProvider* provider =
1003 PermissionMessageProvider::Get();
1004 PermissionSet* set = const_cast<PermissionSet*>(
1005 extension->permissions_data()->active_permissions().get());
1006 std::vector<base::string16> warnings =
1007 provider->GetWarningMessages(set, extension->GetType());
1008 EXPECT_EQ(1u, warnings.size());
1009 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH),
1010 warnings[0]);
1011
1012 // Test Bluetooth and Serial
1013 set->apis_.insert(APIPermission::kSerial);
1014 warnings = provider->GetWarningMessages(set, extension->GetType());
1015 EXPECT_EQ(1u, warnings.size());
1016 EXPECT_EQ(l10n_util::GetStringUTF16(
1017 IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_SERIAL),
1018 warnings[0]);
1019 set->apis_.erase(APIPermission::kSerial);
1020
1021 // Test USB and Bluetooth
1022 set->apis_.insert(APIPermission::kUsb);
1023 warnings = provider->GetWarningMessages(set, extension->GetType());
1024 EXPECT_EQ(1u, warnings.size());
1025 EXPECT_EQ(
1026 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_BLUETOOTH),
1027 warnings[0]);
1028
1029 // Test USB, Bluetooth and Serial
1030 set->apis_.insert(APIPermission::kSerial);
1031 warnings = provider->GetWarningMessages(set, extension->GetType());
1032 EXPECT_EQ(1u, warnings.size());
1033 EXPECT_EQ(
1034 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_ALL_DEVICES),
1035 warnings[0]);
1036 }
1037 }
1038
914 TEST(PermissionsTest, MergedFileSystemPermissionComparison) { 1039 TEST(PermissionsTest, MergedFileSystemPermissionComparison) {
915 APIPermissionSet write_api_permissions; 1040 APIPermissionSet write_api_permissions;
916 write_api_permissions.insert(APIPermission::kFileSystemWrite); 1041 write_api_permissions.insert(APIPermission::kFileSystemWrite);
917 scoped_refptr<PermissionSet> write_permissions( 1042 scoped_refptr<PermissionSet> write_permissions(
918 new PermissionSet(write_api_permissions, ManifestPermissionSet(), 1043 new PermissionSet(write_api_permissions, ManifestPermissionSet(),
919 URLPatternSet(), URLPatternSet())); 1044 URLPatternSet(), URLPatternSet()));
920 1045
921 APIPermissionSet directory_api_permissions; 1046 APIPermissionSet directory_api_permissions;
922 directory_api_permissions.insert(APIPermission::kFileSystemDirectory); 1047 directory_api_permissions.insert(APIPermission::kFileSystemDirectory);
923 scoped_refptr<PermissionSet> directory_permissions( 1048 scoped_refptr<PermissionSet> directory_permissions(
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
1096 1221
1097 TEST(PermissionsTest, GetWarningMessages_Serial) { 1222 TEST(PermissionsTest, GetWarningMessages_Serial) {
1098 scoped_refptr<Extension> extension = 1223 scoped_refptr<Extension> extension =
1099 LoadManifest("permissions", "serial.json"); 1224 LoadManifest("permissions", "serial.json");
1100 1225
1101 EXPECT_TRUE(extension->is_platform_app()); 1226 EXPECT_TRUE(extension->is_platform_app());
1102 EXPECT_TRUE( 1227 EXPECT_TRUE(
1103 extension->permissions_data()->HasAPIPermission(APIPermission::kSerial)); 1228 extension->permissions_data()->HasAPIPermission(APIPermission::kSerial));
1104 std::vector<base::string16> warnings = 1229 std::vector<base::string16> warnings =
1105 extension->permissions_data()->GetPermissionMessageStrings(); 1230 extension->permissions_data()->GetPermissionMessageStrings();
1106 EXPECT_TRUE( 1231 EXPECT_TRUE(Contains(warnings, "Access your serial devices"));
1107 Contains(warnings, "Use serial devices attached to your computer"));
1108 ASSERT_EQ(1u, warnings.size()); 1232 ASSERT_EQ(1u, warnings.size());
1109 } 1233 }
1110 1234
1111 TEST(PermissionsTest, GetWarningMessages_Socket_AnyHost) { 1235 TEST(PermissionsTest, GetWarningMessages_Socket_AnyHost) {
1112 ScopedCurrentChannel channel(chrome::VersionInfo::CHANNEL_DEV); 1236 ScopedCurrentChannel channel(chrome::VersionInfo::CHANNEL_DEV);
1113 1237
1114 scoped_refptr<Extension> extension = 1238 scoped_refptr<Extension> extension =
1115 LoadManifest("permissions", "socket_any_host.json"); 1239 LoadManifest("permissions", "socket_any_host.json");
1116 EXPECT_TRUE(extension->is_platform_app()); 1240 EXPECT_TRUE(extension->is_platform_app());
1117 EXPECT_TRUE( 1241 EXPECT_TRUE(
(...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after
1670 scoped_refptr<const PermissionSet> permissions_dwr( 1794 scoped_refptr<const PermissionSet> permissions_dwr(
1671 extension_dwr->permissions_data()->active_permissions()); 1795 extension_dwr->permissions_data()->active_permissions());
1672 1796
1673 EXPECT_FALSE(PermissionMessageProvider::Get()-> 1797 EXPECT_FALSE(PermissionMessageProvider::Get()->
1674 IsPrivilegeIncrease(permissions.get(), 1798 IsPrivilegeIncrease(permissions.get(),
1675 permissions_dwr.get(), 1799 permissions_dwr.get(),
1676 extension->GetType())); 1800 extension->GetType()));
1677 } 1801 }
1678 1802
1679 } // namespace extensions 1803 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698