1// Copyright 2013 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#include "components/policy/core/common/mock_configuration_policy_provider.h"
6
7#include <string>
8
9#include "base/memory/scoped_ptr.h"
10#include "base/message_loop/message_loop.h"
11#include "base/run_loop.h"
12#include "components/policy/core/common/policy_bundle.h"
13
14using testing::Invoke;
15
16namespace policy {
17
18MockConfigurationPolicyProvider::MockConfigurationPolicyProvider() {}
19
20MockConfigurationPolicyProvider::~MockConfigurationPolicyProvider() {}
21
22void MockConfigurationPolicyProvider::UpdateChromePolicy(
23    const PolicyMap& policy) {
24  scoped_ptr<PolicyBundle> bundle(new PolicyBundle());
25  bundle->Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
26      .CopyFrom(policy);
27  UpdatePolicy(bundle.Pass());
28  if (base::MessageLoop::current())
29    base::RunLoop().RunUntilIdle();
30}
31
32void MockConfigurationPolicyProvider::SetAutoRefresh() {
33  EXPECT_CALL(*this, RefreshPolicies()).WillRepeatedly(
34      Invoke(this, &MockConfigurationPolicyProvider::RefreshWithSamePolicies));
35}
36
37void MockConfigurationPolicyProvider::RefreshWithSamePolicies() {
38  scoped_ptr<PolicyBundle> bundle(new PolicyBundle);
39  bundle->CopyFrom(policies());
40  UpdatePolicy(bundle.Pass());
41}
42
43MockConfigurationPolicyObserver::MockConfigurationPolicyObserver() {}
44
45MockConfigurationPolicyObserver::~MockConfigurationPolicyObserver() {}
46
47}  // namespace policy
48