OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/files/file_path.h" | 5 #include "base/files/file_path.h" |
6 #include "base/json/json_file_value_serializer.h" | 6 #include "base/json/json_file_value_serializer.h" |
7 #include "base/memory/ref_counted.h" | 7 #include "base/memory/ref_counted.h" |
8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 APIPermissionSet default_apis; | 120 APIPermissionSet default_apis; |
121 default_apis.insert(APIPermission::kManagement); | 121 default_apis.insert(APIPermission::kManagement); |
122 URLPatternSet default_hosts; | 122 URLPatternSet default_hosts; |
123 AddPattern(&default_hosts, "http://a.com/*"); | 123 AddPattern(&default_hosts, "http://a.com/*"); |
124 scoped_refptr<PermissionSet> default_permissions = | 124 scoped_refptr<PermissionSet> default_permissions = |
125 new PermissionSet(default_apis, default_hosts, URLPatternSet()); | 125 new PermissionSet(default_apis, default_hosts, URLPatternSet()); |
126 | 126 |
127 // Make sure it loaded properly. | 127 // Make sure it loaded properly. |
128 scoped_refptr<const PermissionSet> permissions = | 128 scoped_refptr<const PermissionSet> permissions = |
129 extension->GetActivePermissions(); | 129 extension->GetActivePermissions(); |
130 ASSERT_EQ(*default_permissions.get(), *extension->GetActivePermissions()); | 130 ASSERT_EQ(*default_permissions.get(), |
| 131 *extension->GetActivePermissions().get()); |
131 | 132 |
132 // Add a few permissions. | 133 // Add a few permissions. |
133 APIPermissionSet apis; | 134 APIPermissionSet apis; |
134 apis.insert(APIPermission::kTab); | 135 apis.insert(APIPermission::kTab); |
135 apis.insert(APIPermission::kNotification); | 136 apis.insert(APIPermission::kNotification); |
136 URLPatternSet hosts; | 137 URLPatternSet hosts; |
137 AddPattern(&hosts, "http://*.c.com/*"); | 138 AddPattern(&hosts, "http://*.c.com/*"); |
138 | 139 |
139 scoped_refptr<PermissionSet> delta = | 140 scoped_refptr<PermissionSet> delta = |
140 new PermissionSet(apis, hosts, URLPatternSet()); | 141 new PermissionSet(apis, hosts, URLPatternSet()); |
141 | 142 |
142 PermissionsUpdaterListener listener; | 143 PermissionsUpdaterListener listener; |
143 PermissionsUpdater updater(profile_.get()); | 144 PermissionsUpdater updater(profile_.get()); |
144 updater.AddPermissions(extension.get(), delta.get()); | 145 updater.AddPermissions(extension.get(), delta.get()); |
145 | 146 |
146 listener.Wait(); | 147 listener.Wait(); |
147 | 148 |
148 // Verify that the permission notification was sent correctly. | 149 // Verify that the permission notification was sent correctly. |
149 ASSERT_TRUE(listener.received_notification()); | 150 ASSERT_TRUE(listener.received_notification()); |
150 ASSERT_EQ(extension, listener.extension()); | 151 ASSERT_EQ(extension, listener.extension()); |
151 ASSERT_EQ(UpdatedExtensionPermissionsInfo::ADDED, listener.reason()); | 152 ASSERT_EQ(UpdatedExtensionPermissionsInfo::ADDED, listener.reason()); |
152 ASSERT_EQ(*delta.get(), *listener.permissions()); | 153 ASSERT_EQ(*delta.get(), *listener.permissions()); |
153 | 154 |
154 // Make sure the extension's active permissions reflect the change. | 155 // Make sure the extension's active permissions reflect the change. |
155 scoped_refptr<PermissionSet> active_permissions = | 156 scoped_refptr<PermissionSet> active_permissions = |
156 PermissionSet::CreateUnion(default_permissions.get(), delta.get()); | 157 PermissionSet::CreateUnion(default_permissions.get(), delta.get()); |
157 ASSERT_EQ(*active_permissions.get(), *extension->GetActivePermissions()); | 158 ASSERT_EQ(*active_permissions.get(), |
| 159 *extension->GetActivePermissions().get()); |
158 | 160 |
159 // Verify that the new granted and active permissions were also stored | 161 // Verify that the new granted and active permissions were also stored |
160 // in the extension preferences. In this case, the granted permissions should | 162 // in the extension preferences. In this case, the granted permissions should |
161 // be equal to the active permissions. | 163 // be equal to the active permissions. |
162 ExtensionPrefs* prefs = service_->extension_prefs(); | 164 ExtensionPrefs* prefs = service_->extension_prefs(); |
163 scoped_refptr<PermissionSet> granted_permissions = | 165 scoped_refptr<PermissionSet> granted_permissions = |
164 active_permissions; | 166 active_permissions; |
165 | 167 |
166 scoped_refptr<PermissionSet> from_prefs = | 168 scoped_refptr<PermissionSet> from_prefs = |
167 prefs->GetActivePermissions(extension->id()); | 169 prefs->GetActivePermissions(extension->id()); |
(...skipping 13 matching lines...) Expand all Loading... |
181 | 183 |
182 // Verify that the notification was correct. | 184 // Verify that the notification was correct. |
183 ASSERT_TRUE(listener.received_notification()); | 185 ASSERT_TRUE(listener.received_notification()); |
184 ASSERT_EQ(extension, listener.extension()); | 186 ASSERT_EQ(extension, listener.extension()); |
185 ASSERT_EQ(UpdatedExtensionPermissionsInfo::REMOVED, listener.reason()); | 187 ASSERT_EQ(UpdatedExtensionPermissionsInfo::REMOVED, listener.reason()); |
186 ASSERT_EQ(*delta.get(), *listener.permissions()); | 188 ASSERT_EQ(*delta.get(), *listener.permissions()); |
187 | 189 |
188 // Make sure the extension's active permissions reflect the change. | 190 // Make sure the extension's active permissions reflect the change. |
189 active_permissions = | 191 active_permissions = |
190 PermissionSet::CreateDifference(active_permissions.get(), delta.get()); | 192 PermissionSet::CreateDifference(active_permissions.get(), delta.get()); |
191 ASSERT_EQ(*active_permissions.get(), *extension->GetActivePermissions()); | 193 ASSERT_EQ(*active_permissions.get(), |
| 194 *extension->GetActivePermissions().get()); |
192 | 195 |
193 // Verify that the extension prefs hold the new active permissions and the | 196 // Verify that the extension prefs hold the new active permissions and the |
194 // same granted permissions. | 197 // same granted permissions. |
195 from_prefs = prefs->GetActivePermissions(extension->id()); | 198 from_prefs = prefs->GetActivePermissions(extension->id()); |
196 ASSERT_EQ(*active_permissions.get(), *from_prefs.get()); | 199 ASSERT_EQ(*active_permissions.get(), *from_prefs.get()); |
197 | 200 |
198 from_prefs = prefs->GetGrantedPermissions(extension->id()); | 201 from_prefs = prefs->GetGrantedPermissions(extension->id()); |
199 ASSERT_EQ(*granted_permissions.get(), *from_prefs.get()); | 202 ASSERT_EQ(*granted_permissions.get(), *from_prefs.get()); |
200 } | 203 } |
201 | 204 |
202 } // namespace extensions | 205 } // namespace extensions |
OLD | NEW |