1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
28bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
38bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)// found in the LICENSE file.
48bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)
5a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#ifndef COMPONENTS_POLICY_CORE_BROWSER_CONFIGURATION_POLICY_PREF_STORE_TEST_H_
6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define COMPONENTS_POLICY_CORE_BROWSER_CONFIGURATION_POLICY_PREF_STORE_TEST_H_
78bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)
8a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "base/basictypes.h"
98bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#include "base/memory/ref_counted.h"
108bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#include "base/memory/scoped_ptr.h"
118bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#include "base/message_loop/message_loop.h"
12a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "components/policy/core/browser/configuration_policy_handler_list.h"
13a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "components/policy/core/common/mock_configuration_policy_provider.h"
14a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "components/policy/core/common/policy_service_impl.h"
158bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
168bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)
178bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)namespace policy {
188bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)
19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)struct PolicyHandlerParameters;
208bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)class PolicyMap;
218bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)class PolicyService;
228bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)class ConfigurationPolicyPrefStore;
238bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)
248bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)class ConfigurationPolicyPrefStoreTest : public testing::Test {
258bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) protected:
268bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)  ConfigurationPolicyPrefStoreTest();
278bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)  virtual ~ConfigurationPolicyPrefStoreTest();
288bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)  virtual void TearDown() OVERRIDE;
298bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)  void UpdateProviderPolicy(const PolicyMap& policy);
308bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)
31a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // A unit test can override this method to populate the policy handler
32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // parameters as suited to its needs.
33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  virtual void PopulatePolicyHandlerParameters(
34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      PolicyHandlerParameters* parameters);
35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  PolicyServiceImpl::Providers providers_;
378bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)  ConfigurationPolicyHandlerList handler_list_;
388bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)  MockConfigurationPolicyProvider provider_;
398bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)  scoped_ptr<PolicyService> policy_service_;
408bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)  scoped_refptr<ConfigurationPolicyPrefStore> store_;
418bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)  base::MessageLoop loop_;
428bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)
438bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) private:
448bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(ConfigurationPolicyPrefStoreTest);
458bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)};
468bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)
478bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)}  // namespace policy
488bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)
49a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif  // COMPONENTS_POLICY_CORE_BROWSER_CONFIGURATION_POLICY_PREF_STORE_TEST_H_
50