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

flutter_app("flutter_screencap_test_app") {
  testonly = true

  main_dart = "lib/main.dart"

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

  deps = [
    "//third_party/dart-pkg/git/flutter/packages/flutter",
    "//topaz/public/dart/fuchsia_logger",
  ]
}

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

  deps = [
    "//sdk/fidl/fuchsia.sys",
    "//sdk/fidl/fuchsia.ui.app",
    "//sdk/fidl/fuchsia.ui.policy",
    "//sdk/fidl/fuchsia.ui.scenic",
    "//topaz/public/dart/fuchsia_scenic",
    "//topaz/public/dart/fuchsia_services",
    "//topaz/public/dart/zircon",
  ]

  environments = [
    {
      dimensions = {
        device_type = "Intel NUC Kit NUC7i5DNHE"
      }
    },
  ]
}
