# 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("//testing/test.gni")

static_library("ble") {
  sources = [
    "ble_advertisement_generator.cc",
    "ble_advertisement_generator.h",
    "bluetooth_low_energy_characteristics_finder.cc",
    "bluetooth_low_energy_characteristics_finder.h",
    "bluetooth_low_energy_weave_client_connection.cc",
    "bluetooth_low_energy_weave_client_connection.h",
    "bluetooth_low_energy_weave_defines.h",
    "bluetooth_low_energy_weave_packet_generator.cc",
    "bluetooth_low_energy_weave_packet_generator.h",
    "bluetooth_low_energy_weave_packet_receiver.cc",
    "bluetooth_low_energy_weave_packet_receiver.h",
    "fake_wire_message.cc",
    "fake_wire_message.h",
    "remote_attribute.h",
  ]

  deps = [
    "//base",

    # TODO (hansberry): This component has a circular dependency
    # with the root cryptauth target. It is whitelisted in that target for
    # includes.
    "//chromeos/components/proximity_auth/logging",
    "//components/prefs",
    "//device/bluetooth",
    "//net",
  ]

  public_deps = [
    "//components/cryptauth/proto",
  ]
}

static_library("test_support") {
  sources = [
    "fake_ble_advertisement_generator.cc",
    "fake_ble_advertisement_generator.h",
  ]

  deps = [
    ":ble",
    "//base",
    "//components/cryptauth",
    "//components/cryptauth/ble",
  ]

  public_deps = [
    "//components/cryptauth/proto",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "ble_advertisement_generator_unittest.cc",
    "bluetooth_low_energy_characteristics_finder_unittest.cc",
    "bluetooth_low_energy_weave_client_connection_unittest.cc",
    "bluetooth_low_energy_weave_packet_generator_unittest.cc",
    "bluetooth_low_energy_weave_packet_receiver_unittest.cc",
  ]

  configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]

  deps = [
    ":ble",
    "//base/test:test_support",
    "//chromeos/components/proximity_auth/logging",
    "//components/cryptauth",
    "//components/cryptauth:test_support",
    "//components/prefs:test_support",
    "//device/bluetooth:mocks",
    "//testing/gmock",
    "//testing/gtest",
  ]

  public_deps = [
    "//components/cryptauth/proto",
  ]
}