# Copyright 2013 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

assert(is_fuchsia)

import("//build/fuchsia/sdk.gni")
import("//flutter/tools/fuchsia/fuchsia_archive.gni")

group("tests") {
  testonly = true
  deps = [ ":flutter-embedder-test" ]
}

executable("flutter-embedder-test-bin") {
  testonly = true

  output_name = "flutter-embedder-test"

  sources = [ "flutter-embedder-test.cc" ]

  # This is needed for //third_party/googletest for linking zircon symbols.
  libs = [ "$fuchsia_sdk_path/arch/$target_cpu/sysroot/lib/libzircon.so" ]

  deps = [
    "$fuchsia_sdk_root/fidl:fuchsia.logger",
    "$fuchsia_sdk_root/fidl:fuchsia.tracing.provider",
    "$fuchsia_sdk_root/fidl:fuchsia.ui.app",
    "$fuchsia_sdk_root/fidl:fuchsia.ui.composition",
    "$fuchsia_sdk_root/fidl:fuchsia.ui.observation.geometry",
    "$fuchsia_sdk_root/fidl:fuchsia.ui.scenic",
    "$fuchsia_sdk_root/fidl:fuchsia.ui.test.input",
    "$fuchsia_sdk_root/fidl:fuchsia.ui.test.scene",
    "$fuchsia_sdk_root/pkg:async",
    "$fuchsia_sdk_root/pkg:async-loop-testing",
    "$fuchsia_sdk_root/pkg:fidl_cpp",
    "$fuchsia_sdk_root/pkg:scenic_cpp",
    "$fuchsia_sdk_root/pkg:sys_component_cpp_testing",
    "$fuchsia_sdk_root/pkg:zx",
    "//flutter/fml",
    "//flutter/shell/platform/fuchsia/flutter/tests/integration/utils:check_view",
    "//flutter/shell/platform/fuchsia/flutter/tests/integration/utils:color",
    "//flutter/shell/platform/fuchsia/flutter/tests/integration/utils:screenshot",
    "//third_party/googletest:gtest",
    "//third_party/googletest:gtest_main",
  ]
}

fuchsia_test_archive("flutter-embedder-test") {
  deps = [
    ":flutter-embedder-test-bin",
    "child-view:package",
    "parent-view:package",

    # "OOT" copies of the runners used by tests, to avoid conflicting with the
    # runners in the base fuchsia image.
    # TODO(fxbug.dev/106575): Fix this with subpackages.
    "//flutter/shell/platform/fuchsia/flutter:oot_flutter_jit_runner",
  ]

  binary = "$target_name"

  cml_file = rebase_path("meta/$target_name.cml")
}
