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 |