| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/common/extensions/extension_permission_set.h" | 5 #include "chrome/common/extensions/extension_permission_set.h" |
| 6 | 6 |
| 7 #include "base/json/json_value_serializer.h" | 7 #include "base/json/json_value_serializer.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 135 ExtensionAPIPermission::kUnlimitedStorage)->name()); | 135 ExtensionAPIPermission::kUnlimitedStorage)->name()); |
| 136 EXPECT_EQ(ExtensionAPIPermission::kUnlimitedStorage, | 136 EXPECT_EQ(ExtensionAPIPermission::kUnlimitedStorage, |
| 137 info->GetByName("unlimitedStorage")->id()); | 137 info->GetByName("unlimitedStorage")->id()); |
| 138 EXPECT_EQ(ExtensionAPIPermission::kUnlimitedStorage, | 138 EXPECT_EQ(ExtensionAPIPermission::kUnlimitedStorage, |
| 139 info->GetByName("unlimited_storage")->id()); | 139 info->GetByName("unlimited_storage")->id()); |
| 140 } | 140 } |
| 141 | 141 |
| 142 TEST(ExtensionAPIPermissionTest, HostedAppPermissions) { | 142 TEST(ExtensionAPIPermissionTest, HostedAppPermissions) { |
| 143 ExtensionPermissionsInfo* info = ExtensionPermissionsInfo::GetInstance(); | 143 ExtensionPermissionsInfo* info = ExtensionPermissionsInfo::GetInstance(); |
| 144 ExtensionAPIPermissionSet hosted_perms; | 144 ExtensionAPIPermissionSet hosted_perms; |
| 145 hosted_perms.insert(ExtensionAPIPermission::kAppNotifications); |
| 145 hosted_perms.insert(ExtensionAPIPermission::kBackground); | 146 hosted_perms.insert(ExtensionAPIPermission::kBackground); |
| 146 hosted_perms.insert(ExtensionAPIPermission::kClipboardRead); | 147 hosted_perms.insert(ExtensionAPIPermission::kClipboardRead); |
| 147 hosted_perms.insert(ExtensionAPIPermission::kClipboardWrite); | 148 hosted_perms.insert(ExtensionAPIPermission::kClipboardWrite); |
| 148 hosted_perms.insert(ExtensionAPIPermission::kChromeAuthPrivate); | 149 hosted_perms.insert(ExtensionAPIPermission::kChromeAuthPrivate); |
| 149 hosted_perms.insert(ExtensionAPIPermission::kChromePrivate); | 150 hosted_perms.insert(ExtensionAPIPermission::kChromePrivate); |
| 150 hosted_perms.insert(ExtensionAPIPermission::kExperimental); | 151 hosted_perms.insert(ExtensionAPIPermission::kExperimental); |
| 151 hosted_perms.insert(ExtensionAPIPermission::kGeolocation); | 152 hosted_perms.insert(ExtensionAPIPermission::kGeolocation); |
| 152 hosted_perms.insert(ExtensionAPIPermission::kNotification); | 153 hosted_perms.insert(ExtensionAPIPermission::kNotification); |
| 153 hosted_perms.insert(ExtensionAPIPermission::kUnlimitedStorage); | 154 hosted_perms.insert(ExtensionAPIPermission::kUnlimitedStorage); |
| 154 hosted_perms.insert(ExtensionAPIPermission::kWebstorePrivate); | 155 hosted_perms.insert(ExtensionAPIPermission::kWebstorePrivate); |
| 155 | 156 |
| 156 ExtensionAPIPermissionSet perms = info->GetAll(); | 157 ExtensionAPIPermissionSet perms = info->GetAll(); |
| 157 size_t count = 0; | 158 size_t count = 0; |
| 158 for (ExtensionAPIPermissionSet::iterator i = perms.begin(); | 159 for (ExtensionAPIPermissionSet::iterator i = perms.begin(); |
| 159 i != perms.end(); ++i) { | 160 i != perms.end(); ++i) { |
| 160 count += hosted_perms.count(*i); | 161 count += hosted_perms.count(*i); |
| 161 EXPECT_EQ(hosted_perms.count(*i) > 0, | 162 EXPECT_EQ(hosted_perms.count(*i) > 0, |
| 162 info->GetByID(*i)->supports_hosted_apps()); | 163 info->GetByID(*i)->supports_hosted_apps()); |
| 163 } | 164 } |
| 164 | 165 |
| 165 EXPECT_EQ(hosted_perms.size(), count); | 166 EXPECT_EQ(hosted_perms.size(), count); |
| 166 } | 167 } |
| 167 | 168 |
| 168 TEST(ExtensionAPIPermissionTest, PlatformAppPermissions) { | 169 TEST(ExtensionAPIPermissionTest, PlatformAppPermissions) { |
| 169 ExtensionPermissionsInfo* info = ExtensionPermissionsInfo::GetInstance(); | 170 ExtensionPermissionsInfo* info = ExtensionPermissionsInfo::GetInstance(); |
| 170 ExtensionAPIPermissionSet blacklist; | 171 ExtensionAPIPermissionSet blacklist; |
| 172 blacklist.insert(ExtensionAPIPermission::kAppNotifications); |
| 171 blacklist.insert(ExtensionAPIPermission::kChromeAuthPrivate); | 173 blacklist.insert(ExtensionAPIPermission::kChromeAuthPrivate); |
| 172 blacklist.insert(ExtensionAPIPermission::kChromePrivate); | 174 blacklist.insert(ExtensionAPIPermission::kChromePrivate); |
| 173 blacklist.insert(ExtensionAPIPermission::kCookie); | 175 blacklist.insert(ExtensionAPIPermission::kCookie); |
| 174 blacklist.insert(ExtensionAPIPermission::kTab); | 176 blacklist.insert(ExtensionAPIPermission::kTab); |
| 175 blacklist.insert(ExtensionAPIPermission::kWebNavigation); | 177 blacklist.insert(ExtensionAPIPermission::kWebNavigation); |
| 176 blacklist.insert(ExtensionAPIPermission::kWebRequest); | 178 blacklist.insert(ExtensionAPIPermission::kWebRequest); |
| 177 blacklist.insert(ExtensionAPIPermission::kWebRequestBlocking); | 179 blacklist.insert(ExtensionAPIPermission::kWebRequestBlocking); |
| 178 blacklist.insert(ExtensionAPIPermission::kWebSocketProxyPrivate); | 180 blacklist.insert(ExtensionAPIPermission::kWebSocketProxyPrivate); |
| 179 | 181 |
| 180 ExtensionAPIPermissionSet perms = info->GetAll(); | 182 ExtensionAPIPermissionSet perms = info->GetAll(); |
| (...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 622 } | 624 } |
| 623 } | 625 } |
| 624 | 626 |
| 625 TEST(ExtensionPermissionSetTest, PermissionMessages) { | 627 TEST(ExtensionPermissionSetTest, PermissionMessages) { |
| 626 // Ensure that all permissions that needs to show install UI actually have | 628 // Ensure that all permissions that needs to show install UI actually have |
| 627 // strings associated with them. | 629 // strings associated with them. |
| 628 ExtensionAPIPermissionSet skip; | 630 ExtensionAPIPermissionSet skip; |
| 629 | 631 |
| 630 // These are considered "nuisance" or "trivial" permissions that don't need | 632 // These are considered "nuisance" or "trivial" permissions that don't need |
| 631 // a prompt. | 633 // a prompt. |
| 634 skip.insert(ExtensionAPIPermission::kAppNotifications); |
| 632 skip.insert(ExtensionAPIPermission::kContextMenus); | 635 skip.insert(ExtensionAPIPermission::kContextMenus); |
| 633 skip.insert(ExtensionAPIPermission::kIdle); | 636 skip.insert(ExtensionAPIPermission::kIdle); |
| 634 skip.insert(ExtensionAPIPermission::kNotification); | 637 skip.insert(ExtensionAPIPermission::kNotification); |
| 635 skip.insert(ExtensionAPIPermission::kUnlimitedStorage); | 638 skip.insert(ExtensionAPIPermission::kUnlimitedStorage); |
| 636 skip.insert(ExtensionAPIPermission::kTts); | 639 skip.insert(ExtensionAPIPermission::kTts); |
| 637 | 640 |
| 638 // TODO(erikkay) add a string for this permission. | 641 // TODO(erikkay) add a string for this permission. |
| 639 skip.insert(ExtensionAPIPermission::kBackground); | 642 skip.insert(ExtensionAPIPermission::kBackground); |
| 640 | 643 |
| 641 skip.insert(ExtensionAPIPermission::kClipboardWrite); | 644 skip.insert(ExtensionAPIPermission::kClipboardWrite); |
| (...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1122 AddPattern(&non_empty_extent, "http://www.google.com/*"); | 1125 AddPattern(&non_empty_extent, "http://www.google.com/*"); |
| 1123 | 1126 |
| 1124 perm_set = new ExtensionPermissionSet( | 1127 perm_set = new ExtensionPermissionSet( |
| 1125 empty_apis, non_empty_extent, empty_extent); | 1128 empty_apis, non_empty_extent, empty_extent); |
| 1126 EXPECT_FALSE(perm_set->IsEmpty()); | 1129 EXPECT_FALSE(perm_set->IsEmpty()); |
| 1127 | 1130 |
| 1128 perm_set = new ExtensionPermissionSet( | 1131 perm_set = new ExtensionPermissionSet( |
| 1129 empty_apis, empty_extent, non_empty_extent); | 1132 empty_apis, empty_extent, non_empty_extent); |
| 1130 EXPECT_FALSE(perm_set->IsEmpty()); | 1133 EXPECT_FALSE(perm_set->IsEmpty()); |
| 1131 } | 1134 } |
| OLD | NEW |