# 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")

test_package("e2e_input_tests") {
  deps = [
    ":mediabuttons_listener_test",
    ":minimal_input_test",
  ]

  tests = [
    {
      name = "minimal_input_test"
      environments = [
        {
          dimensions = {
            device_type = "Intel NUC Kit NUC7i5DNHE"
          }
        },
      ]
    },
    {
      name = "mediabuttons_listener_test"
      environments = [
        {
          dimensions = {
            device_type = "Intel NUC Kit NUC7i5DNHE"
          }
        },
      ]
    },
  ]
}

# Each e2e test must run in its own executable.
test("minimal_input_test") {
  sources = [
    "minimal_input_test.cc",
  ]
  output_name = "minimal_input_test"
  deps = [
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/gtest",
    "//garnet/public/lib/ui/base_view/cpp",
    "//garnet/public/lib/ui/input/cpp",
    "//sdk/fidl/fuchsia.ui.input",
    "//sdk/fidl/fuchsia.ui.policy",
    "//sdk/fidl/fuchsia.ui.scenic",
    "//sdk/lib/ui/scenic/cpp",
    "//src/lib/fxl",
    "//src/lib/fxl/test:gtest_main",
    "//third_party/googletest:gtest",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/fdio",
    "//zircon/public/lib/fit",
    "//zircon/public/lib/zx",
  ]
}

# Each e2e test must run in its own executable.
test("mediabuttons_listener_test") {
  sources = [
    "mediabuttons_listener_test.cc",
  ]
  output_name = "mediabuttons_listener_test"
  deps = [
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/gtest",
    "//garnet/public/lib/ui/base_view/cpp",
    "//garnet/public/lib/ui/input/cpp",
    "//sdk/fidl/fuchsia.ui.input",
    "//sdk/fidl/fuchsia.ui.policy",
    "//sdk/fidl/fuchsia.ui.scenic",
    "//sdk/lib/ui/scenic/cpp",
    "//src/lib/fxl",
    "//src/lib/fxl/test:gtest_main",
    "//third_party/googletest:gtest",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/fdio",
    "//zircon/public/lib/fit",
    "//zircon/public/lib/zx",
  ]
}
