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

import("//build/config/features.gni")
import("//testing/test.gni")

group("sync") {
  public_deps = [
    ":rest_of_sync",
    "//components/sync/driver",
    "//components/sync/trusted_vault",
  ]
}

group("test_support") {
  testonly = true

  public_deps = [
    ":sync",
    ":test_support_engine",
    ":test_support_model",
    "//components/sync/base:test_support",
    "//components/sync/driver:test_support",
    "//components/sync/js:test_support",
  ]
}

# TODO(crbug.com/947443): This target should be split up into "engine", "model"
# etc, but currently they all depend on each other.
static_library("rest_of_sync") {
  sources = [
    "engine/commit_and_get_updates_types.cc",
    "engine/commit_and_get_updates_types.h",
    "engine/commit_queue.h",
    "engine/configure_reason.h",
    "engine/cycle/commit_counters.cc",
    "engine/cycle/commit_counters.h",
    "engine/cycle/model_neutral_state.cc",
    "engine/cycle/model_neutral_state.h",
    "engine/cycle/sync_cycle_snapshot.cc",
    "engine/cycle/sync_cycle_snapshot.h",
    "engine/cycle/update_counters.cc",
    "engine/cycle/update_counters.h",
    "engine/data_type_activation_response.cc",
    "engine/data_type_activation_response.h",
    "engine/data_type_debug_info_listener.cc",
    "engine/data_type_debug_info_listener.h",
    "engine/engine_components_factory.h",
    "engine/engine_components_factory_impl.cc",
    "engine/engine_components_factory_impl.h",
    "engine/engine_util.cc",
    "engine/engine_util.h",
    "engine/events/protocol_event.cc",
    "engine/events/protocol_event.h",
    "engine/events/protocol_event_observer.h",
    "engine/forwarding_model_type_processor.cc",
    "engine/forwarding_model_type_processor.h",
    "engine/model_safe_worker.cc",
    "engine/model_safe_worker.h",
    "engine/model_type_configurer.cc",
    "engine/model_type_configurer.h",
    "engine/model_type_connector.h",
    "engine/model_type_processor.h",
    "engine/model_type_processor_proxy.cc",
    "engine/model_type_processor_proxy.h",
    "engine/net/http_bridge.cc",
    "engine/net/http_bridge.h",
    "engine/net/http_post_provider_factory.h",
    "engine/net/http_post_provider_interface.h",
    "engine/passive_model_worker.cc",
    "engine/passive_model_worker.h",
    "engine/polling_constants.cc",
    "engine/polling_constants.h",
    "engine/shutdown_reason.cc",
    "engine/shutdown_reason.h",
    "engine/sync_auth_provider.h",
    "engine/sync_backend_registrar.cc",
    "engine/sync_backend_registrar.h",
    "engine/sync_credentials.h",
    "engine/sync_encryption_handler.h",
    "engine/sync_engine.cc",
    "engine/sync_engine.h",
    "engine/sync_engine_host.h",
    "engine/sync_engine_switches.cc",
    "engine/sync_engine_switches.h",
    "engine/sync_manager.cc",
    "engine/sync_manager.h",
    "engine/sync_manager_factory.cc",
    "engine/sync_manager_factory.h",
    "engine/sync_status.cc",
    "engine/sync_status.h",
    "engine/sync_status_observer.h",
    "engine/sync_string_conversions.cc",
    "engine/sync_string_conversions.h",
    "engine_impl/all_status.cc",
    "engine_impl/all_status.h",
    "engine_impl/backoff_delay_provider.cc",
    "engine_impl/backoff_delay_provider.h",
    "engine_impl/bookmark_update_preprocessing.cc",
    "engine_impl/bookmark_update_preprocessing.h",
    "engine_impl/commit.cc",
    "engine_impl/commit.h",
    "engine_impl/commit_contribution.h",
    "engine_impl/commit_contribution_impl.cc",
    "engine_impl/commit_contribution_impl.h",
    "engine_impl/commit_contributor.h",
    "engine_impl/commit_processor.cc",
    "engine_impl/commit_processor.h",
    "engine_impl/commit_util.cc",
    "engine_impl/commit_util.h",
    "engine_impl/cycle/data_type_debug_info_emitter.cc",
    "engine_impl/cycle/data_type_debug_info_emitter.h",
    "engine_impl/cycle/data_type_tracker.cc",
    "engine_impl/cycle/data_type_tracker.h",
    "engine_impl/cycle/debug_info_getter.h",
    "engine_impl/cycle/nudge_tracker.cc",
    "engine_impl/cycle/nudge_tracker.h",
    "engine_impl/cycle/status_controller.cc",
    "engine_impl/cycle/status_controller.h",
    "engine_impl/cycle/sync_cycle.cc",
    "engine_impl/cycle/sync_cycle.h",
    "engine_impl/cycle/sync_cycle_context.cc",
    "engine_impl/cycle/sync_cycle_context.h",
    "engine_impl/debug_info_event_listener.cc",
    "engine_impl/debug_info_event_listener.h",
    "engine_impl/events/commit_request_event.cc",
    "engine_impl/events/commit_request_event.h",
    "engine_impl/events/commit_response_event.cc",
    "engine_impl/events/commit_response_event.h",
    "engine_impl/events/configure_get_updates_request_event.cc",
    "engine_impl/events/configure_get_updates_request_event.h",
    "engine_impl/events/get_updates_response_event.cc",
    "engine_impl/events/get_updates_response_event.h",
    "engine_impl/events/normal_get_updates_request_event.cc",
    "engine_impl/events/normal_get_updates_request_event.h",
    "engine_impl/events/poll_get_updates_request_event.cc",
    "engine_impl/events/poll_get_updates_request_event.h",
    "engine_impl/events/protocol_event_buffer.cc",
    "engine_impl/events/protocol_event_buffer.h",
    "engine_impl/get_updates_delegate.cc",
    "engine_impl/get_updates_delegate.h",
    "engine_impl/get_updates_processor.cc",
    "engine_impl/get_updates_processor.h",
    "engine_impl/js_sync_encryption_handler_observer.cc",
    "engine_impl/js_sync_encryption_handler_observer.h",
    "engine_impl/js_sync_manager_observer.cc",
    "engine_impl/js_sync_manager_observer.h",
    "engine_impl/loopback_server/loopback_connection_manager.cc",
    "engine_impl/loopback_server/loopback_connection_manager.h",
    "engine_impl/loopback_server/loopback_server.cc",
    "engine_impl/loopback_server/loopback_server.h",
    "engine_impl/loopback_server/loopback_server_entity.cc",
    "engine_impl/loopback_server/loopback_server_entity.h",
    "engine_impl/loopback_server/persistent_bookmark_entity.cc",
    "engine_impl/loopback_server/persistent_bookmark_entity.h",
    "engine_impl/loopback_server/persistent_permanent_entity.cc",
    "engine_impl/loopback_server/persistent_permanent_entity.h",
    "engine_impl/loopback_server/persistent_tombstone_entity.cc",
    "engine_impl/loopback_server/persistent_tombstone_entity.h",
    "engine_impl/loopback_server/persistent_unique_client_entity.cc",
    "engine_impl/loopback_server/persistent_unique_client_entity.h",
    "engine_impl/model_type_connector_proxy.cc",
    "engine_impl/model_type_connector_proxy.h",
    "engine_impl/model_type_registry.cc",
    "engine_impl/model_type_registry.h",
    "engine_impl/model_type_worker.cc",
    "engine_impl/model_type_worker.h",
    "engine_impl/net/server_connection_manager.cc",
    "engine_impl/net/server_connection_manager.h",
    "engine_impl/net/sync_server_connection_manager.cc",
    "engine_impl/net/sync_server_connection_manager.h",
    "engine_impl/net/url_translator.cc",
    "engine_impl/net/url_translator.h",
    "engine_impl/nudge_handler.h",
    "engine_impl/nudge_source.h",
    "engine_impl/sync_cycle_event.cc",
    "engine_impl/sync_cycle_event.h",
    "engine_impl/sync_engine_event_listener.h",
    "engine_impl/sync_manager_impl.cc",
    "engine_impl/sync_manager_impl.h",
    "engine_impl/sync_scheduler.h",
    "engine_impl/sync_scheduler_impl.cc",
    "engine_impl/sync_scheduler_impl.h",
    "engine_impl/syncer.cc",
    "engine_impl/syncer.h",
    "engine_impl/syncer_proto_util.cc",
    "engine_impl/syncer_proto_util.h",
    "engine_impl/traffic_logger.cc",
    "engine_impl/traffic_logger.h",
    "engine_impl/update_handler.h",
    "model/blocking_model_type_store.h",
    "model/conflict_resolution.h",
    "model/data_batch.h",
    "model/data_type_activation_request.cc",
    "model/data_type_activation_request.h",
    "model/data_type_error_handler.h",
    "model/data_type_error_handler_impl.cc",
    "model/data_type_error_handler_impl.h",
    "model/entity_change.cc",
    "model/entity_change.h",
    "model/entity_data.cc",
    "model/entity_data.h",
    "model/metadata_batch.cc",
    "model/metadata_batch.h",
    "model/metadata_change_list.h",
    "model/model_error.cc",
    "model/model_error.h",
    "model/model_type_change_processor.h",
    "model/model_type_store.h",
    "model/model_type_store_base.cc",
    "model/model_type_store_base.h",
    "model/model_type_store_service.h",
    "model/model_type_sync_bridge.cc",
    "model/model_type_sync_bridge.h",
    "model/mutable_data_batch.cc",
    "model/mutable_data_batch.h",
    "model/string_ordinal.h",
    "model/sync_change.cc",
    "model/sync_change.h",
    "model/sync_change_processor.h",
    "model/sync_data.cc",
    "model/sync_data.h",
    "model/sync_error.cc",
    "model/sync_error.h",
    "model/sync_error_factory.h",
    "model/sync_metadata_store.h",
    "model/syncable_service.h",
    "model/time.h",
    "model_impl/blocking_model_type_store_impl.cc",
    "model_impl/blocking_model_type_store_impl.h",
    "model_impl/client_tag_based_model_type_processor.cc",
    "model_impl/client_tag_based_model_type_processor.h",
    "model_impl/client_tag_based_remote_update_handler.cc",
    "model_impl/client_tag_based_remote_update_handler.h",
    "model_impl/dummy_metadata_change_list.cc",
    "model_impl/dummy_metadata_change_list.h",
    "model_impl/forwarding_model_type_controller_delegate.cc",
    "model_impl/forwarding_model_type_controller_delegate.h",
    "model_impl/in_memory_metadata_change_list.cc",
    "model_impl/in_memory_metadata_change_list.h",
    "model_impl/model_type_store_backend.cc",
    "model_impl/model_type_store_backend.h",
    "model_impl/model_type_store_impl.cc",
    "model_impl/model_type_store_impl.h",
    "model_impl/model_type_store_service_impl.cc",
    "model_impl/model_type_store_service_impl.h",
    "model_impl/processor_entity.cc",
    "model_impl/processor_entity.h",
    "model_impl/processor_entity_tracker.cc",
    "model_impl/processor_entity_tracker.h",
    "model_impl/proxy_model_type_controller_delegate.cc",
    "model_impl/proxy_model_type_controller_delegate.h",
    "model_impl/sync_metadata_store_change_list.cc",
    "model_impl/sync_metadata_store_change_list.h",
    "model_impl/syncable_service_based_bridge.cc",
    "model_impl/syncable_service_based_bridge.h",
    "nigori/cryptographer.cc",
    "nigori/cryptographer.h",
    "nigori/cryptographer_impl.cc",
    "nigori/cryptographer_impl.h",
    "nigori/keystore_keys_cryptographer.cc",
    "nigori/keystore_keys_cryptographer.h",
    "nigori/keystore_keys_handler.h",
    "nigori/nigori.cc",
    "nigori/nigori.h",
    "nigori/nigori_key_bag.cc",
    "nigori/nigori_key_bag.h",
    "nigori/nigori_local_change_processor.cc",
    "nigori/nigori_local_change_processor.h",
    "nigori/nigori_model_type_processor.cc",
    "nigori/nigori_model_type_processor.h",
    "nigori/nigori_state.cc",
    "nigori/nigori_state.h",
    "nigori/nigori_storage.h",
    "nigori/nigori_storage_impl.cc",
    "nigori/nigori_storage_impl.h",
    "nigori/nigori_sync_bridge.h",
    "nigori/nigori_sync_bridge_impl.cc",
    "nigori/nigori_sync_bridge_impl.h",
    "nigori/pending_local_nigori_commit.cc",
    "nigori/pending_local_nigori_commit.h",
  ]

  configs += [ "//build/config:precompiled_headers" ]

  public_deps = [
    "//base",
    "//components/sync/base",
    "//components/sync/js",
    "//components/sync/protocol",
    "//components/sync/protocol:util",
    "//net",
    "//third_party/leveldatabase",
    "//url",
  ]
  deps = [
    "//base:i18n",
    "//build:branding_buildflags",
    "//components/keyed_service/core",
    "//components/variations/net",
    "//services/network/public/cpp",
    "//sql",
    "//third_party/crc32c",
    "//third_party/zlib/google:compression_utils",
    "//ui/base",
  ]

  configs += [ "//build/config/compiler:wexit_time_destructors" ]
}

static_library("test_support_engine") {
  testonly = true
  sources = [
    "engine/fake_model_type_connector.cc",
    "engine/fake_model_type_connector.h",
    "engine/fake_model_type_processor.cc",
    "engine/fake_model_type_processor.h",
    "engine/fake_sync_engine.cc",
    "engine/fake_sync_engine.h",
    "engine/fake_sync_manager.cc",
    "engine/fake_sync_manager.h",
    "engine/mock_sync_engine.cc",
    "engine/mock_sync_engine.h",
    "engine/sync_engine_host_stub.cc",
    "engine/sync_engine_host_stub.h",
    "engine/test_engine_components_factory.cc",
    "engine/test_engine_components_factory.h",
    "engine_impl/cycle/mock_debug_info_getter.cc",
    "engine_impl/cycle/mock_debug_info_getter.h",
    "engine_impl/cycle/test_util.cc",
    "engine_impl/cycle/test_util.h",
    "test/engine/fake_model_worker.cc",
    "test/engine/fake_model_worker.h",
    "test/engine/fake_sync_scheduler.cc",
    "test/engine/fake_sync_scheduler.h",
    "test/engine/mock_connection_manager.cc",
    "test/engine/mock_connection_manager.h",
    "test/engine/mock_model_type_processor.cc",
    "test/engine/mock_model_type_processor.h",
    "test/engine/mock_model_type_worker.cc",
    "test/engine/mock_model_type_worker.h",
    "test/engine/mock_nudge_handler.cc",
    "test/engine/mock_nudge_handler.h",
    "test/engine/mock_update_handler.cc",
    "test/engine/mock_update_handler.h",
    "test/engine/single_type_mock_server.cc",
    "test/engine/single_type_mock_server.h",
    "test/fake_sync_encryption_handler.cc",
    "test/fake_sync_encryption_handler.h",
  ]

  public_deps = [ "//components/sync/base:test_support" ]

  deps = [
    ":sync",
    "//services/network:test_support",
  ]

  configs += [ "//build/config/compiler:wexit_time_destructors" ]
}

static_library("test_support_model") {
  testonly = true
  sources = [
    "model/data_type_error_handler_mock.cc",
    "model/data_type_error_handler_mock.h",
    "model/fake_model_type_change_processor.cc",
    "model/fake_model_type_change_processor.h",
    "model/fake_model_type_controller_delegate.cc",
    "model/fake_model_type_controller_delegate.h",
    "model/fake_model_type_sync_bridge.cc",
    "model/fake_model_type_sync_bridge.h",
    "model/fake_sync_change_processor.cc",
    "model/fake_sync_change_processor.h",
    "model/mock_model_type_change_processor.cc",
    "model/mock_model_type_change_processor.h",
    "model/model_type_store_test_util.cc",
    "model/model_type_store_test_util.h",
    "model/stub_model_type_sync_bridge.cc",
    "model/stub_model_type_sync_bridge.h",
    "model/sync_change_processor_wrapper_for_test.cc",
    "model/sync_change_processor_wrapper_for_test.h",
    "model/sync_error_factory_mock.cc",
    "model/sync_error_factory_mock.h",
    "model/test_model_type_store_service.cc",
    "model/test_model_type_store_service.h",
  ]

  public_deps = [ "//components/sync/base:test_support" ]

  deps = [ ":sync" ]
}

static_library("test_support_nigori") {
  testonly = true
  sources = [
    "nigori/nigori_test_utils.cc",
    "nigori/nigori_test_utils.h",
  ]

  deps = [
    ":sync",
    "//testing/gtest",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "base/bind_to_task_runner_unittest.cc",
    "base/cancelation_signal_unittest.cc",
    "base/client_tag_hash_unittest.cc",
    "base/enum_set_unittest.cc",
    "base/immutable_unittest.cc",
    "base/model_type_unittest.cc",
    "base/node_ordinal_unittest.cc",
    "base/ordinal_unittest.cc",
    "base/protobuf_unittest.cc",
    "base/sync_prefs_unittest.cc",
    "base/sync_util_unittest.cc",
    "base/system_encryptor_unittest.cc",
    "base/unique_position_unittest.cc",
    "base/user_demographics_unittest.cc",
    "base/weak_handle_unittest.cc",
    "driver/about_sync_util_unittest.cc",
    "driver/backend_migrator_unittest.cc",
    "driver/data_type_manager_impl_unittest.cc",
    "driver/glue/sync_engine_impl_unittest.cc",
    "driver/model_association_manager_unittest.cc",
    "driver/model_type_controller_unittest.cc",
    "driver/passphrase_type_metrics_provider_unittest.cc",
    "driver/profile_sync_service_startup_unittest.cc",
    "driver/profile_sync_service_unittest.cc",
    "driver/startup_controller_unittest.cc",
    "driver/sync_auth_manager_unittest.cc",
    "driver/sync_service_crypto_unittest.cc",
    "driver/sync_service_utils_unittest.cc",
    "driver/sync_session_durations_metrics_recorder_unittest.cc",
    "driver/sync_stopped_reporter_unittest.cc",
    "driver/sync_user_settings_unittest.cc",
    "engine/cycle/sync_cycle_snapshot_unittest.cc",
    "engine/model_safe_worker_unittest.cc",
    "engine/net/http_bridge_unittest.cc",
    "engine/sync_backend_registrar_unittest.cc",
    "engine_impl/backoff_delay_provider_unittest.cc",
    "engine_impl/bookmark_update_preprocessing_unittest.cc",
    "engine_impl/commit_contribution_impl_unittest.cc",
    "engine_impl/commit_processor_unittest.cc",
    "engine_impl/cycle/data_type_debug_info_emitter_unittest.cc",
    "engine_impl/cycle/nudge_tracker_unittest.cc",
    "engine_impl/cycle/status_controller_unittest.cc",
    "engine_impl/debug_info_event_listener_unittest.cc",
    "engine_impl/events/protocol_event_buffer_unittest.cc",
    "engine_impl/get_updates_processor_unittest.cc",
    "engine_impl/js_sync_encryption_handler_observer_unittest.cc",
    "engine_impl/js_sync_manager_observer_unittest.cc",
    "engine_impl/loopback_server/loopback_server_unittest.cc",
    "engine_impl/loopback_server/persistent_bookmark_entity_unittest.cc",
    "engine_impl/loopback_server/persistent_permanent_entity_unittest.cc",
    "engine_impl/loopback_server/persistent_tombstone_entity_unittest.cc",
    "engine_impl/loopback_server/persistent_unique_client_entity_unittest.cc",
    "engine_impl/model_type_registry_unittest.cc",
    "engine_impl/model_type_worker_unittest.cc",
    "engine_impl/net/sync_server_connection_manager_unittest.cc",
    "engine_impl/sync_manager_impl_unittest.cc",
    "engine_impl/sync_scheduler_impl_unittest.cc",
    "engine_impl/syncer_proto_util_unittest.cc",
    "engine_impl/syncer_unittest.cc",
    "invalidations/fcm_handler_unittest.cc",
    "invalidations/interested_data_types_manager_unittest.cc",
    "js/js_event_details_unittest.cc",
    "js/sync_js_controller_unittest.cc",
    "model/entity_data_unittest.cc",
    "model/model_type_sync_bridge_unittest.cc",
    "model/mutable_data_batch_unittest.cc",
    "model/sync_change_unittest.cc",
    "model/sync_data_unittest.cc",
    "model/sync_error_unittest.cc",
    "model_impl/client_tag_based_model_type_processor_unittest.cc",
    "model_impl/client_tag_based_remote_update_handler_unittest.cc",
    "model_impl/in_memory_metadata_change_list_unittest.cc",
    "model_impl/model_type_store_backend_unittest.cc",
    "model_impl/model_type_store_impl_unittest.cc",
    "model_impl/processor_entity_tracker_unittest.cc",
    "model_impl/processor_entity_unittest.cc",
    "model_impl/syncable_service_based_bridge_unittest.cc",
    "nigori/cryptographer_impl_unittest.cc",
    "nigori/keystore_keys_cryptographer_unittest.cc",
    "nigori/nigori_key_bag_unittest.cc",
    "nigori/nigori_model_type_processor_unittest.cc",
    "nigori/nigori_state_unittest.cc",
    "nigori/nigori_storage_impl_unittest.cc",
    "nigori/nigori_sync_bridge_impl_unittest.cc",
    "nigori/nigori_unittest.cc",
    "protocol/proto_enum_conversions_unittest.cc",
    "protocol/proto_value_conversions_unittest.cc",
    "trusted_vault/securebox_unittest.cc",
    "trusted_vault/standalone_trusted_vault_backend_unittest.cc",
    "trusted_vault/trusted_vault_access_token_fetcher_frontend_unittest.cc",
    "trusted_vault/vault_service_api_call_flow_unittest.cc",
  ]

  configs += [ "//build/config:precompiled_headers" ]

  data = [
    "//chrome/test/data/sync/",
    "//net/tools/testserver/",
  ]

  deps = [
    ":sync",
    ":test_support_engine",
    ":test_support_model",
    ":test_support_nigori",
    "//base",
    "//base/test:test_support",
    "//components/gcm_driver:test_support",
    "//components/invalidation/impl",
    "//components/metrics",
    "//components/os_crypt",
    "//components/os_crypt:test_support",
    "//components/prefs:test_support",
    "//components/signin/public/base:test_support",
    "//components/signin/public/identity_manager:test_support",
    "//components/sync/base:test_support",
    "//components/sync/driver:test_support",
    "//components/sync/invalidations:test_support",
    "//components/sync/js:test_support",
    "//components/sync_preferences",
    "//components/sync_preferences:test_support",
    "//components/version_info",
    "//components/version_info:generate_version_info",
    "//components/version_info:version_string",
    "//google_apis:test_support",
    "//google_apis/gcm:gcm",
    "//net",
    "//net:test_support",
    "//services/network:test_support",
    "//services/network/public/cpp",
    "//sql",
    "//sql:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/crc32c",
    "//third_party/leveldatabase",
    "//third_party/protobuf:protobuf_lite",
    "//third_party/zlib/google:compression_utils",
    "//url",
  ]

  if (is_ios) {
    sources -= [ "engine/net/http_bridge_unittest.cc" ]
  }

  if (!is_ios) {
    sources += [ "driver/sync_policy_handler_unittest.cc" ]
    deps += [
      "//components/policy:generated",
      "//components/policy/core/browser",
    ]
  }

  if (is_chromeos) {
    deps += [ "//chromeos/constants" ]
  }
}
