| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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) |
| OLD | NEW |