blob: 00dc98bf422ed1e3311ca4fe358a4a6957146024 [file] [log] [blame]
[email protected]65187152012-06-02 13:14:141// 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#ifndef CHROME_BROWSER_EXTENSIONS_TEST_MANAGEMENT_POLICY_H_
6#define CHROME_BROWSER_EXTENSIONS_TEST_MANAGEMENT_POLICY_H_
[email protected]65187152012-06-02 13:14:147
8#include <string>
9
[email protected]46acbf12013-06-10 18:43:4210#include "base/strings/string16.h"
[email protected]65187152012-06-02 13:14:1411#include "chrome/browser/extensions/extension_service.h"
[email protected]fdd679b2012-11-15 20:49:3912#include "chrome/browser/extensions/management_policy.h"
[email protected]65187152012-06-02 13:14:1413
14namespace extensions {
[email protected]0d54b682013-11-05 14:15:3615
[email protected]65187152012-06-02 13:14:1416// This class provides a simple way to create providers with specific
17// restrictions and a known error message, for use in testing.
18class TestManagementPolicyProvider : public ManagementPolicy::Provider {
19 public:
20 enum AllowedActionFlag {
21 ALLOW_ALL = 0,
22 PROHIBIT_LOAD = 1 << 0,
23 PROHIBIT_MODIFY_STATUS = 1 << 1,
[email protected]0d54b682013-11-05 14:15:3624 MUST_REMAIN_ENABLED = 1 << 2,
25 MUST_REMAIN_DISABLED = 1 << 3
[email protected]65187152012-06-02 13:14:1426 };
27
28 static std::string expected_error() {
29 return "Action prohibited by test provider.";
30 }
31
32 TestManagementPolicyProvider();
33 explicit TestManagementPolicyProvider(int prohibited_actions);
34
35 void SetProhibitedActions(int prohibited_actions);
[email protected]0d54b682013-11-05 14:15:3636 void SetDisableReason(Extension::DisableReason reason);
[email protected]65187152012-06-02 13:14:1437
[email protected]a6c7a8252012-06-25 18:28:2438 virtual std::string GetDebugPolicyProviderName() const OVERRIDE;
[email protected]65187152012-06-02 13:14:1439
40 virtual bool UserMayLoad(const Extension* extension,
41 string16* error) const OVERRIDE;
42
43 virtual bool UserMayModifySettings(const Extension* extension,
44 string16* error) const OVERRIDE;
45
46 virtual bool MustRemainEnabled(const Extension* extension,
47 string16* error) const OVERRIDE;
48
[email protected]0d54b682013-11-05 14:15:3649 virtual bool MustRemainDisabled(const Extension* extension,
50 Extension::DisableReason* reason,
51 string16* error) const OVERRIDE;
52
[email protected]65187152012-06-02 13:14:1453 private:
54 bool may_load_;
55 bool may_modify_status_;
56 bool must_remain_enabled_;
[email protected]0d54b682013-11-05 14:15:3657 bool must_remain_disabled_;
58 Extension::DisableReason disable_reason_;
[email protected]65187152012-06-02 13:14:1459
60 string16 error_message_;
61};
[email protected]0d54b682013-11-05 14:15:3662
63} // namespace extensions
64
[email protected]65187152012-06-02 13:14:1465#endif // CHROME_BROWSER_EXTENSIONS_TEST_MANAGEMENT_POLICY_H_