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