# 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/package.gni")
import("//topaz/runtime/flutter_runner/flutter_app.gni")

flutter_app("flutter_screencap_test_app") {
  main_dart = "lib/main.dart"

  meta = [
    {
      path = rebase_path("meta/flutter_screencap_test_app.cmx")
      dest = "flutter_screencap_test_app.cmx"
    },
  ]

  sources = []

  deps = [
    "//garnet/public/fidl/fuchsia.sys",
    "//garnet/public/fidl/fuchsia.testing.runner",
    "//third_party/dart-pkg/git/flutter/packages/flutter",
    "//topaz/public/lib/app/dart",
  ]
}

package("flutter_screencap_test") {
  testonly = true

  # This is really a test, but we list it as a binary because we don't want to
  # run this test by default in CI since it requires specific hardware.
  binaries = [
    {
      name = rebase_path("run_flutter_screencap_test.sh")
      dest = "run_flutter_screencap_test.sh"
    },
  ]

  resources = [
    {
      path = rebase_path("flutter_screencap_test.json")
      dest = "flutter_screencap_test.json"
    },
  ]
}
