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

Side by Side Diff: chrome/browser/supervised_user/supervised_user_service_unittest.cc

Issue 401643002: Apps&Extensions for supervised users: Add test for WAS_INSTALLED_BY_CUSTODIAN flag. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/path_service.h" 5 #include "base/path_service.h"
6 #include "base/prefs/pref_service.h" 6 #include "base/prefs/pref_service.h"
7 #include "base/prefs/scoped_user_pref_update.h" 7 #include "base/prefs/scoped_user_pref_update.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/chrome_notification_types.h" 9 #include "chrome/browser/chrome_notification_types.h"
10 #include "chrome/browser/extensions/extension_service.h" 10 #include "chrome/browser/extensions/extension_service.h"
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 scoped_ptr<base::DictionaryValue> source(new base::DictionaryValue()); 194 scoped_ptr<base::DictionaryValue> source(new base::DictionaryValue());
195 source->SetString(extensions::manifest_keys::kName, "Theme"); 195 source->SetString(extensions::manifest_keys::kName, "Theme");
196 source->Set(extensions::manifest_keys::kTheme, new base::DictionaryValue()); 196 source->Set(extensions::manifest_keys::kTheme, new base::DictionaryValue());
197 source->SetString(extensions::manifest_keys::kVersion, "1.0"); 197 source->SetString(extensions::manifest_keys::kVersion, "1.0");
198 extensions::ExtensionBuilder builder; 198 extensions::ExtensionBuilder builder;
199 scoped_refptr<extensions::Extension> extension = 199 scoped_refptr<extensions::Extension> extension =
200 builder.SetManifest(source.Pass()).Build(); 200 builder.SetManifest(source.Pass()).Build();
201 return extension; 201 return extension;
202 } 202 }
203 203
204 scoped_refptr<extensions::Extension> MakeExtension() { 204 scoped_refptr<extensions::Extension> MakeExtension(bool by_custodian) {
205 scoped_ptr<base::DictionaryValue> manifest = extensions::DictionaryBuilder() 205 scoped_ptr<base::DictionaryValue> manifest = extensions::DictionaryBuilder()
206 .Set(extensions::manifest_keys::kName, "Extension") 206 .Set(extensions::manifest_keys::kName, "Extension")
207 .Set(extensions::manifest_keys::kVersion, "1.0") 207 .Set(extensions::manifest_keys::kVersion, "1.0")
208 .Build(); 208 .Build();
209 int creation_flags = extensions::Extension::NO_FLAGS;
210 if (by_custodian)
211 creation_flags |= extensions::Extension::WAS_INSTALLED_BY_CUSTODIAN;
209 extensions::ExtensionBuilder builder; 212 extensions::ExtensionBuilder builder;
210 scoped_refptr<extensions::Extension> extension = 213 scoped_refptr<extensions::Extension> extension =
211 builder.SetManifest(manifest.Pass()).Build(); 214 builder.SetManifest(manifest.Pass()).AddFlags(creation_flags).Build();
212 return extension; 215 return extension;
213 } 216 }
214 217
215 bool is_supervised_; 218 bool is_supervised_;
216 extensions::ScopedCurrentChannel channel_; 219 extensions::ScopedCurrentChannel channel_;
217 }; 220 };
218 221
219 class SupervisedUserServiceExtensionTestUnsupervised 222 class SupervisedUserServiceExtensionTestUnsupervised
220 : public SupervisedUserServiceExtensionTestBase { 223 : public SupervisedUserServiceExtensionTestBase {
221 public: 224 public:
222 SupervisedUserServiceExtensionTestUnsupervised() 225 SupervisedUserServiceExtensionTestUnsupervised()
223 : SupervisedUserServiceExtensionTestBase(false) {} 226 : SupervisedUserServiceExtensionTestBase(false) {}
224 }; 227 };
225 228
226 class SupervisedUserServiceExtensionTest 229 class SupervisedUserServiceExtensionTest
227 : public SupervisedUserServiceExtensionTestBase { 230 : public SupervisedUserServiceExtensionTestBase {
228 public: 231 public:
229 SupervisedUserServiceExtensionTest() 232 SupervisedUserServiceExtensionTest()
230 : SupervisedUserServiceExtensionTestBase(true) {} 233 : SupervisedUserServiceExtensionTestBase(true) {}
231 }; 234 };
232 235
233 TEST_F(SupervisedUserServiceExtensionTestUnsupervised, 236 TEST_F(SupervisedUserServiceExtensionTestUnsupervised,
234 ExtensionManagementPolicyProvider) { 237 ExtensionManagementPolicyProvider) {
235 SupervisedUserService* supervised_user_service = 238 SupervisedUserService* supervised_user_service =
236 SupervisedUserServiceFactory::GetForProfile(profile_.get()); 239 SupervisedUserServiceFactory::GetForProfile(profile_.get());
237 EXPECT_FALSE(profile_->IsSupervised()); 240 EXPECT_FALSE(profile_->IsSupervised());
238 241
239 scoped_refptr<extensions::Extension> extension = MakeExtension(); 242 scoped_refptr<extensions::Extension> extension = MakeExtension(false);
240 base::string16 error_1; 243 base::string16 error_1;
241 EXPECT_TRUE(supervised_user_service->UserMayLoad(extension.get(), &error_1)); 244 EXPECT_TRUE(supervised_user_service->UserMayLoad(extension.get(), &error_1));
242 EXPECT_EQ(base::string16(), error_1); 245 EXPECT_EQ(base::string16(), error_1);
243 246
244 base::string16 error_2; 247 base::string16 error_2;
245 EXPECT_TRUE( 248 EXPECT_TRUE(
246 supervised_user_service->UserMayModifySettings(extension.get(), 249 supervised_user_service->UserMayModifySettings(extension.get(),
247 &error_2)); 250 &error_2));
248 EXPECT_EQ(base::string16(), error_2); 251 EXPECT_EQ(base::string16(), error_2);
249 } 252 }
(...skipping 10 matching lines...) Expand all
260 // Check that a supervised user can install a theme. 263 // Check that a supervised user can install a theme.
261 scoped_refptr<extensions::Extension> theme = MakeThemeExtension(); 264 scoped_refptr<extensions::Extension> theme = MakeThemeExtension();
262 base::string16 error_1; 265 base::string16 error_1;
263 EXPECT_TRUE(supervised_user_service->UserMayLoad(theme.get(), &error_1)); 266 EXPECT_TRUE(supervised_user_service->UserMayLoad(theme.get(), &error_1));
264 EXPECT_TRUE(error_1.empty()); 267 EXPECT_TRUE(error_1.empty());
265 EXPECT_TRUE( 268 EXPECT_TRUE(
266 supervised_user_service->UserMayModifySettings(theme.get(), &error_1)); 269 supervised_user_service->UserMayModifySettings(theme.get(), &error_1));
267 EXPECT_TRUE(error_1.empty()); 270 EXPECT_TRUE(error_1.empty());
268 271
269 // Now check a different kind of extension. 272 // Now check a different kind of extension.
270 scoped_refptr<extensions::Extension> extension = MakeExtension(); 273 scoped_refptr<extensions::Extension> extension = MakeExtension(false);
271 EXPECT_FALSE(supervised_user_service->UserMayLoad(extension.get(), &error_1)); 274 EXPECT_FALSE(supervised_user_service->UserMayLoad(extension.get(), &error_1));
272 EXPECT_FALSE(error_1.empty()); 275 EXPECT_FALSE(error_1.empty());
273 276
274 base::string16 error_2; 277 base::string16 error_2;
275 EXPECT_FALSE( 278 EXPECT_FALSE(supervised_user_service->UserMayModifySettings(extension.get(),
276 supervised_user_service->UserMayModifySettings(extension.get(), 279 &error_2));
277 &error_2));
278 EXPECT_FALSE(error_2.empty()); 280 EXPECT_FALSE(error_2.empty());
279 281
282 // Check that an extension that was installed by the custodian may be loaded.
283 base::string16 error_3;
284 scoped_refptr<extensions::Extension> extension_2 = MakeExtension(true);
285 EXPECT_TRUE(supervised_user_service->UserMayLoad(extension_2.get(),
286 &error_3));
287 EXPECT_TRUE(error_3.empty());
288
289 // The supervised user should still not be able to uninstall or disable the
290 // extension.
291 base::string16 error_4;
292 EXPECT_FALSE(supervised_user_service->UserMayModifySettings(extension_2.get(),
293 &error_4));
294 EXPECT_FALSE(error_4.empty());
295
280 #ifndef NDEBUG 296 #ifndef NDEBUG
281 EXPECT_FALSE(supervised_user_service->GetDebugPolicyProviderName().empty()); 297 EXPECT_FALSE(supervised_user_service->GetDebugPolicyProviderName().empty());
282 #endif 298 #endif
283 } 299 }
284 300
285 TEST_F(SupervisedUserServiceExtensionTest, NoContentPacks) { 301 TEST_F(SupervisedUserServiceExtensionTest, NoContentPacks) {
286 SupervisedUserService* supervised_user_service = 302 SupervisedUserService* supervised_user_service =
287 SupervisedUserServiceFactory::GetForProfile(profile_.get()); 303 SupervisedUserServiceFactory::GetForProfile(profile_.get());
288 SupervisedUserURLFilter* url_filter = 304 SupervisedUserURLFilter* url_filter =
289 supervised_user_service->GetURLFilterForUIThread(); 305 supervised_user_service->GetURLFilterForUIThread();
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 site_lists[0]->GetSites(&sites); 414 site_lists[0]->GetSites(&sites);
399 ASSERT_EQ(1u, sites.size()); 415 ASSERT_EQ(1u, sites.size());
400 EXPECT_EQ(base::ASCIIToUTF16("Moose"), sites[0].name); 416 EXPECT_EQ(base::ASCIIToUTF16("Moose"), sites[0].name);
401 417
402 EXPECT_EQ(SupervisedUserURLFilter::WARN, 418 EXPECT_EQ(SupervisedUserURLFilter::WARN,
403 url_filter->GetFilteringBehaviorForURL(example_url)); 419 url_filter->GetFilteringBehaviorForURL(example_url));
404 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 420 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
405 url_filter->GetFilteringBehaviorForURL(moose_url)); 421 url_filter->GetFilteringBehaviorForURL(moose_url));
406 } 422 }
407 #endif // !defined(OS_ANDROID) 423 #endif // !defined(OS_ANDROID)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698