| 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 c9f238195410de29046b1390b93e596003fe0a03..b56a98e7a235349ced6791866cbd5b045e2086d9 100644
|
| --- a/chrome/common/extensions/permissions/permission_set_unittest.cc
|
| +++ b/chrome/common/extensions/permissions/permission_set_unittest.cc
|
| @@ -22,6 +22,7 @@
|
| #include "extensions/common/permissions/permissions_info.h"
|
| #include "extensions/common/permissions/socket_permission.h"
|
| #include "extensions/common/value_builder.h"
|
| +#include "grit/extensions_strings.h"
|
| #include "grit/generated_resources.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| @@ -911,6 +912,130 @@ 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]);
|
| + }
|
| + {
|
| + // Testing that multiple permissions will show the one message.
|
| + APIPermissionSet api_permissions;
|
| + api_permissions.insert(APIPermission::kUsb);
|
| + 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]);
|
| + }
|
| + {
|
| + // Testing that the same permission(s) will show one message.
|
| + APIPermissionSet api_permissions;
|
| + api_permissions.insert(APIPermission::kUsb);
|
| + api_permissions.insert(APIPermission::kSerial);
|
| + 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_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);
|
| @@ -1103,8 +1228,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 devices"));
|
| ASSERT_EQ(1u, warnings.size());
|
| }
|
|
|
|
|