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

source_set("sync") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    # TODO(crbug.com/850428): Move consent_auditor_factory.* back to
    # ios/chrome/browser/consent_auditor, when it does not depend on
    # UserEventService anymore. Currently this is not possible due to a
    # BUILD.gn depedency.
    "consent_auditor_factory.cc",
    "consent_auditor_factory.h",
    "ios_chrome_sync_client.h",
    "ios_chrome_sync_client.mm",
    "ios_chrome_synced_tab_delegate.h",
    "ios_chrome_synced_tab_delegate.mm",
    "ios_user_event_service_factory.cc",
    "ios_user_event_service_factory.h",
    "model_type_store_service_factory.cc",
    "model_type_store_service_factory.h",
    "profile_sync_service_factory.cc",
    "profile_sync_service_factory.h",
    "sync_observer_bridge.h",
    "sync_observer_bridge.mm",
    "sync_setup_service.cc",
    "sync_setup_service.h",
    "sync_setup_service_factory.cc",
    "sync_setup_service_factory.h",
    "synced_sessions_bridge.h",
    "synced_sessions_bridge.mm",
  ]
  deps = [
    "//base",
    "//components/autofill/core/browser",
    "//components/browser_sync",
    "//components/consent_auditor",
    "//components/dom_distiller/core",
    "//components/history/core/browser",
    "//components/invalidation/impl",
    "//components/keyed_service/core",
    "//components/keyed_service/ios",
    "//components/network_time",
    "//components/password_manager/core/browser",
    "//components/password_manager/sync/browser",
    "//components/pref_registry",
    "//components/prefs",
    "//components/reading_list/core",
    "//components/search_engines",
    "//components/sessions",
    "//components/signin/core/browser",
    "//components/sync",
    "//components/sync_preferences",
    "//components/sync_sessions",
    "//components/version_info",
    "//google_apis",
    "//ios/chrome/browser",
    "//ios/chrome/browser/autofill",
    "//ios/chrome/browser/bookmarks",
    "//ios/chrome/browser/browser_state",
    "//ios/chrome/browser/dom_distiller",
    "//ios/chrome/browser/favicon",
    "//ios/chrome/browser/gcm",
    "//ios/chrome/browser/history",
    "//ios/chrome/browser/invalidation",
    "//ios/chrome/browser/passwords",
    "//ios/chrome/browser/reading_list",
    "//ios/chrome/browser/search_engines",
    "//ios/chrome/browser/sessions",
    "//ios/chrome/browser/signin",
    "//ios/chrome/browser/sync/glue",
    "//ios/chrome/browser/sync/sessions",
    "//ios/chrome/browser/tabs",
    "//ios/chrome/browser/undo",
    "//ios/chrome/common",
    "//ios/web",
    "//net",
    "//ui/base",
    "//url",
  ]
  allow_circular_includes_from = [
    "//ios/chrome/browser/history",
    "//ios/chrome/browser/passwords",
    "//ios/chrome/browser/reading_list",
    "//ios/chrome/browser/signin",
    "//ios/chrome/browser/sync/glue",
    "//ios/chrome/browser/sync/sessions",
  ]
}

source_set("test_support") {
  testonly = true
  sources = [
    "ios_chrome_profile_sync_test_util.cc",
    "ios_chrome_profile_sync_test_util.h",
    "sync_setup_service_mock.cc",
    "sync_setup_service_mock.h",
  ]
  deps = [
    ":sync",
    "//base",
    "//components/browser_sync",
    "//components/browser_sync:test_support",
    "//components/keyed_service/core",
    "//components/keyed_service/ios",
    "//components/signin/core/browser",
    "//components/sync",
    "//components/sync:test_support_driver",
    "//ios/chrome/browser/browser_state",
    "//ios/chrome/browser/signin",
    "//ios/chrome/common",
    "//ios/web",
  ]
  public_deps = [
    "//testing/gmock",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "profile_sync_service_factory_unittest.cc",
  ]
  deps = [
    ":sync",
    "//base",
    "//components/browser_sync",
    "//components/sync",
    "//ios/chrome/browser/browser_state:test_support",
    "//ios/web/public/test",
    "//testing/gtest",
  ]
}
