# 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 = [
    "//sdk/fidl/fuchsia.sys",
    "//sdk/fidl/fuchsia.testing.runner",
    "//third_party/dart-pkg/git/flutter/packages/flutter",
    "//topaz/public/lib/app/dart",
  ]
}

package("flutter_screencap_test") {
  testonly = true

  tests = [
    {
      name = rebase_path("run_flutter_screencap_test.sh")
      dest = "run_flutter_screencap_test.sh"
      environments = [
        {
          dimensions = {
            device_type = "Intel NUC Kit NUC7i5DNHE"
          }
        },
      ]
    },
  ]

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