# Copyright 2015 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.

component("prefs") {
  sources = [
    "command_line_pref_store.cc",
    "command_line_pref_store.h",
    "default_pref_store.cc",
    "default_pref_store.h",
    "in_memory_pref_store.cc",
    "in_memory_pref_store.h",
    "json_pref_store.cc",
    "json_pref_store.h",
    "overlay_user_pref_store.cc",
    "overlay_user_pref_store.h",
    "pref_change_registrar.cc",
    "pref_change_registrar.h",
    "pref_member.cc",
    "pref_member.h",
    "pref_notifier_impl.cc",
    "pref_notifier_impl.h",
    "pref_registry.cc",
    "pref_registry.h",
    "pref_registry_simple.cc",
    "pref_registry_simple.h",
    "pref_service.cc",
    "pref_service.h",
    "pref_service_factory.cc",
    "pref_service_factory.h",
    "pref_store.cc",
    "pref_store.h",
    "pref_value_map.cc",
    "pref_value_map.h",
    "pref_value_store.cc",
    "pref_value_store.h",
    "scoped_user_pref_update.cc",
    "scoped_user_pref_update.h",
    "value_map_pref_store.cc",
    "value_map_pref_store.h",
  ]
  if (!is_ios) {
    sources += [
      "base_prefs_export.h",
      "persistent_pref_store.h",
      "pref_filter.h",
      "pref_notifier.h",
      "pref_observer.h",
      "writeable_pref_store.h",
    ]
  }

  defines = [ "COMPONENTS_PREFS_IMPLEMENTATION" ]

  deps = [
    "//base",
  ]
}

static_library("test_support") {
  testonly = true
  sources = [
    "mock_pref_change_callback.cc",
    "mock_pref_change_callback.h",
    "pref_store_observer_mock.cc",
    "pref_store_observer_mock.h",
    "testing_pref_service.cc",
    "testing_pref_service.h",
    "testing_pref_store.cc",
    "testing_pref_store.h",
  ]

  public_deps = [
    ":prefs",
  ]
  deps = [
    "//base",
    "//testing/gmock",
    "//testing/gtest",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "default_pref_store_unittest.cc",
    "in_memory_pref_store_unittest.cc",
    "json_pref_store_unittest.cc",
    "overlay_user_pref_store_unittest.cc",
    "pref_change_registrar_unittest.cc",
    "pref_member_unittest.cc",
    "pref_notifier_impl_unittest.cc",
    "pref_service_unittest.cc",
    "pref_value_map_unittest.cc",
    "pref_value_store_unittest.cc",
    "scoped_user_pref_update_unittest.cc",
  ]

  deps = [
    ":test_support",
    "//base",
    "//base/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
  ]
}
