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

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: Removed HID from the list and ensured consistency with other strings. 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/generated_resources.h" 25 #include "grit/generated_resources.h"
26 #include "grit/extensions_strings.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
35 static void AddPattern(URLPatternSet* extent, const std::string& pattern) { 36 static void AddPattern(URLPatternSet* extent, const std::string& pattern) {
(...skipping 867 matching lines...) Expand 10 before | Expand all | Expand 10 after
903 new PermissionSet(api_permissions, ManifestPermissionSet(), 904 new PermissionSet(api_permissions, ManifestPermissionSet(),
904 URLPatternSet(), URLPatternSet())); 905 URLPatternSet(), URLPatternSet()));
905 PermissionMessages messages = 906 PermissionMessages messages =
906 PermissionMessageProvider::Get()->GetPermissionMessages( 907 PermissionMessageProvider::Get()->GetPermissionMessages(
907 permissions, Manifest::TYPE_EXTENSION); 908 permissions, Manifest::TYPE_EXTENSION);
908 EXPECT_EQ(1u, messages.size()); 909 EXPECT_EQ(1u, messages.size());
909 EXPECT_EQ(PermissionMessage::kTabs, messages[0].id()); 910 EXPECT_EQ(PermissionMessage::kTabs, messages[0].id());
910 } 911 }
911 } 912 }
912 913
914 TEST(PermissionsTest, AccessToDevicesMessages) {
915 {
916 APIPermissionSet api_permissions;
917 api_permissions.insert(APIPermission::kUsb);
918 scoped_refptr<PermissionSet> permissions(
919 new PermissionSet(api_permissions,
920 ManifestPermissionSet(),
921 URLPatternSet(),
922 URLPatternSet()));
923 std::vector<base::string16> messages =
924 PermissionMessageProvider::Get()->GetWarningMessages(
925 permissions, Manifest::TYPE_EXTENSION);
926 EXPECT_EQ(1u, messages.size());
927 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB),
928 messages[0]);
929 }
930 {
931 APIPermissionSet api_permissions;
932 api_permissions.insert(APIPermission::kSerial);
933 scoped_refptr<PermissionSet> permissions(
934 new PermissionSet(api_permissions,
935 ManifestPermissionSet(),
936 URLPatternSet(),
937 URLPatternSet()));
938 std::vector<base::string16> messages =
939 PermissionMessageProvider::Get()->GetWarningMessages(
940 permissions, Manifest::TYPE_EXTENSION);
941 EXPECT_EQ(1u, messages.size());
942 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_SERIAL),
943 messages[0]);
944 }
945 {
946 APIPermissionSet api_permissions;
947 api_permissions.insert(APIPermission::kUsb);
948 api_permissions.insert(APIPermission::kSerial);
949 scoped_refptr<PermissionSet> permissions(
950 new PermissionSet(api_permissions,
951 ManifestPermissionSet(),
952 URLPatternSet(),
953 URLPatternSet()));
954 std::vector<base::string16> messages =
955 PermissionMessageProvider::Get()->GetWarningMessages(
956 permissions, Manifest::TYPE_EXTENSION);
957 EXPECT_EQ(1u, messages.size());
958 EXPECT_EQ(
959 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_SERIAL),
960 messages[0]);
961 }
962 {
963 scoped_refptr<Extension> extension =
964 LoadManifest("permissions", "access_to_devices_bluetooth.json");
965 const PermissionMessageProvider* provider =
966 PermissionMessageProvider::Get();
967 PermissionSet* set = const_cast<PermissionSet*>(
968 extension->permissions_data()->active_permissions().get());
969 std::vector<base::string16> warnings =
970 provider->GetWarningMessages(set, extension->GetType());
971 EXPECT_EQ(1u, warnings.size());
972 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH),
973 warnings[0]);
974
975 // Test Bluetooth and Serial
976 set->apis_.insert(APIPermission::kSerial);
977 warnings = provider->GetWarningMessages(set, extension->GetType());
978 EXPECT_EQ(1u, warnings.size());
979 EXPECT_EQ(l10n_util::GetStringUTF16(
980 IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_SERIAL),
981 warnings[0]);
982 set->apis_.erase(APIPermission::kSerial);
983
984 // Test USB and Bluetooth
985 set->apis_.insert(APIPermission::kUsb);
986 warnings = provider->GetWarningMessages(set, extension->GetType());
987 EXPECT_EQ(1u, warnings.size());
988 EXPECT_EQ(
989 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_BLUETOOTH),
990 warnings[0]);
991
992 // Test USB, Bluetooth and Serial
993 set->apis_.insert(APIPermission::kSerial);
994 warnings = provider->GetWarningMessages(set, extension->GetType());
995 EXPECT_EQ(1u, warnings.size());
996 EXPECT_EQ(
997 l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_ALL_DEVICES),
998 warnings[0]);
999 }
1000 }
1001
913 TEST(PermissionsTest, MergedFileSystemPermissionComparison) { 1002 TEST(PermissionsTest, MergedFileSystemPermissionComparison) {
914 APIPermissionSet write_api_permissions; 1003 APIPermissionSet write_api_permissions;
915 write_api_permissions.insert(APIPermission::kFileSystemWrite); 1004 write_api_permissions.insert(APIPermission::kFileSystemWrite);
916 scoped_refptr<PermissionSet> write_permissions( 1005 scoped_refptr<PermissionSet> write_permissions(
917 new PermissionSet(write_api_permissions, ManifestPermissionSet(), 1006 new PermissionSet(write_api_permissions, ManifestPermissionSet(),
918 URLPatternSet(), URLPatternSet())); 1007 URLPatternSet(), URLPatternSet()));
919 1008
920 APIPermissionSet directory_api_permissions; 1009 APIPermissionSet directory_api_permissions;
921 directory_api_permissions.insert(APIPermission::kFileSystemDirectory); 1010 directory_api_permissions.insert(APIPermission::kFileSystemDirectory);
922 scoped_refptr<PermissionSet> directory_permissions( 1011 scoped_refptr<PermissionSet> directory_permissions(
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 1184
1096 TEST(PermissionsTest, GetWarningMessages_Serial) { 1185 TEST(PermissionsTest, GetWarningMessages_Serial) {
1097 scoped_refptr<Extension> extension = 1186 scoped_refptr<Extension> extension =
1098 LoadManifest("permissions", "serial.json"); 1187 LoadManifest("permissions", "serial.json");
1099 1188
1100 EXPECT_TRUE(extension->is_platform_app()); 1189 EXPECT_TRUE(extension->is_platform_app());
1101 EXPECT_TRUE( 1190 EXPECT_TRUE(
1102 extension->permissions_data()->HasAPIPermission(APIPermission::kSerial)); 1191 extension->permissions_data()->HasAPIPermission(APIPermission::kSerial));
1103 std::vector<base::string16> warnings = 1192 std::vector<base::string16> warnings =
1104 extension->permissions_data()->GetPermissionMessageStrings(); 1193 extension->permissions_data()->GetPermissionMessageStrings();
1105 EXPECT_TRUE( 1194 EXPECT_TRUE(Contains(warnings, "Access your serial device(s)"));
1106 Contains(warnings, "Use serial devices attached to your computer"));
1107 ASSERT_EQ(1u, warnings.size()); 1195 ASSERT_EQ(1u, warnings.size());
1108 } 1196 }
1109 1197
1110 TEST(PermissionsTest, GetWarningMessages_Socket_AnyHost) { 1198 TEST(PermissionsTest, GetWarningMessages_Socket_AnyHost) {
1111 ScopedCurrentChannel channel(chrome::VersionInfo::CHANNEL_DEV); 1199 ScopedCurrentChannel channel(chrome::VersionInfo::CHANNEL_DEV);
1112 1200
1113 scoped_refptr<Extension> extension = 1201 scoped_refptr<Extension> extension =
1114 LoadManifest("permissions", "socket_any_host.json"); 1202 LoadManifest("permissions", "socket_any_host.json");
1115 EXPECT_TRUE(extension->is_platform_app()); 1203 EXPECT_TRUE(extension->is_platform_app());
1116 EXPECT_TRUE( 1204 EXPECT_TRUE(
(...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after
1669 scoped_refptr<const PermissionSet> permissions_dwr( 1757 scoped_refptr<const PermissionSet> permissions_dwr(
1670 extension_dwr->permissions_data()->active_permissions()); 1758 extension_dwr->permissions_data()->active_permissions());
1671 1759
1672 EXPECT_FALSE(PermissionMessageProvider::Get()-> 1760 EXPECT_FALSE(PermissionMessageProvider::Get()->
1673 IsPrivilegeIncrease(permissions.get(), 1761 IsPrivilegeIncrease(permissions.get(),
1674 permissions_dwr.get(), 1762 permissions_dwr.get(),
1675 extension->GetType())); 1763 extension->GetType()));
1676 } 1764 }
1677 1765
1678 } // namespace extensions 1766 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698