1// Copyright 2014 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 COMPONENTS_POLICY_CORE_BROWSER_CONFIGURATION_POLICY_PREF_STORE_TEST_H_
6#define COMPONENTS_POLICY_CORE_BROWSER_CONFIGURATION_POLICY_PREF_STORE_TEST_H_
7
8#include "base/basictypes.h"
9#include "base/memory/ref_counted.h"
10#include "base/memory/scoped_ptr.h"
11#include "base/message_loop/message_loop.h"
12#include "components/policy/core/browser/configuration_policy_handler_list.h"
13#include "components/policy/core/common/mock_configuration_policy_provider.h"
14#include "components/policy/core/common/policy_service_impl.h"
15#include "testing/gtest/include/gtest/gtest.h"
16
17namespace policy {
18
19struct PolicyHandlerParameters;
20class PolicyMap;
21class PolicyService;
22class ConfigurationPolicyPrefStore;
23
24class ConfigurationPolicyPrefStoreTest : public testing::Test {
25 protected:
26  ConfigurationPolicyPrefStoreTest();
27  virtual ~ConfigurationPolicyPrefStoreTest();
28  virtual void TearDown() OVERRIDE;
29  void UpdateProviderPolicy(const PolicyMap& policy);
30
31  // A unit test can override this method to populate the policy handler
32  // parameters as suited to its needs.
33  virtual void PopulatePolicyHandlerParameters(
34      PolicyHandlerParameters* parameters);
35
36  PolicyServiceImpl::Providers providers_;
37  ConfigurationPolicyHandlerList handler_list_;
38  MockConfigurationPolicyProvider provider_;
39  scoped_ptr<PolicyService> policy_service_;
40  scoped_refptr<ConfigurationPolicyPrefStore> store_;
41  base::MessageLoop loop_;
42
43 private:
44  DISALLOW_COPY_AND_ASSIGN(ConfigurationPolicyPrefStoreTest);
45};
46
47}  // namespace policy
48
49#endif  // COMPONENTS_POLICY_CORE_BROWSER_CONFIGURATION_POLICY_PREF_STORE_TEST_H_
50