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

{
  'targets': [
    # Test support files for the 'sync_core' target.
    # GN version: //sync:test_support_sync_core
    {
      'target_name': 'test_support_sync_core',
      'type': 'static_library',
      'variables': { 'enable_wexit_time_destructors': 1, },
      'include_dirs': [
        '..',
      ],
      'defines': [
        'SYNC_TEST'
      ],
      'dependencies': [
        '../base/base.gyp:base',
        '../testing/gmock.gyp:gmock',
        '../testing/gtest.gyp:gtest',
        'sync',
      ],
      'export_dependent_settings': [
        '../testing/gmock.gyp:gmock',
        '../testing/gtest.gyp:gtest',
        'sync',
      ],
      'sources': [
        'internal_api/public/base/model_type_test_util.cc',
        'internal_api/public/base/model_type_test_util.h',
        'js/js_test_util.cc',
        'js/js_test_util.h',
        'sessions/test_util.cc',
        'sessions/test_util.h',
        'test/callback_counter.h',
        "test/directory_backing_store_corruption_testing.cc",
        "test/directory_backing_store_corruption_testing.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/engine/test_directory_setter_upper.cc',
        'test/engine/test_directory_setter_upper.h',
        'test/engine/test_id_factory.h',
        'test/engine/test_syncable_utils.cc',
        'test/engine/test_syncable_utils.h',
        'test/fake_encryptor.cc',
        'test/fake_encryptor.h',
        'test/fake_sync_encryption_handler.cc',
        'test/fake_sync_encryption_handler.h',
        'test/mock_invalidation.cc',
        'test/mock_invalidation.h',
        'test/mock_invalidation_tracker.cc',
        'test/mock_invalidation_tracker.h',
        'test/null_directory_change_delegate.cc',
        'test/null_directory_change_delegate.h',
        'test/null_transaction_observer.cc',
        'test/null_transaction_observer.h',
        'test/sessions/mock_debug_info_getter.cc',
        'test/sessions/mock_debug_info_getter.h',
        'test/sessions/test_scoped_session_event_listener.h',
        'test/test_directory_backing_store.cc',
        'test/test_directory_backing_store.h',
        'test/test_transaction_observer.cc',
        'test/test_transaction_observer.h',
        'test/trackable_mock_invalidation.cc',
        'test/trackable_mock_invalidation.h',
        'util/mock_unrecoverable_error_handler.cc',
        'util/mock_unrecoverable_error_handler.h',
        'util/test_unrecoverable_error_handler.cc',
        'util/test_unrecoverable_error_handler.h',
      ],
    },

    # Test support files for the python sync test server.
    # GN version: //sync:test_support_sync_testserver
    {
      'target_name': 'test_support_sync_testserver',
      'type': 'static_library',
      'variables': { 'enable_wexit_time_destructors': 1, },
      'include_dirs': [
        '..',
      ],
      'dependencies': [
        '../base/base.gyp:base',
        '../net/net.gyp:net_test_support',
        # The sync test server uses Python modules generated by the sync protos.
        '../third_party/protobuf/protobuf.gyp:py_proto',
        'sync',
      ],
      'export_dependent_settings': [
        '../base/base.gyp:base',
        '../net/net.gyp:net_test_support',
      ],
      'sources': [
        'test/local_sync_test_server.cc',
        'test/local_sync_test_server.h',
      ],
    },

    # Test support files for the fake sync server.
    # GN version: //sync:test_support_sync_fake_server
    {
      'target_name': 'test_support_sync_fake_server',
      'type': 'static_library',
      'variables': { 'enable_wexit_time_destructors': 1, },
      'include_dirs': [
        '..',
      ],
      'dependencies': [
        '../base/base.gyp:base',
        '../net/net.gyp:net',
        '../testing/gtest.gyp:gtest',
        '../third_party/protobuf/protobuf.gyp:protobuf_lite',
        'sync',
      ],
      'export_dependent_settings': [
        'sync',
      ],
      'sources': [
        'test/fake_server/bookmark_entity.cc',
        'test/fake_server/bookmark_entity.h',
        'test/fake_server/bookmark_entity_builder.cc',
        'test/fake_server/bookmark_entity_builder.h',
        'test/fake_server/entity_builder_factory.cc',
        'test/fake_server/entity_builder_factory.h',
        'test/fake_server/fake_server.cc',
        'test/fake_server/fake_server.h',
        'test/fake_server/fake_server_entity.cc',
        'test/fake_server/fake_server_entity.h',
        'test/fake_server/fake_server_http_post_provider.cc',
        'test/fake_server/fake_server_http_post_provider.h',
        'test/fake_server/fake_server_network_resources.cc',
        'test/fake_server/fake_server_network_resources.h',
        'test/fake_server/fake_server_verifier.cc',
        'test/fake_server/fake_server_verifier.h',
        'test/fake_server/permanent_entity.cc',
        'test/fake_server/permanent_entity.h',
        'test/fake_server/sessions_hierarchy.cc',
        'test/fake_server/sessions_hierarchy.h',
        'test/fake_server/tombstone_entity.cc',
        'test/fake_server/tombstone_entity.h',
        'test/fake_server/unique_client_entity.cc',
        'test/fake_server/unique_client_entity.h',
      ],
    },

    # Test support files for the 'sync_internal_api' target.
    # GN version: //sync:test_support_sync_internal_api
    {
      'target_name': 'test_support_sync_internal_api',
      'type': 'static_library',
      'variables': { 'enable_wexit_time_destructors': 1, },
      'include_dirs': [
        '..',
      ],
      'defines': [
        'SYNC_TEST'
      ],
      'dependencies': [
        '../base/base.gyp:base',
        '../testing/gtest.gyp:gtest',
        'sync',
        'test_support_sync_core',
      ],
      'export_dependent_settings': [
        '../testing/gtest.gyp:gtest',
        'sync',
        'test_support_sync_core',
      ],
      'sources': [
        'internal_api/public/test/data_type_error_handler_mock.h',
        'internal_api/public/test/fake_model_type_connector.h',
        'internal_api/public/test/fake_model_type_processor.h',
        'internal_api/public/test/fake_sync_manager.h',
        'internal_api/public/test/model_type_store_test_util.h',
        'internal_api/public/test/sync_manager_factory_for_profile_sync_test.h',
        'internal_api/public/test/test_entry_factory.h',
        'internal_api/public/test/test_internal_components_factory.h',
        'internal_api/public/test/test_user_share.h',
        'internal_api/test/data_type_error_handler_mock.cc',
        'internal_api/test/fake_model_type_connector.cc',
        'internal_api/test/fake_model_type_processor.cc',
        'internal_api/test/fake_sync_manager.cc',
        'internal_api/test/model_type_store_test_util.cc',
        'internal_api/test/sync_manager_factory_for_profile_sync_test.cc',
        'internal_api/test/sync_manager_for_profile_sync_test.cc',
        'internal_api/test/sync_manager_for_profile_sync_test.h',
        'internal_api/test/test_entry_factory.cc',
        'internal_api/test/test_internal_components_factory.cc',
        'internal_api/test/test_user_share.cc',
      ],
    },

    # Test support files for the 'sync_api' target.
    # GN version: //sync:test_support_sync_api
    {
      'target_name': 'test_support_sync_api',
      'type': 'static_library',
      'include_dirs': [
        '..',
      ],
      'defines': [
        'SYNC_TEST'
      ],
      'dependencies': [
        '../testing/gmock.gyp:gmock',
        'sync',
      ],
      'export_dependent_settings': [
        '../testing/gmock.gyp:gmock',
        'sync',
      ],
      'sources': [
        'api/fake_model_type_change_processor.cc',
        'api/fake_model_type_change_processor.h',
        'api/fake_model_type_service.cc',
        'api/fake_model_type_service.h',
        'api/fake_sync_change_processor.cc',
        'api/fake_sync_change_processor.h',
        'api/fake_syncable_service.cc',
        'api/fake_syncable_service.h',
        'api/mock_model_type_store.cc',
        'api/mock_model_type_store.h',
        'api/sync_change_processor_wrapper_for_test.cc',
        'api/sync_change_processor_wrapper_for_test.h',
        'api/sync_error_factory_mock.cc',
        'api/sync_error_factory_mock.h',
      ],
    },

    # The unit test executable for sync tests.
    # GN version: //sync:sync_unit_tests
    {
      'target_name': 'sync_unit_tests',
      'type': '<(gtest_target_type)',
      # Typed-parametrized tests generate exit-time destructors.
      'variables': { 'enable_wexit_time_destructors': 0, },
      'defines': [
        'SYNC_TEST',
      ],
      'dependencies': [
        '../base/base.gyp:base',
        '../base/base.gyp:run_all_unittests',
        '../google_apis/google_apis.gyp:google_apis',
        '../google_apis/google_apis.gyp:google_apis_test_support',
        '../net/net.gyp:net',
        '../net/net.gyp:net_test_support',
        '../sql/sql.gyp:sql',
        '../sql/sql.gyp:test_support_sql',
        '../testing/gmock.gyp:gmock',
        '../testing/gtest.gyp:gtest',
        '../third_party/leveldatabase/leveldatabase.gyp:leveldatabase',
        '../third_party/protobuf/protobuf.gyp:protobuf_lite',
        'sync',
        'test_support_sync_api',
        'test_support_sync_core',
        'test_support_sync_internal_api',
      ],
      'include_dirs': [
        '..',
      ],
      'sources': [
        'api/attachments/attachment_id_unittest.cc',
        'api/attachments/attachment_metadata_unittest.cc',
        'api/attachments/attachment_unittest.cc',
        'api/entity_data_unittest.cc',
        'api/model_type_service_unittest.cc',
        'api/sync_change_unittest.cc',
        'api/sync_data_unittest.cc',
        'api/sync_error_unittest.cc',
        'api/sync_merge_result_unittest.cc',
        'engine/apply_control_data_updates_unittest.cc',
        'engine/backoff_delay_provider_unittest.cc',
        'engine/directory_commit_contribution_unittest.cc',
        'engine/directory_update_handler_unittest.cc',
        'engine/get_updates_processor_unittest.cc',
        'engine/model_type_worker_unittest.cc',
        'engine/sync_scheduler_unittest.cc',
        'engine/syncer_proto_util_unittest.cc',
        'engine/syncer_unittest.cc',
        'engine/syncer_util_unittest.cc',
        'engine/worker_entity_tracker_unittest.cc',
        'internal_api/attachments/attachment_downloader_impl_unittest.cc',
        'internal_api/attachments/attachment_service_impl_unittest.cc',
        'internal_api/attachments/attachment_service_proxy_unittest.cc',
        'internal_api/attachments/attachment_store_frontend_unittest.cc',
        'internal_api/attachments/attachment_store_test_template.h',
        'internal_api/attachments/attachment_uploader_impl_unittest.cc',
        'internal_api/attachments/fake_attachment_downloader_unittest.cc',
        'internal_api/attachments/fake_attachment_uploader_unittest.cc',
        'internal_api/attachments/in_memory_attachment_store_unittest.cc',
        'internal_api/attachments/on_disk_attachment_store_unittest.cc',
        'internal_api/attachments/task_queue_unittest.cc',
        'internal_api/debug_info_event_listener_unittest.cc',
        'internal_api/http_bridge_unittest.cc',
        'internal_api/js_mutation_event_observer_unittest.cc',
        'internal_api/js_sync_encryption_handler_observer_unittest.cc',
        'internal_api/js_sync_manager_observer_unittest.cc',
        'internal_api/model_type_connector_proxy_unittest.cc',
        'internal_api/model_type_store_backend_unittest.cc',
        'internal_api/model_type_store_impl_unittest.cc',
        'internal_api/processor_entity_tracker_unittest.cc',
        'internal_api/protocol_event_buffer_unittest.cc',
        'internal_api/public/base/attachment_id_proto_unittest.cc',
        'internal_api/public/base/cancelation_signal_unittest.cc',
        'internal_api/public/base/enum_set_unittest.cc',
        'internal_api/public/base/node_ordinal_unittest.cc',
        'internal_api/public/base/ordinal_unittest.cc',
        'internal_api/public/base/unique_position_unittest.cc',
        'internal_api/public/change_record_unittest.cc',
        'internal_api/public/data_batch_impl_unittest.cc',
        'internal_api/public/engine/model_safe_worker_unittest.cc',
        'internal_api/public/sessions/sync_session_snapshot_unittest.cc',
        'internal_api/public/simple_metadata_change_list_unittest.cc',
        'internal_api/public/util/immutable_unittest.cc',
        'internal_api/public/util/proto_value_ptr_unittest.cc',
        'internal_api/public/util/weak_handle_unittest.cc',
        'internal_api/shared_model_type_processor_unittest.cc',
        'internal_api/sync_encryption_handler_impl_unittest.cc',
        'internal_api/sync_manager_impl_unittest.cc',
        'internal_api/syncapi_server_connection_manager_unittest.cc',
        'js/js_event_details_unittest.cc',
        'js/sync_js_controller_unittest.cc',
        'protocol/proto_enum_conversions_unittest.cc',
        'protocol/proto_value_conversions_unittest.cc',
        'sessions/model_type_registry_unittest.cc',
        'sessions/nudge_tracker_unittest.cc',
        'sessions/status_controller_unittest.cc',
        'syncable/directory_backing_store_unittest.cc',
        'syncable/directory_unittest.cc',
        'syncable/directory_unittest.h',
        'syncable/entry_kernel_unittest.cc',
        'syncable/model_type_unittest.cc',
        'syncable/nigori_util_unittest.cc',
        'syncable/parent_child_index_unittest.cc',
        'syncable/syncable_enum_conversions_unittest.cc',
        'syncable/syncable_id_unittest.cc',
        'syncable/syncable_unittest.cc',
        'syncable/syncable_util_unittest.cc',
        'util/cryptographer_unittest.cc',
        'util/data_type_histogram_unittest.cc',
        'util/get_session_name_unittest.cc',
        'util/nigori_unittest.cc',
        'util/protobuf_unittest.cc',
      ],
      'conditions': [
        ['OS == "android"', {
          'dependencies': [
            '../testing/android/native_test.gyp:native_test_native_code',
          ],
        }],
        ['OS=="linux" and chromeos==1', {
          # Required by get_session_name_unittest.cc on Chrome OS.
          'dependencies': [
            '../chromeos/chromeos.gyp:chromeos',
          ],
        }],
        ['OS == "ios"', {
          'sources!': [
            'internal_api/http_bridge_unittest.cc',
          ],
        }],
      ],
    },
  ],
  'conditions': [
    ['OS != "ios"', {
      'targets': [
        # A tool that can be used to launch a python sync server instance.
        {
          'target_name': 'run_sync_testserver',
          'type': 'executable',
          'dependencies': [
            '../base/base.gyp:base',
            '../base/base.gyp:test_support_base',
            '../net/net.gyp:net_test_support',
            '../testing/gtest.gyp:gtest',
            'test_support_sync_testserver',
          ],
          'sources': [
            'tools/testserver/run_sync_testserver.cc',
          ],
        },
      ],
    }],
    ['OS == "android"', {
      'targets': [
        {
          # GN: //sync/android:sync_javatests
          'target_name': 'sync_javatests',
          'type': 'none',
          'variables': {
            'java_in_dir': '../sync/android/javatests',
          },
          'dependencies': [
            'sync_java',
            'sync_java_test_support',
            '../base/base.gyp:base_java_test_support',
          ],
          'includes': [ '../build/java.gypi' ],
        },
        {
          # GN: //sync:sync_java_test_support
          'target_name': 'sync_java_test_support',
          'type': 'none',
          'variables': {
            'java_in_dir': '../sync/test/android/javatests',
          },
          'dependencies': [
            'sync_java',
            '../base/base.gyp:base_java_test_support',
          ],
          'includes': [ '../build/java.gypi' ],
        },
        {
          # GN: //sync:sync_fake_server_jni_headers
          'target_name': 'sync_fake_server_jni_headers',
          'type': 'none',
          'sources': [
            '../chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/FakeServerHelper.java',
          ],
          'variables': {
            'jni_gen_package': 'sync/test/fake_server',
            'jni_generator_ptr_type': 'long',
          },
          'includes': [ '../build/jni_generator.gypi' ],
        },
        {
          # GN: //sync:test_support_sync_proto_java
          'target_name': 'test_support_sync_proto_java',
          'type': 'none',
          'variables': {
            'proto_in_dir': '<(INTERMEDIATE_DIR)/sync_protos',
            # Set this variable so that sync_proto_source_paths refers to the
            # temporary proto definitions created here.
            'sync_proto_sources_dir': '<(INTERMEDIATE_DIR)/sync_protos',
          },
          'actions': [
            {
              'action_name': 'run_script',
              'inputs': [
                'protocol/prepare_protos_for_java_tests.py',
                # Use the original list of proto files (defined in sync.gyp).
                '<@(sync_proto_sources)',
              ],
              'outputs': [
                '<@(sync_proto_source_paths)',
              ],
              'action': [
                'python',
                'protocol/prepare_protos_for_java_tests.py',
                '--output_dir',
                '<(INTERMEDIATE_DIR)/sync_protos',
                # Use the original list of proto files (defined in sync.gyp).
                '<@(sync_proto_sources)'
              ],
            },
          ],
          'sources': [
            '<@(sync_proto_source_paths)',
          ],
          'includes': ['protocol/protocol.gypi', '../build/protoc_java.gypi'],
        },
        {
          # GN: //sync:test_support_sync_fake_server_android
          'target_name': 'test_support_sync_fake_server_android',
          'type': 'static_library',
          'dependencies': [
            'sync_fake_server_jni_headers',
            'test_support_sync_fake_server',
            '../testing/gtest.gyp:gtest',
            '../base/base.gyp:base',
          ],
          'export_dependent_settings': [
            '../testing/gtest.gyp:gtest',
          ],
          'sources': [
            'test/fake_server/android/fake_server_helper_android.cc',
            'test/fake_server/android/fake_server_helper_android.h',
          ],
        },
        {
          # GN: //sync:sync_unit_tests_apk
          'target_name': 'sync_unit_tests_apk',
          'type': 'none',
          'dependencies': [
            'sync_unit_tests',
          ],
          'variables': {
            'test_suite_name': 'sync_unit_tests',
            'isolate_file': 'sync_unit_tests.isolate',
          },
          'includes': [ '../build/apk_test.gypi' ],
        },
      ],
      'conditions': [
        ['test_isolation_mode != "noop"', {
          'targets': [
            {
              'target_name': 'sync_unit_tests_apk_run',
              'type': 'none',
              'dependencies': [
                'sync_unit_tests_apk',
              ],
              'includes': [
                '../build/isolate.gypi',
              ],
              'sources': [
                'sync_unit_tests_apk.isolate',
              ],
            },
          ],
        }],
      ],
    }],
    ['test_isolation_mode != "noop"', {
      'targets': [
        {
          'target_name': 'sync_unit_tests_run',
          'type': 'none',
          'dependencies': [
            'sync_unit_tests',
          ],
          'includes': [
            '../build/isolate.gypi',
          ],
          'sources': [
            'sync_unit_tests.isolate',
          ],
        },
      ],
    }],
  ],
}
