OLD | NEW |
---|---|
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "chrome/browser/extensions/extension_service_unittest.h" | 5 #include "chrome/browser/extensions/extension_service_unittest.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <set> | 8 #include <set> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 3534 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3545 | 3545 |
3546 ASSERT_EQ(1u, registry->blacklisted_extensions().size()); | 3546 ASSERT_EQ(1u, registry->blacklisted_extensions().size()); |
3547 ASSERT_EQ(2u, registry->enabled_extensions().size()); | 3547 ASSERT_EQ(2u, registry->enabled_extensions().size()); |
3548 | 3548 |
3549 ASSERT_TRUE(registry->enabled_extensions().Contains(good0)); | 3549 ASSERT_TRUE(registry->enabled_extensions().Contains(good0)); |
3550 ASSERT_TRUE(registry->blacklisted_extensions().Contains(good1)); | 3550 ASSERT_TRUE(registry->blacklisted_extensions().Contains(good1)); |
3551 ASSERT_TRUE(registry->enabled_extensions().Contains(good2)); | 3551 ASSERT_TRUE(registry->enabled_extensions().Contains(good2)); |
3552 } | 3552 } |
3553 #endif // defined(ENABLE_BLACKLIST_TESTS) | 3553 #endif // defined(ENABLE_BLACKLIST_TESTS) |
3554 | 3554 |
3555 #if defined(ENABLE_BLACKLIST_TESTS) | |
3556 // Extension is added to blacklist with BLACKLISTED_POTENTIALLY_UNWANTED state | |
3557 // after it is installed. It is then successfuly re-enabled by the user. | |
not at google - send to devlin
2014/01/22 22:24:39
successfully
Oleg Eterevsky
2014/01/23 14:48:54
Done.
| |
3558 TEST_F(ExtensionServiceTest, GreylistedExtensionDisabled) { | |
3559 extensions::TestBlacklist test_blacklist; | |
3560 // A profile with 3 extensions installed: good0, good1, and good2. | |
3561 InitializeGoodInstalledExtensionService(); | |
3562 test_blacklist.Attach(service_->blacklist_); | |
3563 service_->Init(); | |
3564 | |
3565 ExtensionRegistry* registry = ExtensionRegistry::Get(profile_.get()); | |
3566 const extensions::ExtensionSet& enabled_extensions = | |
3567 registry->enabled_extensions(); | |
3568 const extensions::ExtensionSet& disabled_extensions = | |
3569 registry->disabled_extensions(); | |
3570 | |
3571 EXPECT_TRUE(enabled_extensions.Contains(good0)); | |
3572 EXPECT_TRUE(enabled_extensions.Contains(good1)); | |
3573 EXPECT_TRUE(enabled_extensions.Contains(good2)); | |
3574 | |
3575 // Blacklist good0 and good1 (and an invalid extension ID). | |
3576 test_blacklist.SetBlacklistState( | |
3577 good0, extensions::BLACKLISTED_CWS_POLICY_VIOLATION, true); | |
3578 test_blacklist.SetBlacklistState( | |
3579 good1, extensions::BLACKLISTED_POTENTIALLY_UNWANTED, true); | |
3580 test_blacklist.SetBlacklistState( | |
3581 "invalid_id", extensions::BLACKLISTED_MALWARE, true); | |
3582 base::RunLoop().RunUntilIdle(); | |
3583 | |
3584 EXPECT_TRUE(!enabled_extensions.Contains(good0) && | |
3585 disabled_extensions.Contains(good0)); | |
not at google - send to devlin
2014/01/22 22:24:39
Just put all of these as single assertions, i.e. r
Oleg Eterevsky
2014/01/23 14:48:54
Done.
| |
3586 EXPECT_TRUE(!enabled_extensions.Contains(good1) && | |
3587 disabled_extensions.Contains(good1)); | |
3588 EXPECT_TRUE(enabled_extensions.Contains(good2) && | |
3589 !disabled_extensions.Contains(good2)); | |
3590 | |
3591 ValidateIntegerPref( | |
3592 good0, "greylist", extensions::BLACKLISTED_CWS_POLICY_VIOLATION); | |
3593 ValidateIntegerPref( | |
3594 good1, "greylist", extensions::BLACKLISTED_POTENTIALLY_UNWANTED); | |
3595 | |
3596 // Now user enables good0. | |
3597 service_->EnableExtension(good0); | |
3598 | |
3599 EXPECT_TRUE(enabled_extensions.Contains(good0) && | |
3600 !disabled_extensions.Contains(good0)); | |
3601 EXPECT_TRUE(!enabled_extensions.Contains(good1) && | |
3602 disabled_extensions.Contains(good1)); | |
3603 | |
3604 // Remove extensions from blacklist. | |
3605 test_blacklist.SetBlacklistState( | |
3606 good0, extensions::NOT_BLACKLISTED, true); | |
3607 test_blacklist.SetBlacklistState( | |
3608 good1, extensions::NOT_BLACKLISTED, true); | |
3609 base::RunLoop().RunUntilIdle(); | |
3610 | |
3611 // All extensions are enabled. | |
3612 EXPECT_TRUE(enabled_extensions.Contains(good0) && | |
3613 !disabled_extensions.Contains(good0)); | |
3614 EXPECT_TRUE(enabled_extensions.Contains(good1) && | |
3615 !disabled_extensions.Contains(good1)); | |
3616 EXPECT_TRUE(enabled_extensions.Contains(good2) && | |
3617 !disabled_extensions.Contains(good2)); | |
3618 } | |
3619 #endif // defined(ENABLE_BLACKLIST_TESTS) | |
3620 | |
3621 #if defined(ENABLE_BLACKLIST_TESTS) | |
3622 // When extension is removed from greylist, do not re-enable it if it is | |
3623 // disabled by user. | |
3624 TEST_F(ExtensionServiceTest, GreylistDontEnableManuallyDisabled) { | |
3625 extensions::TestBlacklist test_blacklist; | |
3626 // A profile with 3 extensions installed: good0, good1, and good2. | |
3627 InitializeGoodInstalledExtensionService(); | |
3628 test_blacklist.Attach(service_->blacklist_); | |
3629 service_->Init(); | |
3630 | |
3631 ExtensionRegistry* registry = ExtensionRegistry::Get(profile_.get()); | |
3632 const extensions::ExtensionSet& enabled_extensions = | |
3633 registry->enabled_extensions(); | |
3634 const extensions::ExtensionSet& disabled_extensions = | |
3635 registry->disabled_extensions(); | |
3636 | |
3637 // Manually disable. | |
3638 service_->DisableExtension(good0, extensions::Extension::DISABLE_USER_ACTION); | |
3639 | |
3640 test_blacklist.SetBlacklistState( | |
3641 good0, extensions::BLACKLISTED_CWS_POLICY_VIOLATION, true); | |
3642 test_blacklist.SetBlacklistState( | |
3643 good1, extensions::BLACKLISTED_POTENTIALLY_UNWANTED, true); | |
3644 test_blacklist.SetBlacklistState( | |
3645 good2, extensions::BLACKLISTED_SECURITY_VULNERABILITY, true); | |
3646 base::RunLoop().RunUntilIdle(); | |
3647 | |
3648 // All extensions disabled. | |
3649 EXPECT_TRUE(!enabled_extensions.Contains(good0) && | |
3650 disabled_extensions.Contains(good0)); | |
3651 EXPECT_TRUE(!enabled_extensions.Contains(good1) && | |
3652 disabled_extensions.Contains(good1)); | |
3653 EXPECT_TRUE(!enabled_extensions.Contains(good2) && | |
3654 disabled_extensions.Contains(good2)); | |
3655 | |
3656 // Greylisted extension can be enabled. | |
3657 service_->EnableExtension(good1); | |
3658 EXPECT_TRUE(enabled_extensions.Contains(good1) && | |
3659 !disabled_extensions.Contains(good1)); | |
3660 | |
3661 // good1 is now manually disabled. | |
3662 service_->DisableExtension(good1, extensions::Extension::DISABLE_USER_ACTION); | |
3663 EXPECT_TRUE(!enabled_extensions.Contains(good1) && | |
3664 disabled_extensions.Contains(good1)); | |
3665 | |
3666 // Remove extensions from blacklist. | |
3667 test_blacklist.SetBlacklistState( | |
3668 good0, extensions::NOT_BLACKLISTED, true); | |
3669 test_blacklist.SetBlacklistState( | |
3670 good1, extensions::NOT_BLACKLISTED, true); | |
3671 test_blacklist.SetBlacklistState( | |
3672 good2, extensions::NOT_BLACKLISTED, true); | |
3673 base::RunLoop().RunUntilIdle(); | |
3674 | |
3675 // good0 and good1 remain disabled. | |
3676 EXPECT_TRUE(!enabled_extensions.Contains(good0) && | |
3677 disabled_extensions.Contains(good0)); | |
3678 EXPECT_TRUE(!enabled_extensions.Contains(good1) && | |
3679 disabled_extensions.Contains(good1)); | |
3680 EXPECT_TRUE(enabled_extensions.Contains(good2) && | |
3681 !disabled_extensions.Contains(good2)); | |
3682 } | |
3683 #endif // defined(ENABLE_BLACKLIST_TESTS) | |
3684 | |
3685 #if defined(ENABLE_BLACKLIST_TESTS) | |
3686 // Blacklisted extension with unknown state are not enabled/disabled. | |
3687 TEST_F(ExtensionServiceTest, GreylistUnknownDontChange) { | |
3688 extensions::TestBlacklist test_blacklist; | |
3689 // A profile with 3 extensions installed: good0, good1, and good2. | |
3690 InitializeGoodInstalledExtensionService(); | |
3691 test_blacklist.Attach(service_->blacklist_); | |
3692 service_->Init(); | |
3693 | |
3694 ExtensionRegistry* registry = ExtensionRegistry::Get(profile_.get()); | |
3695 const extensions::ExtensionSet& enabled_extensions = | |
3696 registry->enabled_extensions(); | |
3697 const extensions::ExtensionSet& disabled_extensions = | |
3698 registry->disabled_extensions(); | |
3699 | |
3700 test_blacklist.SetBlacklistState( | |
3701 good0, extensions::BLACKLISTED_CWS_POLICY_VIOLATION, true); | |
3702 test_blacklist.SetBlacklistState( | |
3703 good1, extensions::BLACKLISTED_POTENTIALLY_UNWANTED, true); | |
3704 base::RunLoop().RunUntilIdle(); | |
3705 | |
3706 EXPECT_TRUE(!enabled_extensions.Contains(good0) && | |
3707 disabled_extensions.Contains(good0)); | |
3708 EXPECT_TRUE(!enabled_extensions.Contains(good1) && | |
3709 disabled_extensions.Contains(good1)); | |
3710 EXPECT_TRUE(enabled_extensions.Contains(good2) && | |
3711 !disabled_extensions.Contains(good2)); | |
3712 | |
3713 test_blacklist.SetBlacklistState( | |
3714 good0, extensions::NOT_BLACKLISTED, true); | |
3715 test_blacklist.SetBlacklistState( | |
3716 good1, extensions::BLACKLISTED_UNKNOWN, true); | |
3717 test_blacklist.SetBlacklistState( | |
3718 good2, extensions::BLACKLISTED_UNKNOWN, true); | |
3719 base::RunLoop().RunUntilIdle(); | |
3720 | |
3721 // good0 re-enabled, other remain as they were. | |
3722 EXPECT_TRUE(enabled_extensions.Contains(good0) && | |
3723 !disabled_extensions.Contains(good0)); | |
3724 EXPECT_TRUE(!enabled_extensions.Contains(good1) && | |
3725 disabled_extensions.Contains(good1)); | |
3726 EXPECT_TRUE(enabled_extensions.Contains(good2) && | |
3727 !disabled_extensions.Contains(good2)); | |
3728 } | |
3729 #endif // defined(ENABLE_BLACKLIST_TESTS) | |
3730 | |
3555 // Will not install extension blacklisted by policy. | 3731 // Will not install extension blacklisted by policy. |
3556 TEST_F(ExtensionServiceTest, BlacklistedByPolicyWillNotInstall) { | 3732 TEST_F(ExtensionServiceTest, BlacklistedByPolicyWillNotInstall) { |
3557 InitializeEmptyExtensionService(); | 3733 InitializeEmptyExtensionService(); |
3558 | 3734 |
3559 // Blacklist everything. | 3735 // Blacklist everything. |
3560 { | 3736 { |
3561 ListPrefUpdate update(profile_->GetPrefs(), | 3737 ListPrefUpdate update(profile_->GetPrefs(), |
3562 extensions::pref_names::kInstallDenyList); | 3738 extensions::pref_names::kInstallDenyList); |
3563 base::ListValue* blacklist = update.Get(); | 3739 base::ListValue* blacklist = update.Get(); |
3564 blacklist->Append(new base::StringValue("*")); | 3740 blacklist->Append(new base::StringValue("*")); |
(...skipping 3225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6790 // ReconcileKnownDisabled(). | 6966 // ReconcileKnownDisabled(). |
6791 service_->EnableExtension(good2); | 6967 service_->EnableExtension(good2); |
6792 service_->ReconcileKnownDisabled(); | 6968 service_->ReconcileKnownDisabled(); |
6793 expected_extensions.insert(good2); | 6969 expected_extensions.insert(good2); |
6794 expected_disabled_extensions.erase(good2); | 6970 expected_disabled_extensions.erase(good2); |
6795 | 6971 |
6796 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); | 6972 EXPECT_EQ(expected_extensions, service_->extensions()->GetIDs()); |
6797 EXPECT_EQ(expected_disabled_extensions, | 6973 EXPECT_EQ(expected_disabled_extensions, |
6798 service_->disabled_extensions()->GetIDs()); | 6974 service_->disabled_extensions()->GetIDs()); |
6799 } | 6975 } |
OLD | NEW |