class ManagementPolicyTest : public testing::Test {
public:
- virtual void SetUp() {
+ void SetUp() override {
allow_all_.SetProhibitedActions(TestProvider::ALLOW_ALL);
no_modify_status_.SetProhibitedActions(
TestProvider::PROHIBIT_MODIFY_STATUS);
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);
TestProvider no_load_;
TestProvider must_remain_enabled_;
TestProvider must_remain_disabled_;
+ TestProvider must_remain_installed_;
TestProvider restrict_all_;
};
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.