mock_configuration_policy_store.h revision 4a5e2dc747d50c653511c68ccb2cfbfb740bd5a7
1// Copyright (c) 2010 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_POLICY_MOCK_CONFIGURATION_POLICY_STORE_H_
6#define CHROME_BROWSER_POLICY_MOCK_CONFIGURATION_POLICY_STORE_H_
7#pragma once
8
9#include <map>
10#include <utility>
11
12#include "base/stl_util-inl.h"
13#include "base/values.h"
14#include "chrome/browser/policy/configuration_policy_store_interface.h"
15#include "testing/gmock/include/gmock/gmock.h"
16
17namespace policy {
18
19// Mock ConfigurationPolicyStore implementation that records values for policy
20// settings as they get set.
21class MockConfigurationPolicyStore : public ConfigurationPolicyStoreInterface {
22 public:
23  typedef std::map<ConfigurationPolicyType, Value*> PolicyMap;
24
25  MockConfigurationPolicyStore();
26  virtual ~MockConfigurationPolicyStore();
27
28  const PolicyMap& policy_map() const { return policy_map_; }
29
30  // Get a value for the given policy. Returns NULL if that key doesn't exist.
31  const Value* Get(ConfigurationPolicyType type) const;
32  // ConfigurationPolicyStore implementation.
33  void ApplyToMap(ConfigurationPolicyType policy, Value* value);
34
35  MOCK_METHOD2(Apply, void(ConfigurationPolicyType policy, Value* value));
36
37 private:
38  PolicyMap policy_map_;
39
40  DISALLOW_COPY_AND_ASSIGN(MockConfigurationPolicyStore);
41};
42
43}  // namespace policy
44
45#endif  // CHROME_BROWSER_POLICY_MOCK_CONFIGURATION_POLICY_STORE_H_
46