1513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// found in the LICENSE file.
4513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
5513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#include "chrome/browser/policy/mock_configuration_policy_provider.h"
6513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "base/stl_util-inl.h"
8513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#include "chrome/browser/policy/configuration_policy_pref_store.h"
9513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
10513209b27ff55e2841eac0e4120199c23acce758Ben Murdochnamespace policy {
11513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
12513209b27ff55e2841eac0e4120199c23acce758Ben MurdochMockConfigurationPolicyProvider::MockConfigurationPolicyProvider()
13513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch    : ConfigurationPolicyProvider(
1421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen          ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList()),
1521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen      initialization_complete_(false) {
16513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch}
17513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
18dc0f95d653279beabeb9817299e2902918ba123eKristian MonsenMockConfigurationPolicyProvider::~MockConfigurationPolicyProvider() {}
19513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
20513209b27ff55e2841eac0e4120199c23acce758Ben Murdochvoid MockConfigurationPolicyProvider::AddPolicy(ConfigurationPolicyType policy,
21513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch                                                Value* value) {
22dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  policy_map_.Set(policy, value);
23513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch}
24513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
2521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvoid MockConfigurationPolicyProvider::RemovePolicy(
2621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    ConfigurationPolicyType policy) {
27dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  policy_map_.Erase(policy);
2821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}
2921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
3021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvoid MockConfigurationPolicyProvider::SetInitializationComplete(
3121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    bool initialization_complete) {
3221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  initialization_complete_ = initialization_complete;
3321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}
3421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
35513209b27ff55e2841eac0e4120199c23acce758Ben Murdochbool MockConfigurationPolicyProvider::Provide(
36513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch    ConfigurationPolicyStoreInterface* store) {
37513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  for (PolicyMap::const_iterator current = policy_map_.begin();
38513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch       current != policy_map_.end(); ++current) {
39513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch    store->Apply(current->first, current->second->DeepCopy());
40513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  }
41513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  return true;
42513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch}
43513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
4421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenbool MockConfigurationPolicyProvider::IsInitializationComplete() const {
4521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  return initialization_complete_;
4621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}
4721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
48dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen}  // namespace policy
49