diff options
Diffstat (limited to 'chrome/browser/policy/mock_configuration_policy_provider.h')
-rw-r--r-- | chrome/browser/policy/mock_configuration_policy_provider.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/chrome/browser/policy/mock_configuration_policy_provider.h b/chrome/browser/policy/mock_configuration_policy_provider.h new file mode 100644 index 0000000..2d727467 --- /dev/null +++ b/chrome/browser/policy/mock_configuration_policy_provider.h @@ -0,0 +1,43 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_POLICY_MOCK_CONFIGURATION_POLICY_PROVIDER_H_ +#define CHROME_BROWSER_POLICY_MOCK_CONFIGURATION_POLICY_PROVIDER_H_ +#pragma once + +#include <map> + +#include "base/stl_util-inl.h" +#include "chrome/browser/policy/configuration_policy_provider.h" + +// Mock ConfigurationPolicyProvider implementation that supplies canned +// values for polices. +class MockConfigurationPolicyProvider : public ConfigurationPolicyProvider { + public: + MockConfigurationPolicyProvider() {} + ~MockConfigurationPolicyProvider() { + STLDeleteValues(&policy_map_); + } + + typedef std::map<ConfigurationPolicyStore::PolicyType, Value*> PolicyMap; + + void AddPolicy(ConfigurationPolicyStore::PolicyType policy, Value* value) { + policy_map_[policy] = value; + } + + // ConfigurationPolicyProvider method overrides. + virtual bool Provide(ConfigurationPolicyStore* store) { + for (PolicyMap::const_iterator current = policy_map_.begin(); + current != policy_map_.end(); ++current) { + store->Apply(current->first, current->second->DeepCopy()); + } + return true; + } + + private: + PolicyMap policy_map_; +}; + +#endif // CHROME_BROWSER_POLICY_MOCK_CONFIGURATION_POLICY_PROVIDER_H_ + |