# Copyright 2018 The Fuchsia Authors. All rights reserved.D
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

group("tests") {
  testonly = true
  public_deps = [ ":unittests" ]
  deps = [ "fuzzers" ]
}

executable("unittests") {
  testonly = true
  output_name = "input_unittests"
  sources = [
    "a11y_legacy_contender_test.cc",
    "accessibility_pointer_events_test.cc",
    "coordinate_transform_test.cc",
    "coordinate_transform_test2.cc",
    "delivery_interruption_test.cc",
    "dispatch_policy_test.cc",
    "focus_avoidance_test.cc",
    "focus_transfer_test.cc",
    "gesture_arena_test.cc",
    "gfx_legacy_contender_test.cc",
    "input_injection_test.cc",
    "mouse_delivery_test.cc",
    "pointer_capture_test.cc",
    "pointer_event_conversion_test.cc",
    "startup_tests.cc",
    "touch_source_test.cc",
    "view_tree_input_integration_test.cc",
  ]
  deps = [
    ":util",
    "//garnet/public/lib/fostr/fidl/fuchsia.ui.input",
    "//garnet/public/lib/gtest",
    "//sdk/fidl/fuchsia.ui.policy.accessibility",
    "//sdk/lib/fidl/cpp",
    "//sdk/lib/ui/scenic/cpp",
    "//src/lib/fxl",
    "//src/lib/fxl/test:gtest_main",
    "//src/ui/scenic/lib/input",
    "//src/ui/scenic/lib/utils",
    "//third_party/googletest:gtest",
  ]

  # TODO(fxbug.dev/46839): Fix the leaks and remove this.
  deps += [ "//build/config/sanitizers:suppress-lsan.DO-NOT-USE-THIS" ]

  # TODO(fxbug.dev/69507): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-deprecated-declarations" ]
}

source_set("util") {
  testonly = true
  sources = [
    "util.cc",
    "util.h",
  ]
  deps = [
    "//garnet/public/lib/fostr/fidl/fuchsia.ui.input",
    "//src/ui/scenic/lib/gfx",
    "//third_party/googletest:gtest",
    "//zircon/system/ulib/hid",
  ]
  public_deps = [
    "//src/ui/scenic/lib/gfx/tests:testing_deps",
    "//src/ui/scenic/lib/input",
  ]
}
