Chromium Code Reviews| 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..37027f24c913925627c2d1f34305fab703b5f38f 100644 |
| --- a/chrome/common/extensions/permissions/permission_set_unittest.cc |
| +++ b/chrome/common/extensions/permissions/permission_set_unittest.cc |
| @@ -910,6 +910,102 @@ TEST(PermissionsTest, SuppressedPermissionMessages) { |
| } |
| } |
| +TEST(PermissionsTest, AccessToDevicesMessages) { |
| + { |
| + APIPermissionSet api_permissions; |
| + api_permissions.insert(APIPermission::kHid); |
| + api_permissions.insert(APIPermission::kSerial); |
|
meacer
2014/07/03 01:04:11
As I mentioned earlier, I think you could leave ou
|
| + 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_DEVICES), |
| + 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]); |
| + } |
| + { |
| + APIPermissionSet api_permissions; |
| + api_permissions.insert(APIPermission::kUsb); |
| + api_permissions.insert(APIPermission::kHid); |
| + 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_HID), |
| + 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 HID and Bluetooth |
| + set->apis_.insert(APIPermission::kHid); |
| + warnings = provider->GetWarningMessages(set, extension->GetType()); |
| + EXPECT_EQ(1u, warnings.size()); |
| + EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_HID), |
| + warnings[0]); |
| + set->apis_.erase(APIPermission::kHid); |
| + |
| + // 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_HID), |
| + 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_DEVICES), |
| + warnings[0]); |
| + } |
| +} |
| + |
| TEST(PermissionsTest, MergedFileSystemPermissionComparison) { |
| APIPermissionSet write_api_permissions; |
| write_api_permissions.insert(APIPermission::kFileSystemWrite); |