Home | History | Annotate | Download | only in extensions
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/extensions/test_management_policy.h"
      6 
      7 #include "base/strings/utf_string_conversions.h"
      8 
      9 namespace extensions {
     10 TestManagementPolicyProvider::TestManagementPolicyProvider()
     11     : may_load_(true),
     12       may_modify_status_(true),
     13       must_remain_enabled_(false) {
     14   error_message_ = UTF8ToUTF16(expected_error());
     15 }
     16 
     17 TestManagementPolicyProvider::TestManagementPolicyProvider(
     18     int prohibited_actions) {
     19   SetProhibitedActions(prohibited_actions);
     20   error_message_ = UTF8ToUTF16(expected_error());
     21 }
     22 
     23 void TestManagementPolicyProvider::SetProhibitedActions(
     24     int prohibited_actions) {
     25   may_load_ = (prohibited_actions & PROHIBIT_LOAD) == 0;
     26   may_modify_status_ = (prohibited_actions & PROHIBIT_MODIFY_STATUS) == 0;
     27   must_remain_enabled_ = (prohibited_actions & MUST_REMAIN_ENABLED) != 0;
     28 }
     29 
     30 std::string TestManagementPolicyProvider::GetDebugPolicyProviderName() const {
     31   return "the test management policy provider";
     32 }
     33 
     34 bool TestManagementPolicyProvider::UserMayLoad(const Extension* extension,
     35                                                string16* error) const {
     36   if (error && !may_load_)
     37     *error = error_message_;
     38   return may_load_;
     39 }
     40 
     41 bool TestManagementPolicyProvider::UserMayModifySettings(
     42     const Extension* extension, string16* error) const {
     43   if (error && !may_modify_status_)
     44     *error = error_message_;
     45   return may_modify_status_;
     46 }
     47 
     48 bool TestManagementPolicyProvider::MustRemainEnabled(const Extension* extension,
     49                                                      string16* error) const {
     50   if (error && must_remain_enabled_)
     51     *error = error_message_;
     52   return must_remain_enabled_;
     53 }
     54 }  // namespace
     55