Index: extensions/browser/management_policy_unittest.cc |
diff --git a/extensions/browser/management_policy_unittest.cc b/extensions/browser/management_policy_unittest.cc |
index 52373c135ba75b1638b1a60280d690884bf7a103..bcedc2c7e2892bfb7d191c5f5cb6f6e30e2c0d30 100644 |
--- a/extensions/browser/management_policy_unittest.cc |
+++ b/extensions/browser/management_policy_unittest.cc |
@@ -22,6 +22,8 @@ class ManagementPolicyTest : public testing::Test { |
must_remain_disabled_.SetProhibitedActions( |
TestProvider::MUST_REMAIN_DISABLED); |
must_remain_disabled_.SetDisableReason(Extension::DISABLE_SIDELOAD_WIPEOUT); |
+ must_remain_installed_.SetProhibitedActions( |
+ TestProvider::MUST_REMAIN_INSTALLED); |
restrict_all_.SetProhibitedActions(TestProvider::PROHIBIT_MODIFY_STATUS | |
TestProvider::PROHIBIT_LOAD | |
TestProvider::MUST_REMAIN_ENABLED); |
@@ -35,6 +37,7 @@ class ManagementPolicyTest : public testing::Test { |
TestProvider no_load_; |
TestProvider must_remain_enabled_; |
TestProvider must_remain_disabled_; |
+ TestProvider must_remain_installed_; |
TestProvider restrict_all_; |
}; |
@@ -176,6 +179,34 @@ TEST_F(ManagementPolicyTest, MustRemainDisabled) { |
EXPECT_TRUE(error.empty()); |
} |
+TEST_F(ManagementPolicyTest, MustRemainInstalled) { |
+ // No providers registered. |
+ base::string16 error; |
+ EXPECT_FALSE(policy_.MustRemainInstalled(NULL, &error)); |
+ EXPECT_TRUE(error.empty()); |
+ |
+ // One provider, no relevant restriction. |
+ policy_.RegisterProvider(&allow_all_); |
+ EXPECT_FALSE(policy_.MustRemainInstalled(NULL, &error)); |
+ EXPECT_TRUE(error.empty()); |
+ |
+ // Two providers, no relevant restrictions. |
+ policy_.RegisterProvider(&no_modify_status_); |
+ EXPECT_FALSE(policy_.MustRemainInstalled(NULL, &error)); |
+ EXPECT_TRUE(error.empty()); |
+ |
+ // Three providers, one with a relevant restriction. |
+ policy_.RegisterProvider(&must_remain_installed_); |
+ EXPECT_TRUE(policy_.MustRemainInstalled(NULL, &error)); |
+ EXPECT_FALSE(error.empty()); |
+ |
+ // Remove the restriction. |
+ policy_.UnregisterProvider(&must_remain_installed_); |
+ error.clear(); |
+ EXPECT_FALSE(policy_.MustRemainInstalled(NULL, &error)); |
+ EXPECT_TRUE(error.empty()); |
+} |
+ |
// Tests error handling in the ManagementPolicy. |
TEST_F(ManagementPolicyTest, ErrorHandling) { |
// The error parameter should be unchanged if no restriction was found. |