12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/test/base/testing_pref_service_syncable.h"
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/bind.h"
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/prefs/pref_notifier_impl.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/prefs/pref_value_store.h"
10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "components/pref_registry/pref_registry_syncable.h"
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)template <>
14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)TestingPrefServiceBase<PrefServiceSyncable, user_prefs::PrefRegistrySyncable>::
15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    TestingPrefServiceBase(TestingPrefStore* managed_prefs,
16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                           TestingPrefStore* user_prefs,
17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                           TestingPrefStore* recommended_prefs,
18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                           user_prefs::PrefRegistrySyncable* pref_registry,
19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                           PrefNotifierImpl* pref_notifier)
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    : PrefServiceSyncable(
21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          pref_notifier,
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          new PrefValueStore(managed_prefs,
23424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)                             NULL,  // supervised_user_prefs
24424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)                             NULL,  // extension_prefs
25424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)                             NULL,  // command_line_prefs
26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                             user_prefs,
27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                             recommended_prefs,
287d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)                             pref_registry->defaults().get(),
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                             pref_notifier),
30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          user_prefs,
31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          pref_registry,
32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          base::Bind(&TestingPrefServiceBase<
33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)              PrefServiceSyncable,
34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)              user_prefs::PrefRegistrySyncable>::HandleReadError),
35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)          false),
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      managed_prefs_(managed_prefs),
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      user_prefs_(user_prefs),
38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      recommended_prefs_(recommended_prefs) {}
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TestingPrefServiceSyncable::TestingPrefServiceSyncable()
41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    : TestingPrefServiceBase<PrefServiceSyncable,
42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                             user_prefs::PrefRegistrySyncable>(
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        new TestingPrefStore(),
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        new TestingPrefStore(),
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        new TestingPrefStore(),
46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)        new user_prefs::PrefRegistrySyncable(),
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        new PrefNotifierImpl()) {
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TestingPrefServiceSyncable::TestingPrefServiceSyncable(
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    TestingPrefStore* managed_prefs,
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    TestingPrefStore* user_prefs,
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    TestingPrefStore* recommended_prefs,
54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    user_prefs::PrefRegistrySyncable* pref_registry,
552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    PrefNotifierImpl* pref_notifier)
56c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    : TestingPrefServiceBase<PrefServiceSyncable,
57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                             user_prefs::PrefRegistrySyncable>(
582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        managed_prefs,
592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        user_prefs,
602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        recommended_prefs,
612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        pref_registry,
622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        pref_notifier) {
632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TestingPrefServiceSyncable::~TestingPrefServiceSyncable() {
662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
68c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)user_prefs::PrefRegistrySyncable* TestingPrefServiceSyncable::registry() {
69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  return static_cast<user_prefs::PrefRegistrySyncable*>(
70c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      DeprecatedGetPrefRegistry());
712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
72