# Copyright 2019 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.gni")
import("//build/test/test_package.gni")

source_set("key_util") {
  sources = [
    "key_util.cc",
    "key_util.h",
  ]
  public_deps = [
    "//sdk/fidl/fuchsia.ui.input",
    "//sdk/fidl/fuchsia.ui.input2",
    "//zircon/system/ulib/hid",
    "//zircon/system/ulib/hid-parser",
  ]
}

test("key_util_test") {
  sources = [ "key_util_unittest.cc" ]
  deps = [
    "//garnet/public/lib/gtest",
    "//src/lib/fxl/test:gtest_main",
    "//src/ui/lib/key_util",
  ]
}

unittest_package("test") {
  package_name = "key_util_test"
  deps = [ ":key_util_test" ]
  tests = [
    {
      name = "key_util_test"
      environments = basic_envs
    },
  ]
}
