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

group("tests") {
  testonly = true

  deps = [ ":headless_root_presenter_tests" ]
}

test_package("headless_root_presenter_tests") {
  deps = [
    ":headless_root_presenter_apptests",
    # Will add FDR when diverges
  ]

  tests = [
    {
      name = "headless_root_presenter_apptests"
      environments = [ emu_env ]
    },
  ]
}

executable("headless_root_presenter_apptests") {
  output_name = "headless_root_presenter_apptests"

  testonly = true

  sources = [ "headless_root_presenter_unittest.cc" ]
  deps = [
    "//garnet/public/lib/gtest",
    "//garnet/public/lib/json",
    "//sdk/fidl/fuchsia.sys",
    "//sdk/lib/fidl/cpp",
    "//sdk/lib/sys/cpp",
    "//sdk/lib/sys/cpp/testing:unit",
    "//sdk/lib/syslog/cpp",
    "//sdk/lib/vfs/cpp",
    "//src/lib/fsl",
    "//src/lib/fxl/test:gtest_main",
    "//src/ui/bin/headless_root_presenter:lib",
    "//third_party/rapidjson",
  ]

  # This is a dependency of the semantic tree to perform certain matrix transform operations.
  include_dirs = [ "//third_party/glm" ]
}
