Index: chrome/common/extensions/permissions/permission_set_unittest.cc |
diff --git a/chrome/common/extensions/permissions/permission_set_unittest.cc b/chrome/common/extensions/permissions/permission_set_unittest.cc |
index 9515ce6d4b03940ef4633fb4766b3635f78f1281..19d31cd668e5b7c712b2ef5d5dab4548e70c6e3b 100644 |
--- a/chrome/common/extensions/permissions/permission_set_unittest.cc |
+++ b/chrome/common/extensions/permissions/permission_set_unittest.cc |
@@ -23,6 +23,7 @@ |
#include "extensions/common/permissions/socket_permission.h" |
#include "extensions/common/value_builder.h" |
#include "grit/generated_resources.h" |
+#include "grit/extensions_strings.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "ui/base/l10n/l10n_util.h" |
@@ -910,6 +911,94 @@ TEST(PermissionsTest, SuppressedPermissionMessages) { |
} |
} |
+TEST(PermissionsTest, AccessToDevicesMessages) { |
+ { |
+ APIPermissionSet api_permissions; |
+ api_permissions.insert(APIPermission::kUsb); |
+ scoped_refptr<PermissionSet> permissions( |
+ new PermissionSet(api_permissions, |
+ ManifestPermissionSet(), |
+ URLPatternSet(), |
+ URLPatternSet())); |
+ std::vector<base::string16> messages = |
+ PermissionMessageProvider::Get()->GetWarningMessages( |
+ permissions, Manifest::TYPE_EXTENSION); |
+ EXPECT_EQ(1u, messages.size()); |
+ EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB), |
+ messages[0]); |
+ } |
+ { |
+ APIPermissionSet api_permissions; |
+ api_permissions.insert(APIPermission::kSerial); |
+ scoped_refptr<PermissionSet> permissions( |
+ new PermissionSet(api_permissions, |
+ ManifestPermissionSet(), |
+ URLPatternSet(), |
+ URLPatternSet())); |
+ std::vector<base::string16> messages = |
+ PermissionMessageProvider::Get()->GetWarningMessages( |
+ permissions, Manifest::TYPE_EXTENSION); |
+ EXPECT_EQ(1u, messages.size()); |
+ EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_SERIAL), |
+ messages[0]); |
+ } |
+ { |
+ APIPermissionSet api_permissions; |
+ api_permissions.insert(APIPermission::kUsb); |
+ api_permissions.insert(APIPermission::kSerial); |
+ scoped_refptr<PermissionSet> permissions( |
+ new PermissionSet(api_permissions, |
+ ManifestPermissionSet(), |
+ URLPatternSet(), |
+ URLPatternSet())); |
+ std::vector<base::string16> messages = |
+ PermissionMessageProvider::Get()->GetWarningMessages( |
+ permissions, Manifest::TYPE_EXTENSION); |
+ EXPECT_EQ(1u, messages.size()); |
+ EXPECT_EQ( |
+ l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_SERIAL), |
+ messages[0]); |
+ } |
+ { |
+ scoped_refptr<Extension> extension = |
+ LoadManifest("permissions", "access_to_devices_bluetooth.json"); |
+ const PermissionMessageProvider* provider = |
+ PermissionMessageProvider::Get(); |
+ PermissionSet* set = const_cast<PermissionSet*>( |
+ extension->permissions_data()->active_permissions().get()); |
+ std::vector<base::string16> warnings = |
+ provider->GetWarningMessages(set, extension->GetType()); |
+ EXPECT_EQ(1u, warnings.size()); |
+ EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH), |
+ warnings[0]); |
+ |
+ // Test Bluetooth and Serial |
+ set->apis_.insert(APIPermission::kSerial); |
+ warnings = provider->GetWarningMessages(set, extension->GetType()); |
+ EXPECT_EQ(1u, warnings.size()); |
+ EXPECT_EQ(l10n_util::GetStringUTF16( |
+ IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_SERIAL), |
+ warnings[0]); |
+ set->apis_.erase(APIPermission::kSerial); |
+ |
+ // Test USB and Bluetooth |
+ set->apis_.insert(APIPermission::kUsb); |
+ warnings = provider->GetWarningMessages(set, extension->GetType()); |
+ EXPECT_EQ(1u, warnings.size()); |
+ EXPECT_EQ( |
+ l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_BLUETOOTH), |
+ warnings[0]); |
+ |
+ // Test USB, Bluetooth and Serial |
+ set->apis_.insert(APIPermission::kSerial); |
+ warnings = provider->GetWarningMessages(set, extension->GetType()); |
+ EXPECT_EQ(1u, warnings.size()); |
+ EXPECT_EQ( |
+ l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_ALL_DEVICES), |
+ warnings[0]); |
+ } |
+} |
+ |
TEST(PermissionsTest, MergedFileSystemPermissionComparison) { |
APIPermissionSet write_api_permissions; |
write_api_permissions.insert(APIPermission::kFileSystemWrite); |
@@ -1102,8 +1191,7 @@ TEST(PermissionsTest, GetWarningMessages_Serial) { |
extension->permissions_data()->HasAPIPermission(APIPermission::kSerial)); |
std::vector<base::string16> warnings = |
extension->permissions_data()->GetPermissionMessageStrings(); |
- EXPECT_TRUE( |
- Contains(warnings, "Use serial devices attached to your computer")); |
+ EXPECT_TRUE(Contains(warnings, "Access your serial device(s)")); |
ASSERT_EQ(1u, warnings.size()); |
} |