Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(427)

Side by Side Diff: chrome/browser/extensions/permissions_updater_unittest.cc

Issue 51433002: Enable permission warnings from ManifestHandlers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address code review comments. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 // AddPermissions. 112 // AddPermissions.
113 TEST_F(PermissionsUpdaterTest, AddAndRemovePermissions) { 113 TEST_F(PermissionsUpdaterTest, AddAndRemovePermissions) {
114 InitializeEmptyExtensionService(); 114 InitializeEmptyExtensionService();
115 115
116 // Load the test extension. 116 // Load the test extension.
117 scoped_refptr<Extension> extension = LoadOurManifest(); 117 scoped_refptr<Extension> extension = LoadOurManifest();
118 ASSERT_TRUE(extension.get()); 118 ASSERT_TRUE(extension.get());
119 119
120 APIPermissionSet default_apis; 120 APIPermissionSet default_apis;
121 default_apis.insert(APIPermission::kManagement); 121 default_apis.insert(APIPermission::kManagement);
122 ManifestPermissionSet empty_manifest_permissions;
123
122 URLPatternSet default_hosts; 124 URLPatternSet default_hosts;
123 AddPattern(&default_hosts, "http://a.com/*"); 125 AddPattern(&default_hosts, "http://a.com/*");
124 scoped_refptr<PermissionSet> default_permissions = 126 scoped_refptr<PermissionSet> default_permissions =
125 new PermissionSet(default_apis, default_hosts, URLPatternSet()); 127 new PermissionSet(default_apis, empty_manifest_permissions,
128 default_hosts, URLPatternSet());
126 129
127 // Make sure it loaded properly. 130 // Make sure it loaded properly.
128 scoped_refptr<const PermissionSet> permissions = 131 scoped_refptr<const PermissionSet> permissions =
129 extension->GetActivePermissions(); 132 extension->GetActivePermissions();
130 ASSERT_EQ(*default_permissions.get(), 133 ASSERT_EQ(*default_permissions.get(),
131 *extension->GetActivePermissions().get()); 134 *extension->GetActivePermissions().get());
132 135
133 // Add a few permissions. 136 // Add a few permissions.
134 APIPermissionSet apis; 137 APIPermissionSet apis;
135 apis.insert(APIPermission::kTab); 138 apis.insert(APIPermission::kTab);
136 apis.insert(APIPermission::kNotification); 139 apis.insert(APIPermission::kNotification);
137 URLPatternSet hosts; 140 URLPatternSet hosts;
138 AddPattern(&hosts, "http://*.c.com/*"); 141 AddPattern(&hosts, "http://*.c.com/*");
139 142
140 scoped_refptr<PermissionSet> delta = 143 scoped_refptr<PermissionSet> delta =
141 new PermissionSet(apis, hosts, URLPatternSet()); 144 new PermissionSet(apis, empty_manifest_permissions,
145 hosts, URLPatternSet());
142 146
143 PermissionsUpdaterListener listener; 147 PermissionsUpdaterListener listener;
144 PermissionsUpdater updater(profile_.get()); 148 PermissionsUpdater updater(profile_.get());
145 updater.AddPermissions(extension.get(), delta.get()); 149 updater.AddPermissions(extension.get(), delta.get());
146 150
147 listener.Wait(); 151 listener.Wait();
148 152
149 // Verify that the permission notification was sent correctly. 153 // Verify that the permission notification was sent correctly.
150 ASSERT_TRUE(listener.received_notification()); 154 ASSERT_TRUE(listener.received_notification());
151 ASSERT_EQ(extension, listener.extension()); 155 ASSERT_EQ(extension, listener.extension());
(...skipping 16 matching lines...) Expand all
168 scoped_refptr<PermissionSet> from_prefs = 172 scoped_refptr<PermissionSet> from_prefs =
169 prefs->GetActivePermissions(extension->id()); 173 prefs->GetActivePermissions(extension->id());
170 ASSERT_EQ(*active_permissions.get(), *from_prefs.get()); 174 ASSERT_EQ(*active_permissions.get(), *from_prefs.get());
171 175
172 from_prefs = prefs->GetGrantedPermissions(extension->id()); 176 from_prefs = prefs->GetGrantedPermissions(extension->id());
173 ASSERT_EQ(*active_permissions.get(), *from_prefs.get()); 177 ASSERT_EQ(*active_permissions.get(), *from_prefs.get());
174 178
175 // In the second part of the test, we'll remove the permissions that we 179 // In the second part of the test, we'll remove the permissions that we
176 // just added except for 'notification'. 180 // just added except for 'notification'.
177 apis.erase(APIPermission::kNotification); 181 apis.erase(APIPermission::kNotification);
178 delta = new PermissionSet(apis, hosts, URLPatternSet()); 182 delta = new PermissionSet(apis, empty_manifest_permissions,
183 hosts, URLPatternSet());
179 184
180 listener.Reset(); 185 listener.Reset();
181 updater.RemovePermissions(extension.get(), delta.get()); 186 updater.RemovePermissions(extension.get(), delta.get());
182 listener.Wait(); 187 listener.Wait();
183 188
184 // Verify that the notification was correct. 189 // Verify that the notification was correct.
185 ASSERT_TRUE(listener.received_notification()); 190 ASSERT_TRUE(listener.received_notification());
186 ASSERT_EQ(extension, listener.extension()); 191 ASSERT_EQ(extension, listener.extension());
187 ASSERT_EQ(UpdatedExtensionPermissionsInfo::REMOVED, listener.reason()); 192 ASSERT_EQ(UpdatedExtensionPermissionsInfo::REMOVED, listener.reason());
188 ASSERT_EQ(*delta.get(), *listener.permissions()); 193 ASSERT_EQ(*delta.get(), *listener.permissions());
189 194
190 // Make sure the extension's active permissions reflect the change. 195 // Make sure the extension's active permissions reflect the change.
191 active_permissions = 196 active_permissions =
192 PermissionSet::CreateDifference(active_permissions.get(), delta.get()); 197 PermissionSet::CreateDifference(active_permissions.get(), delta.get());
193 ASSERT_EQ(*active_permissions.get(), 198 ASSERT_EQ(*active_permissions.get(),
194 *extension->GetActivePermissions().get()); 199 *extension->GetActivePermissions().get());
195 200
196 // Verify that the extension prefs hold the new active permissions and the 201 // Verify that the extension prefs hold the new active permissions and the
197 // same granted permissions. 202 // same granted permissions.
198 from_prefs = prefs->GetActivePermissions(extension->id()); 203 from_prefs = prefs->GetActivePermissions(extension->id());
199 ASSERT_EQ(*active_permissions.get(), *from_prefs.get()); 204 ASSERT_EQ(*active_permissions.get(), *from_prefs.get());
200 205
201 from_prefs = prefs->GetGrantedPermissions(extension->id()); 206 from_prefs = prefs->GetGrantedPermissions(extension->id());
202 ASSERT_EQ(*granted_permissions.get(), *from_prefs.get()); 207 ASSERT_EQ(*granted_permissions.get(), *from_prefs.get());
203 } 208 }
204 209
205 } // namespace extensions 210 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698