|  | // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "base/prefs/testing_pref_service.h" | 
|  |  | 
|  | #include "base/bind.h" | 
|  | #include "base/compiler_specific.h" | 
|  | #include "base/prefs/default_pref_store.h" | 
|  | #include "base/prefs/pref_notifier_impl.h" | 
|  | #include "base/prefs/pref_registry_simple.h" | 
|  | #include "base/prefs/pref_value_store.h" | 
|  | #include "testing/gtest/include/gtest/gtest.h" | 
|  |  | 
|  | template <> | 
|  | TestingPrefServiceBase<PrefService, PrefRegistry>::TestingPrefServiceBase( | 
|  | TestingPrefStore* managed_prefs, | 
|  | TestingPrefStore* user_prefs, | 
|  | TestingPrefStore* recommended_prefs, | 
|  | PrefRegistry* pref_registry, | 
|  | PrefNotifierImpl* pref_notifier) | 
|  | : PrefService( | 
|  | pref_notifier, | 
|  | new PrefValueStore(managed_prefs, | 
|  | NULL, | 
|  | NULL, | 
|  | NULL, | 
|  | user_prefs, | 
|  | recommended_prefs, | 
|  | pref_registry->defaults().get(), | 
|  | pref_notifier), | 
|  | user_prefs, | 
|  | pref_registry, | 
|  | base::Bind(&TestingPrefServiceBase<PrefService, | 
|  | PrefRegistry>::HandleReadError), | 
|  | false), | 
|  | managed_prefs_(managed_prefs), | 
|  | user_prefs_(user_prefs), | 
|  | recommended_prefs_(recommended_prefs) {} | 
|  |  | 
|  | TestingPrefServiceSimple::TestingPrefServiceSimple() | 
|  | : TestingPrefServiceBase<PrefService, PrefRegistry>( | 
|  | new TestingPrefStore(), | 
|  | new TestingPrefStore(), | 
|  | new TestingPrefStore(), | 
|  | new PrefRegistrySimple(), | 
|  | new PrefNotifierImpl()) {} | 
|  |  | 
|  | TestingPrefServiceSimple::~TestingPrefServiceSimple() { | 
|  | } | 
|  |  | 
|  | PrefRegistrySimple* TestingPrefServiceSimple::registry() { | 
|  | return static_cast<PrefRegistrySimple*>(DeprecatedGetPrefRegistry()); | 
|  | } |