testing_pref_service_syncable.cc 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. // Copyright (c) 2013 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. #include "components/sync_preferences/testing_pref_service_syncable.h"
  5. #include <memory>
  6. #include "base/bind.h"
  7. #include "components/pref_registry/pref_registry_syncable.h"
  8. #include "components/prefs/pref_notifier_impl.h"
  9. #include "components/prefs/pref_value_store.h"
  10. #include "testing/gtest/include/gtest/gtest.h"
  11. template <>
  12. TestingPrefServiceBase<sync_preferences::PrefServiceSyncable,
  13. user_prefs::PrefRegistrySyncable>::
  14. TestingPrefServiceBase(TestingPrefStore* managed_prefs,
  15. TestingPrefStore* supervised_user_prefs,
  16. TestingPrefStore* extension_prefs,
  17. TestingPrefStore* standalone_browser_prefs,
  18. TestingPrefStore* user_prefs,
  19. TestingPrefStore* recommended_prefs,
  20. user_prefs::PrefRegistrySyncable* pref_registry,
  21. PrefNotifierImpl* pref_notifier)
  22. : sync_preferences::PrefServiceSyncable(
  23. std::unique_ptr<PrefNotifierImpl>(pref_notifier),
  24. std::make_unique<PrefValueStore>(managed_prefs,
  25. supervised_user_prefs,
  26. extension_prefs,
  27. standalone_browser_prefs,
  28. /*command_line_prefs=*/nullptr,
  29. user_prefs,
  30. recommended_prefs,
  31. pref_registry->defaults().get(),
  32. pref_notifier),
  33. user_prefs,
  34. standalone_browser_prefs,
  35. pref_registry,
  36. /*pref_model_associator_client=*/nullptr,
  37. base::BindRepeating(
  38. &TestingPrefServiceBase<
  39. PrefServiceSyncable,
  40. user_prefs::PrefRegistrySyncable>::HandleReadError),
  41. false),
  42. managed_prefs_(managed_prefs),
  43. extension_prefs_(extension_prefs),
  44. standalone_browser_prefs_(standalone_browser_prefs),
  45. user_prefs_(user_prefs),
  46. recommended_prefs_(recommended_prefs) {}
  47. namespace sync_preferences {
  48. TestingPrefServiceSyncable::TestingPrefServiceSyncable()
  49. : TestingPrefServiceBase<PrefServiceSyncable,
  50. user_prefs::PrefRegistrySyncable>(
  51. /*managed_prefs=*/new TestingPrefStore(),
  52. /*supervised_user_prefs=*/new TestingPrefStore(),
  53. /*extension_prefs=*/new TestingPrefStore(),
  54. /*standalone_browser_prefs=*/new TestingPrefStore(),
  55. /*user_prefs=*/new TestingPrefStore(),
  56. /*recommended_prefs=*/new TestingPrefStore(),
  57. new user_prefs::PrefRegistrySyncable(),
  58. new PrefNotifierImpl()) {}
  59. TestingPrefServiceSyncable::TestingPrefServiceSyncable(
  60. TestingPrefStore* managed_prefs,
  61. TestingPrefStore* supervised_user_prefs,
  62. TestingPrefStore* extension_prefs,
  63. TestingPrefStore* standalone_browser_prefs,
  64. TestingPrefStore* user_prefs,
  65. TestingPrefStore* recommended_prefs,
  66. user_prefs::PrefRegistrySyncable* pref_registry,
  67. PrefNotifierImpl* pref_notifier)
  68. : TestingPrefServiceBase<PrefServiceSyncable,
  69. user_prefs::PrefRegistrySyncable>(
  70. managed_prefs,
  71. supervised_user_prefs,
  72. extension_prefs,
  73. standalone_browser_prefs,
  74. user_prefs,
  75. recommended_prefs,
  76. pref_registry,
  77. pref_notifier) {}
  78. TestingPrefServiceSyncable::~TestingPrefServiceSyncable() = default;
  79. user_prefs::PrefRegistrySyncable* TestingPrefServiceSyncable::registry() {
  80. return static_cast<user_prefs::PrefRegistrySyncable*>(
  81. DeprecatedGetPrefRegistry());
  82. }
  83. } // namespace sync_preferences