1// Copyright (c) 2012 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 "base/prefs/testing_pref_service.h"
6
7#include "base/bind.h"
8#include "base/compiler_specific.h"
9#include "base/prefs/default_pref_store.h"
10#include "base/prefs/pref_notifier_impl.h"
11#include "base/prefs/pref_registry_simple.h"
12#include "base/prefs/pref_value_store.h"
13#include "testing/gtest/include/gtest/gtest.h"
14
15template <>
16TestingPrefServiceBase<PrefService, PrefRegistry>::TestingPrefServiceBase(
17    TestingPrefStore* managed_prefs,
18    TestingPrefStore* user_prefs,
19    TestingPrefStore* recommended_prefs,
20    PrefRegistry* pref_registry,
21    PrefNotifierImpl* pref_notifier)
22    : PrefService(
23          pref_notifier,
24          new PrefValueStore(managed_prefs,
25                             NULL,
26                             NULL,
27                             NULL,
28                             user_prefs,
29                             recommended_prefs,
30                             pref_registry->defaults().get(),
31                             pref_notifier),
32          user_prefs,
33          pref_registry,
34          base::Bind(&TestingPrefServiceBase<PrefService,
35                                             PrefRegistry>::HandleReadError),
36          false),
37      managed_prefs_(managed_prefs),
38      user_prefs_(user_prefs),
39      recommended_prefs_(recommended_prefs) {}
40
41TestingPrefServiceSimple::TestingPrefServiceSimple()
42    : TestingPrefServiceBase<PrefService, PrefRegistry>(
43          new TestingPrefStore(),
44          new TestingPrefStore(),
45          new TestingPrefStore(),
46          new PrefRegistrySimple(),
47          new PrefNotifierImpl()) {}
48
49TestingPrefServiceSimple::~TestingPrefServiceSimple() {
50}
51
52PrefRegistrySimple* TestingPrefServiceSimple::registry() {
53  return static_cast<PrefRegistrySimple*>(DeprecatedGetPrefRegistry());
54}
55