| 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 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 hosted_perms.insert(ExtensionAPIPermission::kGeolocation); | 151 hosted_perms.insert(ExtensionAPIPermission::kGeolocation); |
| 152 hosted_perms.insert(ExtensionAPIPermission::kNotification); | 152 hosted_perms.insert(ExtensionAPIPermission::kNotification); |
| 153 hosted_perms.insert(ExtensionAPIPermission::kUnlimitedStorage); | 153 hosted_perms.insert(ExtensionAPIPermission::kUnlimitedStorage); |
| 154 hosted_perms.insert(ExtensionAPIPermission::kWebstorePrivate); | 154 hosted_perms.insert(ExtensionAPIPermission::kWebstorePrivate); |
| 155 | 155 |
| 156 ExtensionAPIPermissionSet perms = info->GetAll(); | 156 ExtensionAPIPermissionSet perms = info->GetAll(); |
| 157 size_t count = 0; | 157 size_t count = 0; |
| 158 for (ExtensionAPIPermissionSet::iterator i = perms.begin(); | 158 for (ExtensionAPIPermissionSet::iterator i = perms.begin(); |
| 159 i != perms.end(); ++i) { | 159 i != perms.end(); ++i) { |
| 160 count += hosted_perms.count(*i); | 160 count += hosted_perms.count(*i); |
| 161 EXPECT_EQ(hosted_perms.count(*i) > 0, info->GetByID(*i)->is_hosted_app()); | 161 EXPECT_EQ(hosted_perms.count(*i) > 0, |
| 162 info->GetByID(*i)->supports_hosted_apps()); |
| 162 } | 163 } |
| 163 | 164 |
| 164 EXPECT_EQ(hosted_perms.size(), count); | 165 EXPECT_EQ(hosted_perms.size(), count); |
| 165 EXPECT_EQ(hosted_perms.size(), info->get_hosted_app_permission_count()); | 166 } |
| 167 |
| 168 TEST(ExtensionAPIPermissionTest, PlatformAppPermissions) { |
| 169 ExtensionPermissionsInfo* info = ExtensionPermissionsInfo::GetInstance(); |
| 170 ExtensionAPIPermissionSet blacklist; |
| 171 blacklist.insert(ExtensionAPIPermission::kChromeAuthPrivate); |
| 172 blacklist.insert(ExtensionAPIPermission::kChromePrivate); |
| 173 blacklist.insert(ExtensionAPIPermission::kCookie); |
| 174 blacklist.insert(ExtensionAPIPermission::kTab); |
| 175 blacklist.insert(ExtensionAPIPermission::kWebNavigation); |
| 176 blacklist.insert(ExtensionAPIPermission::kWebRequest); |
| 177 blacklist.insert(ExtensionAPIPermission::kWebSocketProxyPrivate); |
| 178 |
| 179 ExtensionAPIPermissionSet perms = info->GetAll(); |
| 180 size_t count = 0; |
| 181 for (ExtensionAPIPermissionSet::iterator i = perms.begin(); |
| 182 i != perms.end(); ++i) { |
| 183 count += blacklist.count(*i); |
| 184 EXPECT_EQ(blacklist.count(*i) > 0, |
| 185 !info->GetByID(*i)->supports_platform_apps()); |
| 186 } |
| 187 |
| 188 EXPECT_EQ(blacklist.size(), count); |
| 166 } | 189 } |
| 167 | 190 |
| 168 TEST(ExtensionAPIPermissionTest, ComponentOnlyPermissions) { | 191 TEST(ExtensionAPIPermissionTest, ComponentOnlyPermissions) { |
| 169 ExtensionPermissionsInfo* info = ExtensionPermissionsInfo::GetInstance(); | 192 ExtensionPermissionsInfo* info = ExtensionPermissionsInfo::GetInstance(); |
| 170 ExtensionAPIPermissionSet private_perms; | 193 ExtensionAPIPermissionSet private_perms; |
| 171 private_perms.insert(ExtensionAPIPermission::kChromeAuthPrivate); | 194 private_perms.insert(ExtensionAPIPermission::kChromeAuthPrivate); |
| 172 private_perms.insert(ExtensionAPIPermission::kChromeosInfoPrivate); | 195 private_perms.insert(ExtensionAPIPermission::kChromeosInfoPrivate); |
| 173 private_perms.insert(ExtensionAPIPermission::kFileBrowserPrivate); | 196 private_perms.insert(ExtensionAPIPermission::kFileBrowserPrivate); |
| 174 private_perms.insert(ExtensionAPIPermission::kMediaPlayerPrivate); | 197 private_perms.insert(ExtensionAPIPermission::kMediaPlayerPrivate); |
| 175 private_perms.insert(ExtensionAPIPermission::kWebstorePrivate); | 198 private_perms.insert(ExtensionAPIPermission::kWebstorePrivate); |
| (...skipping 918 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1094 AddPattern(&non_empty_extent, "http://www.google.com/*"); | 1117 AddPattern(&non_empty_extent, "http://www.google.com/*"); |
| 1095 | 1118 |
| 1096 perm_set = new ExtensionPermissionSet( | 1119 perm_set = new ExtensionPermissionSet( |
| 1097 empty_apis, non_empty_extent, empty_extent); | 1120 empty_apis, non_empty_extent, empty_extent); |
| 1098 EXPECT_FALSE(perm_set->IsEmpty()); | 1121 EXPECT_FALSE(perm_set->IsEmpty()); |
| 1099 | 1122 |
| 1100 perm_set = new ExtensionPermissionSet( | 1123 perm_set = new ExtensionPermissionSet( |
| 1101 empty_apis, empty_extent, non_empty_extent); | 1124 empty_apis, empty_extent, non_empty_extent); |
| 1102 EXPECT_FALSE(perm_set->IsEmpty()); | 1125 EXPECT_FALSE(perm_set->IsEmpty()); |
| 1103 } | 1126 } |
| OLD | NEW |