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

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

if (is_android) {
  import("//build/config/android/config.gni")
  import("//build/config/android/rules.gni")  # For generate_jni().
}

if (is_mac) {
  import("//build/config/mac/mac_sdk.gni")
}

is_linux_without_udev = is_linux && !use_udev

test("device_unittests") {
  sources = [
    "base/synchronization/one_writer_seqlock_unittest.cc",
    "bluetooth/bluetooth_adapter_mac_metrics_unittest.mm",
    "bluetooth/bluetooth_adapter_mac_unittest.mm",
    "bluetooth/bluetooth_adapter_unittest.cc",
    "bluetooth/bluetooth_adapter_win_unittest.cc",
    "bluetooth/bluetooth_advertisement_unittest.cc",
    "bluetooth/bluetooth_device_unittest.cc",
    "bluetooth/bluetooth_device_win_unittest.cc",
    "bluetooth/bluetooth_discovery_filter_unittest.cc",
    "bluetooth/bluetooth_local_gatt_characteristic_unittest.cc",
    "bluetooth/bluetooth_local_gatt_descriptor_unittest.cc",
    "bluetooth/bluetooth_local_gatt_service_unittest.cc",
    "bluetooth/bluetooth_low_energy_advertisement_manager_mac_unittest.mm",
    "bluetooth/bluetooth_low_energy_win_unittest.cc",
    "bluetooth/bluetooth_remote_gatt_characteristic_unittest.cc",
    "bluetooth/bluetooth_remote_gatt_descriptor_unittest.cc",
    "bluetooth/bluetooth_remote_gatt_service_unittest.cc",
    "bluetooth/bluetooth_service_record_win_unittest.cc",
    "bluetooth/bluetooth_task_manager_win_unittest.cc",
    "bluetooth/bluetooth_uuid_unittest.cc",
    "bluetooth/device_unittest.cc",
    "bluetooth/string_util_icu_unittest.cc",
    "bluetooth/test/bluetooth_gatt_server_test.cc",
    "bluetooth/test/bluetooth_gatt_server_test.h",
    "bluetooth/test/bluetooth_test.cc",
    "bluetooth/test/bluetooth_test.h",
    "bluetooth/test/bluetooth_test_android.cc",
    "bluetooth/test/bluetooth_test_android.h",
    "bluetooth/test/bluetooth_test_mac.h",
    "bluetooth/test/bluetooth_test_mac.mm",
    "bluetooth/test/bluetooth_test_win.cc",
    "bluetooth/test/bluetooth_test_win.h",
    "bluetooth/test/mock_bluetooth_cbcharacteristic_mac.h",
    "bluetooth/test/mock_bluetooth_cbcharacteristic_mac.mm",
    "bluetooth/test/mock_bluetooth_cbdescriptor_mac.h",
    "bluetooth/test/mock_bluetooth_cbdescriptor_mac.mm",
    "bluetooth/test/mock_bluetooth_cbperipheral_mac.h",
    "bluetooth/test/mock_bluetooth_cbperipheral_mac.mm",
    "bluetooth/test/mock_bluetooth_cbservice_mac.h",
    "bluetooth/test/mock_bluetooth_cbservice_mac.mm",
    "bluetooth/test/mock_bluetooth_central_manager_mac.h",
    "bluetooth/test/mock_bluetooth_central_manager_mac.mm",
    "bluetooth/test/test_bluetooth_adapter_observer.cc",
    "bluetooth/test/test_bluetooth_adapter_observer.h",
    "bluetooth/test/test_bluetooth_advertisement_observer.cc",
    "bluetooth/test/test_bluetooth_advertisement_observer.h",
    "bluetooth/test/test_bluetooth_local_gatt_service_delegate.cc",
    "bluetooth/test/test_bluetooth_local_gatt_service_delegate.h",
    "bluetooth/test/test_pairing_delegate.cc",
    "bluetooth/test/test_pairing_delegate.h",
    "bluetooth/uribeacon/uri_encoder_unittest.cc",
    "fido/attestation_statement_formats_unittest.cc",
    "fido/ble/fido_ble_connection_unittest.cc",
    "fido/ble/fido_ble_device_unittest.cc",
    "fido/ble/fido_ble_frames_unittest.cc",
    "fido/ble/fido_ble_pairing_delegate_unittest.cc",
    "fido/ble/fido_ble_transaction_unittest.cc",
    "fido/ble_adapter_manager_unittest.cc",
    "fido/cable/fido_cable_device_unittest.cc",
    "fido/cable/fido_cable_discovery_unittest.cc",
    "fido/cable/fido_cable_handshake_handler_unittest.cc",
    "fido/ctap_request_unittest.cc",
    "fido/ctap_response_unittest.cc",
    "fido/fake_fido_discovery_unittest.cc",
    "fido/fido_device_discovery_unittest.cc",
    "fido/fido_parsing_utils_unittest.cc",
    "fido/fido_request_handler_unittest.cc",
    "fido/get_assertion_handler_unittest.cc",
    "fido/get_assertion_task_unittest.cc",
    "fido/hid/fido_hid_message_unittest.cc",
    "fido/mac/browsing_data_deletion_unittest.mm",
    "fido/mac/credential_metadata_unittest.cc",
    "fido/mac/get_assertion_operation_unittest_mac.mm",
    "fido/mac/make_credential_operation_unittest_mac.mm",
    "fido/mac/util_unittest.cc",
    "fido/make_credential_handler_unittest.cc",
    "fido/make_credential_task_unittest.cc",
    "fido/test_callback_receiver_unittest.cc",
    "fido/u2f_command_constructor_unittest.cc",
    "fido/u2f_register_operation_unittest.cc",
    "fido/u2f_sign_operation_unittest.cc",
    "fido/win/type_conversions_unittest.cc",
    "gamepad/abstract_haptic_gamepad_unittest.cc",
    "gamepad/gamepad_id_list_unittest.cc",
    "gamepad/gamepad_provider_unittest.cc",
    "gamepad/gamepad_service_unittest.cc",
    "gamepad/hid_haptic_gamepad_base_unittest.cc",
    "gamepad/public/cpp/gamepad_mojom_traits_unittest.cc",
    "test/run_all_unittests.cc",
  ]

  if (is_fuchsia) {
    sources += [
      "bluetooth/test/bluetooth_test_fuchsia.cc",
      "bluetooth/test/bluetooth_test_fuchsia.h",
    ]
  }

  deps = [
    "//base",
    "//base/test:test_support",
    "//base/third_party/dynamic_annotations:dynamic_annotations",
    "//components/apdu",
    "//components/cbor",
    "//device/base/synchronization",
    "//device/bluetooth",
    "//device/bluetooth:deprecated_experimental_mojo",
    "//device/bluetooth:mocks",
    "//device/bluetooth/uribeacon",
    "//device/fido",
    "//device/fido:mocks",
    "//device/fido:test_support",
    "//device/gamepad",
    "//device/gamepad:test_helpers",
    "//device/gamepad/public/cpp:shared_with_blink",
    "//device/gamepad/public/mojom",
    "//mojo/core/embedder",
    "//mojo/public/cpp/bindings",
    "//mojo/public/cpp/test_support:test_utils",
    "//net",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/blink/public:blink_headers",
    "//tools/usb_gadget",
    "//ui/base",
    "//url",
  ]

  data_deps = [
    "bluetooth/strings:bluetooth_test_strings",
    "//ui/resources:ui_test_pak_data",
  ]

  # U2F:
  # Android doesn't compile.
  # Linux, requires udev.
  if (!is_linux_without_udev && !is_android) {
    sources += [
      "fido/hid/fido_hid_device_unittest.cc",
      "fido/hid/fido_hid_discovery_unittest.cc",
    ]
    deps += [
      "//device/fido:test_support",
      "//services/device/public/cpp/hid",
      "//services/device/public/mojom",
      "//services/service_manager/public/cpp",
      "//services/service_manager/public/mojom",
    ]
  }

  if (use_udev) {
    sources += [ "udev_linux/udev_unittest.cc" ]
    deps += [ "//device/udev_linux" ]
  }

  # USB does not compile on iOS.
  if (!is_ios) {
    sources += [
      "test/test_device_client.cc",
      "test/test_device_client.h",
      "usb/mojo/device_impl_unittest.cc",
      "usb/mojo/device_manager_impl_unittest.cc",
      "usb/public/cpp/usb_utils_unittest.cc",
      "usb/usb_descriptors_unittest.cc",
      "usb/usb_device_handle_unittest.cc",
      "usb/usb_service_unittest.cc",
      "usb/webusb_descriptors_unittest.cc",
    ]
    deps += [
      ":usb_test_gadget",
      "//device/base",
      "//device/base:mocks",
      "//device/usb",
      "//device/usb:test_support",
      "//device/usb/mojo",
      "//device/usb/public/cpp",
      "//device/usb/public/mojom",
      "//net:test_support",
    ]

    if (!is_android) {
      sources += [ "usb/usb_ids_unittest.cc" ]
    }
  }

  # UsbContext is a libusb-specific object.
  if (is_mac || is_win) {
    sources += [ "usb/usb_context_unittest.cc" ]
    deps += [ "//third_party/libusb" ]
  }

  if (is_android) {
    deps += [
      ":bluetooth_test_java",
      ":bluetooth_test_jni_headers",
      "//device/usb:java",
    ]
  }

  if ((is_chromeos || is_linux) && use_dbus) {
    configs += [ "//build/config/linux/dbus" ]

    sources += [
      "bluetooth/bluez/bluetooth_adapter_profile_bluez_unittest.cc",
      "bluetooth/bluez/bluetooth_advertisement_bluez_unittest.cc",
      "bluetooth/bluez/bluetooth_bluez_unittest.cc",
      "bluetooth/bluez/bluetooth_gatt_bluez_unittest.cc",
      "bluetooth/bluez/bluetooth_service_attribute_value_bluez_unittest.cc",
      "bluetooth/bluez/bluetooth_service_record_bluez_unittest.cc",
      "bluetooth/bluez/bluetooth_socket_bluez_unittest.cc",
      "bluetooth/dbus/bluetooth_gatt_application_service_provider_unittest.cc",
      "bluetooth/test/bluetooth_test_bluez.cc",
      "bluetooth/test/bluetooth_test_bluez.h",
    ]

    deps += [ "//dbus" ]
  }

  if (is_linux) {
    if (is_chromecast) {
      # Cast does not support GATT server mode.
      sources -= [
        "bluetooth/bluetooth_local_gatt_characteristic_unittest.cc",
        "bluetooth/bluetooth_local_gatt_descriptor_unittest.cc",
        "bluetooth/bluetooth_local_gatt_service_unittest.cc",
      ]

      sources += [
        "bluetooth/cast/bluetooth_adapter_cast_unittest.cc",
        "bluetooth/cast/bluetooth_utils_unittest.cc",
        "bluetooth/test/bluetooth_test_cast.cc",
        "bluetooth/test/bluetooth_test_cast.h",
      ]

      deps += [
        "//chromecast/device/bluetooth:util",
        "//chromecast/device/bluetooth/le",
        "//chromecast/device/bluetooth/le:test_support",
        "//chromecast/device/bluetooth/shlib:mock_shlib",
      ]
    } else {
      # BLE discovery: works on Linux.
      sources += [ "fido/ble/fido_ble_discovery_unittest.cc" ]
    }
  }

  if (is_mac) {
    deps += [ "//third_party/ocmock" ]
    ldflags = [ "-ObjC" ]
    libs = [
      "IOBluetooth.framework",
      "IOKit.framework",
    ]

    # In the OSX 10.10 SDK, CoreBluetooth became a top level framework.
    # Previously, it was nested in IOBluetooth. In order for Chrome to run on
    # OSes older than OSX 10.10, the top level CoreBluetooth framework must be
    # weakly linked.
    if (mac_sdk_version == "10.10") {
      ldflags += [
        "-weak_framework",
        "CoreBluetooth",
      ]
    }
  }

  if (is_win) {
    sources += [
      "bluetooth/bluetooth_classic_win_fake.cc",
      "bluetooth/bluetooth_classic_win_fake.h",
      "bluetooth/bluetooth_low_energy_win_fake.cc",
      "bluetooth/bluetooth_low_energy_win_fake.h",
      "bluetooth/test/fake_bluetooth_adapter_winrt.cc",
      "bluetooth/test/fake_bluetooth_adapter_winrt.h",
      "bluetooth/test/fake_bluetooth_le_advertisement_data_section_winrt.cc",
      "bluetooth/test/fake_bluetooth_le_advertisement_data_section_winrt.h",
      "bluetooth/test/fake_bluetooth_le_advertisement_publisher_status_changed_event_args_winrt.cc",
      "bluetooth/test/fake_bluetooth_le_advertisement_publisher_status_changed_event_args_winrt.h",
      "bluetooth/test/fake_bluetooth_le_advertisement_publisher_winrt.cc",
      "bluetooth/test/fake_bluetooth_le_advertisement_publisher_winrt.h",
      "bluetooth/test/fake_bluetooth_le_advertisement_received_event_args_winrt.cc",
      "bluetooth/test/fake_bluetooth_le_advertisement_received_event_args_winrt.h",
      "bluetooth/test/fake_bluetooth_le_advertisement_watcher_winrt.cc",
      "bluetooth/test/fake_bluetooth_le_advertisement_watcher_winrt.h",
      "bluetooth/test/fake_bluetooth_le_advertisement_winrt.cc",
      "bluetooth/test/fake_bluetooth_le_advertisement_winrt.h",
      "bluetooth/test/fake_bluetooth_le_device_winrt.cc",
      "bluetooth/test/fake_bluetooth_le_device_winrt.h",
      "bluetooth/test/fake_bluetooth_le_manufacturer_data_winrt.cc",
      "bluetooth/test/fake_bluetooth_le_manufacturer_data_winrt.h",
      "bluetooth/test/fake_device_information_custom_pairing_winrt.cc",
      "bluetooth/test/fake_device_information_custom_pairing_winrt.h",
      "bluetooth/test/fake_device_information_pairing_winrt.cc",
      "bluetooth/test/fake_device_information_pairing_winrt.h",
      "bluetooth/test/fake_device_information_winrt.cc",
      "bluetooth/test/fake_device_information_winrt.h",
      "bluetooth/test/fake_device_pairing_requested_event_args_winrt.cc",
      "bluetooth/test/fake_device_pairing_requested_event_args_winrt.h",
      "bluetooth/test/fake_device_pairing_result_winrt.cc",
      "bluetooth/test/fake_device_pairing_result_winrt.h",
      "bluetooth/test/fake_device_watcher_winrt.cc",
      "bluetooth/test/fake_device_watcher_winrt.h",
      "bluetooth/test/fake_gatt_characteristic_winrt.cc",
      "bluetooth/test/fake_gatt_characteristic_winrt.h",
      "bluetooth/test/fake_gatt_characteristics_result_winrt.cc",
      "bluetooth/test/fake_gatt_characteristics_result_winrt.h",
      "bluetooth/test/fake_gatt_descriptor_winrt.cc",
      "bluetooth/test/fake_gatt_descriptor_winrt.h",
      "bluetooth/test/fake_gatt_descriptors_result_winrt.cc",
      "bluetooth/test/fake_gatt_descriptors_result_winrt.h",
      "bluetooth/test/fake_gatt_device_service_winrt.cc",
      "bluetooth/test/fake_gatt_device_service_winrt.h",
      "bluetooth/test/fake_gatt_device_services_result_winrt.cc",
      "bluetooth/test/fake_gatt_device_services_result_winrt.h",
      "bluetooth/test/fake_gatt_read_result_winrt.cc",
      "bluetooth/test/fake_gatt_read_result_winrt.h",
      "bluetooth/test/fake_gatt_value_changed_event_args_winrt.cc",
      "bluetooth/test/fake_gatt_value_changed_event_args_winrt.h",
      "bluetooth/test/fake_gatt_write_result_winrt.cc",
      "bluetooth/test/fake_gatt_write_result_winrt.h",
      "bluetooth/test/fake_radio_winrt.cc",
      "bluetooth/test/fake_radio_winrt.h",
    ]
  }

  if (enable_vr) {
    sources += [
      "vr/orientation/orientation_device_provider_unittest.cc",
      "vr/orientation/orientation_device_unittest.cc",
      "vr/util/fps_meter_unittest.cc",
      "vr/util/sliding_average_unittest.cc",
      "vr/vr_device_base_unittest.cc",
      "vr/vr_display_impl_unittest.cc",
    ]

    if (is_android) {
      deps += [ "//device/vr:java" ]
    }

    defines = [ "DEVICE_VR_IMPLEMENTATION" ]

    deps += [
      "//device/vr",
      "//device/vr:fakes",
      "//device/vr/public/mojom",
      "//services/device/public/cpp/generic_sensor",
      "//ui/display",
      "//ui/display:test_support",
    ]
  }

  # Some gamepad tests require the HID service. Only build these tests on
  # platforms where the HID service is enabled.
  if (!is_android && !is_fuchsia) {
    sources += [ "gamepad/nintendo_data_fetcher_unittest.cc" ]

    deps += [
      "//services/device:test_support",
      "//services/device/hid",
      "//services/device/hid:mocks",
    ]
  }
}

source_set("usb_test_gadget") {
  testonly = true

  sources = [
    "test/usb_test_gadget.h",
    "test/usb_test_gadget_impl.cc",
  ]

  deps = [
    "//device/base",
    "//device/usb",
    "//net:test_support",
  ]
}

if (is_android) {
  bluetooth_java_sources_needing_jni = [
    "bluetooth/test/android/java/src/org/chromium/device/bluetooth/Fakes.java",
  ]

  generate_jni("bluetooth_test_jni_headers") {
    sources = bluetooth_java_sources_needing_jni
    jni_package = "bluetooth"
  }

  android_library("bluetooth_test_java") {
    testonly = true
    java_files = bluetooth_java_sources_needing_jni
    deps = [
      "//base:base_java",
      "//components/location/android:location_java",
      "//device/bluetooth:java",
      "//third_party/android_deps:com_android_support_support_annotations_java",
      "//third_party/android_tools:android_test_mock_java",
    ]

    srcjar_deps = [ ":bluetooth_test_javagen" ]
  }

  junit_binary("device_junit_tests") {
    java_files = [ "gamepad/android/junit/src/org/chromium/device/gamepad/GamepadMappingsTest.java" ]
    deps = [
      "$google_play_services_package:google_play_services_base_java",
      "$google_play_services_package:google_play_services_basement_java",
      "$google_play_services_package:google_play_services_location_java",
      "//base:base_java",
      "//base:base_java_test_support",
      "//base:base_junit_test_support",
      "//device/gamepad:java",
      "//mojo/public/java:bindings_java",
      "//third_party/android_deps:com_android_support_support_annotations_java",
    ]
    srcjar_deps = [ "//device/gamepad:java_enums_srcjar" ]
  }

  java_cpp_enum("bluetooth_test_javagen") {
    sources = [
      "bluetooth/test/bluetooth_test.h",
    ]
  }
}
