Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / extensions / browser / management_policy_unittest.cc
index 52373c1..7bf60a9 100644 (file)
@@ -12,7 +12,7 @@ using extensions::Extension;
 
 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);
@@ -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.