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 |