1bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// found in the LICENSE file. 4bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 5bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#ifndef CHROME_BROWSER_POLICY_MOCK_CONFIGURATION_POLICY_STORE_H_ 6bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#define CHROME_BROWSER_POLICY_MOCK_CONFIGURATION_POLICY_STORE_H_ 7bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#pragma once 8bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 9bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include <map> 10bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include <utility> 11bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 12bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "base/stl_util-inl.h" 134a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "base/values.h" 14513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#include "chrome/browser/policy/configuration_policy_store_interface.h" 15dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "chrome/browser/policy/policy_map.h" 164a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "testing/gmock/include/gmock/gmock.h" 17bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 18bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsennamespace policy { 19bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 20bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Mock ConfigurationPolicyStore implementation that records values for policy 21bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// settings as they get set. 22513209b27ff55e2841eac0e4120199c23acce758Ben Murdochclass MockConfigurationPolicyStore : public ConfigurationPolicyStoreInterface { 23bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen public: 244a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch MockConfigurationPolicyStore(); 254a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual ~MockConfigurationPolicyStore(); 26bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 27513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const PolicyMap& policy_map() const { return policy_map_; } 28bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 29bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Get a value for the given policy. Returns NULL if that key doesn't exist. 304a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch const Value* Get(ConfigurationPolicyType type) const; 31bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // ConfigurationPolicyStore implementation. 324a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch void ApplyToMap(ConfigurationPolicyType policy, Value* value); 334a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 344a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch MOCK_METHOD2(Apply, void(ConfigurationPolicyType policy, Value* value)); 35bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 36bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen private: 37bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen PolicyMap policy_map_; 384a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 394a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch DISALLOW_COPY_AND_ASSIGN(MockConfigurationPolicyStore); 40bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 41bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 42bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} // namespace policy 43bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 44bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#endif // CHROME_BROWSER_POLICY_MOCK_CONFIGURATION_POLICY_STORE_H_ 45