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

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

Issue 925563002: Supervised users: Slightly relax restrictions around extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@test_ext_install_disable
Patch Set: rebase Created 5 years, 9 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
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/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/path_service.h" 6 #include "base/path_service.h"
7 #include "base/prefs/pref_service.h" 7 #include "base/prefs/pref_service.h"
8 #include "base/prefs/scoped_user_pref_update.h" 8 #include "base/prefs/scoped_user_pref_update.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "chrome/browser/chrome_notification_types.h" 10 #include "chrome/browser/chrome_notification_types.h"
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 : SupervisedUserServiceExtensionTestBase(false) {} 420 : SupervisedUserServiceExtensionTestBase(false) {}
421 }; 421 };
422 422
423 class SupervisedUserServiceExtensionTest 423 class SupervisedUserServiceExtensionTest
424 : public SupervisedUserServiceExtensionTestBase { 424 : public SupervisedUserServiceExtensionTestBase {
425 public: 425 public:
426 SupervisedUserServiceExtensionTest() 426 SupervisedUserServiceExtensionTest()
427 : SupervisedUserServiceExtensionTestBase(true) {} 427 : SupervisedUserServiceExtensionTestBase(true) {}
428 }; 428 };
429 429
430 TEST_F(SupervisedUserServiceExtensionTestUnsupervised,
431 ExtensionManagementPolicyProvider) {
432 SupervisedUserService* supervised_user_service =
433 SupervisedUserServiceFactory::GetForProfile(profile_.get());
434 EXPECT_FALSE(profile_->IsSupervised());
435
436 scoped_refptr<extensions::Extension> extension = MakeExtension(false);
437 base::string16 error_1;
438 EXPECT_TRUE(supervised_user_service->UserMayLoad(extension.get(), &error_1));
439 EXPECT_EQ(base::string16(), error_1);
440
441 base::string16 error_2;
442 EXPECT_TRUE(
443 supervised_user_service->UserMayModifySettings(extension.get(),
444 &error_2));
445 EXPECT_EQ(base::string16(), error_2);
446 }
447
448 TEST_F(SupervisedUserServiceExtensionTest, ExtensionManagementPolicyProvider) { 430 TEST_F(SupervisedUserServiceExtensionTest, ExtensionManagementPolicyProvider) {
449 SupervisedUserService* supervised_user_service = 431 SupervisedUserService* supervised_user_service =
450 SupervisedUserServiceFactory::GetForProfile(profile_.get()); 432 SupervisedUserServiceFactory::GetForProfile(profile_.get());
451 ASSERT_TRUE(profile_->IsSupervised()); 433 ASSERT_TRUE(profile_->IsSupervised());
452 434
453 // Check that a supervised user can install a theme. 435 // Check that a supervised user can install and uninstall a theme.
454 scoped_refptr<extensions::Extension> theme = MakeThemeExtension(); 436 {
455 base::string16 error_1; 437 scoped_refptr<extensions::Extension> theme = MakeThemeExtension();
456 EXPECT_TRUE(supervised_user_service->UserMayLoad(theme.get(), &error_1));
457 EXPECT_TRUE(error_1.empty());
458 EXPECT_TRUE(
459 supervised_user_service->UserMayModifySettings(theme.get(), &error_1));
460 EXPECT_TRUE(error_1.empty());
461 438
462 // Now check a different kind of extension. 439 base::string16 error_1;
463 scoped_refptr<extensions::Extension> extension = MakeExtension(false); 440 EXPECT_TRUE(supervised_user_service->UserMayLoad(theme.get(), &error_1));
464 EXPECT_FALSE(supervised_user_service->UserMayLoad(extension.get(), &error_1)); 441 EXPECT_TRUE(error_1.empty());
465 EXPECT_FALSE(error_1.empty());
466 442
467 base::string16 error_2; 443 base::string16 error_2;
468 EXPECT_FALSE(supervised_user_service->UserMayModifySettings(extension.get(), 444 EXPECT_FALSE(
469 &error_2)); 445 supervised_user_service->MustRemainInstalled(theme.get(), &error_2));
470 EXPECT_FALSE(error_2.empty()); 446 EXPECT_TRUE(error_2.empty());
447 }
471 448
472 // Check that an extension that was installed by the custodian may be loaded. 449 // Now check a different kind of extension; the supervised user should not be
473 base::string16 error_3; 450 // able to load it.
474 scoped_refptr<extensions::Extension> extension_2 = MakeExtension(true); 451 {
475 EXPECT_TRUE(supervised_user_service->UserMayLoad(extension_2.get(), 452 scoped_refptr<extensions::Extension> extension = MakeExtension(false);
476 &error_3));
477 EXPECT_TRUE(error_3.empty());
478 453
479 // The supervised user should still not be able to uninstall or disable the 454 base::string16 error;
480 // extension. 455 EXPECT_FALSE(supervised_user_service->UserMayLoad(extension.get(), &error));
481 base::string16 error_4; 456 EXPECT_FALSE(error.empty());
482 EXPECT_FALSE(supervised_user_service->UserMayModifySettings(extension_2.get(), 457 }
483 &error_4)); 458
484 EXPECT_FALSE(error_4.empty()); 459 {
460 // Check that a custodian-installed extension may be loaded, but not
461 // uninstalled.
462 scoped_refptr<extensions::Extension> extension = MakeExtension(true);
463
464 base::string16 error_1;
465 EXPECT_TRUE(
466 supervised_user_service->UserMayLoad(extension.get(), &error_1));
467 EXPECT_TRUE(error_1.empty());
468
469 base::string16 error_2;
470 EXPECT_TRUE(
471 supervised_user_service->MustRemainInstalled(extension.get(),
472 &error_2));
473 EXPECT_FALSE(error_2.empty());
474 }
485 475
486 #ifndef NDEBUG 476 #ifndef NDEBUG
487 EXPECT_FALSE(supervised_user_service->GetDebugPolicyProviderName().empty()); 477 EXPECT_FALSE(supervised_user_service->GetDebugPolicyProviderName().empty());
488 #endif 478 #endif
489 } 479 }
490 480
491 TEST_F(SupervisedUserServiceExtensionTest, NoContentPacks) { 481 TEST_F(SupervisedUserServiceExtensionTest, NoContentPacks) {
492 SupervisedUserService* supervised_user_service = 482 SupervisedUserService* supervised_user_service =
493 SupervisedUserServiceFactory::GetForProfile(profile_.get()); 483 SupervisedUserServiceFactory::GetForProfile(profile_.get());
494 SupervisedUserURLFilter* url_filter = 484 SupervisedUserURLFilter* url_filter =
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 ASSERT_EQ(1u, site_list_observer_.sites().size()); 571 ASSERT_EQ(1u, site_list_observer_.sites().size());
582 EXPECT_EQ(base::ASCIIToUTF16("Moose"), site_list_observer_.sites()[0].name); 572 EXPECT_EQ(base::ASCIIToUTF16("Moose"), site_list_observer_.sites()[0].name);
583 573
584 url_filter_observer_.Wait(); 574 url_filter_observer_.Wait();
585 EXPECT_EQ(SupervisedUserURLFilter::WARN, 575 EXPECT_EQ(SupervisedUserURLFilter::WARN,
586 url_filter->GetFilteringBehaviorForURL(example_url)); 576 url_filter->GetFilteringBehaviorForURL(example_url));
587 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 577 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
588 url_filter->GetFilteringBehaviorForURL(moose_url)); 578 url_filter->GetFilteringBehaviorForURL(moose_url));
589 } 579 }
590 #endif // defined(ENABLE_EXTENSIONS) 580 #endif // defined(ENABLE_EXTENSIONS)
OLDNEW
« no previous file with comments | « chrome/browser/supervised_user/supervised_user_service.cc ('k') | chrome/browser/ui/extensions/extension_enable_flow.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698