# Copyright 2018 The Fuchsia 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/test/test_package.gni")
import("//build/testing/environments.gni")

source_set("input") {
  sources = [
    "device_state.cc",
    "device_state.h",
    "input_device_impl.cc",
    "input_device_impl.h",
  ]

  public_deps = [
    ":gesture",
    "//sdk/fidl/fuchsia.math",
    "//sdk/fidl/fuchsia.ui.input",
    "//sdk/lib/fidl/cpp",
    "//zircon/public/lib/fit",
    "//zircon/system/ulib/hid",
  ]

  deps = [
    "//src/lib/fxl",
    "//src/lib/ui/base_view",
    "//zircon/public/lib/async-loop-cpp",
  ]
}

source_set("gesture") {
  sources = [
    "gesture.cc",
    "gesture.h",
    "gesture_detector.cc",
    "gesture_detector.h",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.math",
    "//sdk/fidl/fuchsia.ui.input",
    "//src/lib/fxl",
    "//src/ui/lib/glm_workaround",
  ]

  deps = [ "//src/lib/syslog/cpp" ]
}

group("tests") {
  testonly = true
  deps = [ ":input_unit_tests" ]
}

test_package("input_unit_tests") {
  tests = [
    {
      name = "gesture_tests"
      environments = basic_envs
    },
  ]

  deps = [ ":gesture_tests" ]
}

executable("gesture_tests") {
  testonly = true

  sources = [
    "gesture_detector_tests.cc",
    "gesture_tests.cc",
  ]

  deps = [
    ":gesture",
    "//src/lib/fxl/test:gtest_main",
    "//src/lib/syslog/cpp",
    "//third_party/googletest:gtest",
  ]
}
