# Copyright 2017 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.

group("topaz") {
  testonly = true
  public_deps = [
    # TODO: This target should just aggregate the top-level directories and
    # most of these dependencies should be in those subdirectories.
    "//garnet/packages/benchmarks:buildbot",
    "//garnet/packages/prod:drivers",
    "//garnet/packages/prod:scenic",
    "//src/fonts",
    "//third_party/dart-pkg/git/flutter/examples/flutter_gallery",
    "//topaz:tests",
    "//topaz/bin/fidlgen_dart:install(//build/toolchain:host_x64)",
    "//topaz/bin/system_dashboard",
    "//topaz/examples/fidl/echo_client_async_dart",
    "//topaz/examples/fidl/echo_server_async_dart",
    "//topaz/examples/mediaplayer/mediaplayer_flutter",
    "//topaz/examples/mine_digger",
    "//topaz/examples/ui/button_flutter",
    "//topaz/lib/story_shell/examples/example_manual_relationships",
    "//topaz/public/dart/fuchsia_inspect/examples/inspect_mod",
    "//topaz/public/dart/fuchsia_modular/examples/fibonacci_agent",
    "//topaz/public/dart/fuchsia_modular/examples/multilevel_mod",
    "//topaz/public/dart/fuchsia_modular/examples/shapes_mod",
    "//topaz/public/dart/fuchsia_modular/examples/slider_mod",
    "//topaz/public/dart/fuchsia_services/examples/mind_reader/bin:mind_reader_dart",
    "//topaz/public/dart/fuchsia_webview_flutter/examples/webview_mod",
    "//topaz/public/sdk",
    "//topaz/runtime/dart",
    "//topaz/runtime/dart_runner:dart_aot_product_runner",
    "//topaz/runtime/dart_runner:dart_aot_runner",
    "//topaz/runtime/dart_runner:dart_jit_product_runner",
    "//topaz/runtime/dart_runner:dart_jit_runner",
    "//topaz/runtime/dart_runner/examples/goodbye_dart:goodbye_dart_aot",
    "//topaz/runtime/dart_runner/examples/goodbye_dart:goodbye_dart_jit",
    "//topaz/runtime/dart_runner/examples/hello_app_dart:hello_app_dart_aot",
    "//topaz/runtime/dart_runner/examples/hello_app_dart:hello_app_dart_jit",
    "//topaz/runtime/dart_runner/examples/hello_dart:hello_dart_aot",
    "//topaz/runtime/dart_runner/examples/hello_dart:hello_dart_aot_product",
    "//topaz/runtime/dart_runner/examples/hello_dart:hello_dart_debug",
    "//topaz/runtime/dart_runner/examples/hello_dart:hello_dart_jit",
    "//topaz/runtime/dart_runner/examples/hello_dart:hello_dart_jit_product",
    "//topaz/shell/story_shell_labs",
    "//topaz/tests/benchmarks:all",
    "//topaz/tools/doc_checker:tests(//build/toolchain:host_x64)",
    "//topaz/tools/doc_checker(//build/toolchain:host_x64)",
  ]
}

group("tests") {
  testonly = true

  # TODO(fxb/41505): Temporarily disable flutter_tester tests on mac hosts.
  _flutter_tester_tests = []
  if (host_os != "mac") {
    _flutter_tester_tests += [
      "//topaz/public/dart/fuchsia_webview_flutter:fuchsia_webview_flutter_unittests($host_toolchain)",
      "//topaz/public/dart/sledge:dart_sledge_tests($host_toolchain)",
      "//topaz/public/dart/widgets:dart_widget_tests($host_toolchain)",
      "//topaz/examples/test/flutter_widget_test($host_toolchain)",
      "//topaz/public/dart/fuchsia_internationalization_flutter:tests($host_toolchain)",
      "//topaz/public/dart/fuchsia_modular_flutter:fuchsia_modular_flutter_unittests($host_toolchain)",
      "//topaz/public/dart/fuchsia_modular:fuchsia_modular_package_unittests($host_toolchain)",
      "//topaz/public/dart/fuchsia_scenic_flutter:fuchsia_scenic_flutter_unittests($host_toolchain)",
      "//topaz/public/dart/fuchsia_services:fuchsia_services_package_unittests($host_toolchain)",
      "//topaz/public/dart/fuchsia_inspect_flutter:inspect_flutter_test($host_toolchain)",
      "//topaz/lib/keyboard/flutter:keyboard_test($host_toolchain)",
      "//topaz/public/dart/story_shell_labs:layout_unittests($host_toolchain)",
      "//topaz/lib/setui/common:lib_setui_common_test($host_toolchain)",
      "//topaz/lib/setui/flutter:lib_setui_flutter_test($host_toolchain)",
      "//topaz/lib/tiler:tiler_unittests($host_toolchain)",
      "//topaz/public/dart/fuchsia_inspect_flutter/examples/torus15:torus15_flutter_test($host_toolchain)",
    ]
  }

  public_deps = [
                  # TODO: This target should just aggregate the top-level directories and
                  # most of these dependencies should be in those subdirectories.
                  "//garnet/packages/tests:run_test_component",
                  "//garnet/packages/tests:scenic",
                  "//garnet/packages/tools:scenic",
                  "//peridot/packages:peridot",
                  "//peridot/packages/tests:modular_test_harness",
                  "//src/fonts",
                  "//src/modular/bundles:integration_testing",
                  "//topaz/bin/crasher_dart",
                  "//topaz/bin/crasher_flutter",
                  "//topaz/bin/dart_fidl_json/test:dart_fidl_json_test($host_toolchain)",
                  "//topaz/bin/fidl_bindings_test/server:fidl_bindings_test_server",
                  "//topaz/bin/fidl_bindings_test/test:fidl_bindings_test",
                  "//topaz/bin/fidl_compatibility_test:fidl_compatibility_test_topaz",
                  "//topaz/bin/fidl_compatibility_test/dart:fidl_dart_write_xunion_compatibility_test_server",
                  "//topaz/bin/fidlgen_dart:fidlgen_dart_backend_ir_test($host_toolchain)",
                  "//topaz/bin/fidlgen_dart:fidlgen_dart_backend_test($host_toolchain)",
                  "//topaz/bin/flutter_screencap_test",
                  "//topaz/bin/flutter_screencap_test:flutter_screencap_test_app",
                  "//topaz/bin/ui/benchmarks/image_grid_flutter",
                  "//topaz/examples/fidl/echo_client_async_dart",
                  "//topaz/examples/fidl/echo_server_async_dart",
                  "//topaz/examples/test/driver_example_mod",
                  "//topaz/examples/test/driver_example_mod:driver_example_mod_tests",
                  "//topaz/lib/story_shell/examples/story_shell_test:key_listener_device_tests",
                  "//topaz/public/dart-pkg/zircon:dart_zircon_test",
                  "//topaz/public/dart/composition_delegate:composition_delegate_tests($host_toolchain)",
                  "//topaz/public/dart/fuchsia_inspect:fuchsia_inspect_package_unittests($host_toolchain)",
                  "//topaz/public/dart/fuchsia_inspect/examples/inspect_mod",

                  # TODO(fxb/38305): Re-enable test when unblocked and inspect paths are corrected
                  # "//topaz/public/dart/fuchsia_inspect/examples/inspect_mod:inspect_mod_test",
                  "//topaz/public/dart/fuchsia_inspect/test/inspect_flutter_integration_tester",

                  # TODO(fxb/38305): Re-enable test when unblocked and inspect paths are corrected
                  # "//topaz/public/dart/fuchsia_inspect/test/inspect_flutter_integration_tester:inspect_dart_integration_test_driver",
                  "//topaz/public/dart/fuchsia_inspect/test/integration:dart_inspect_vmo_test",
                  "//topaz/public/dart/fuchsia_inspect/test/integration:dart_inspect_vmo_test_writer",
                  "//topaz/public/dart/fuchsia_inspect_flutter/examples/torus15",
                  "//topaz/public/dart/fuchsia_inspect_flutter/examples/torus15:torus15_dart_test",
                  "//topaz/public/dart/fuchsia_logger:fuchsia_logger_package_unittests($host_toolchain)",
                  "//topaz/public/dart/fuchsia_modular:fuchsia_modular_package_integration_tests",
                  "//topaz/public/dart/fuchsia_modular/examples/slider_mod",
                  "//topaz/public/dart/fuchsia_modular/examples/slider_mod:slider_mod_tests",
                  "//topaz/public/dart/fuchsia_modular_testing:fuchsia_modular_testing_package_integration_tests",
                  "//topaz/public/dart/fuchsia_services:fuchsia_services_foo_test_server",
                  "//topaz/public/dart/fuchsia_services:fuchsia_services_package_integration_tests",
                  "//topaz/public/dart/fuchsia_vfs:fuchsia_vfs_package_unittests",
                  "//topaz/public/dart/sledge:sledge_integration_tests",
                  "//topaz/public/dart/zircon:test_extract_zircon_constants($host_toolchain)",
                  "//topaz/runtime/dart/utils:run_vmservice_object_tests",
                  "//topaz/runtime/dart_runner/examples/goodbye_dart:goodbye_dart_test",
                  "//topaz/runtime/dart_runner/integration:dart_aot_runner_test",
                  "//topaz/runtime/dart_runner/integration:dart_jit_runner_test",
                  "//topaz/tests/fidl-changes",
                  "//topaz/tests/fidl-dangerous-identifiers",
                ] + _flutter_tester_tests
}

group("deprecated_shell_allowlist") {
  #  ________  _________  ________  ________
  # |\   ____\|\___   ___\\   __  \|\   __  \
  # \ \  \___|\|___ \  \_\ \  \|\  \ \  \|\  \
  #  \ \_____  \   \ \  \ \ \  \\\  \ \   ____\
  #   \|____|\  \   \ \  \ \ \  \\\  \ \  \___|
  #     ____\_\  \   \ \__\ \ \_______\ \__\
  #    |\_________\   \|__|  \|_______|\|__|
  #    \|_________|
  # This is an allowlist of packages that have components manifests that include
  # the "deprecated-shell" feature. Do not add to this list. If the manifest
  # does not otherwise include the feature you need, please file a feature
  # request for that fine-grained feature to help us support least-privileged
  # components.
  visibility = [
    "//topaz/tests/benchmarks/input_latency:topaz_input_latency_benchmarks",
  ]
}

group("rootjob_svc_allowlist") {
  #  ________  _________  ________  ________
  # |\   ____\|\___   ___\\   __  \|\   __  \
  # \ \  \___|\|___ \  \_\ \  \|\  \ \  \|\  \
  #  \ \_____  \   \ \  \ \ \  \\\  \ \   ____\
  #   \|____|\  \   \ \  \ \ \  \\\  \ \  \___|
  #     ____\_\  \   \ \__\ \ \_______\ \__\
  #    |\_________\   \|__|  \|_______|\|__|
  #    \|_________|
  # This is an allowlist of packages that have components manifests that include
  # the "fuchsia.boot.RootJob" service. This is a highly privileged service that vends
  # out a very powerful capability. Do not add yourself to this unless this is the only
  # way to accomplish your goal and you have talked to the security team about this.
  visibility = [
    "//topaz/tests/benchmarks/input_latency:topaz_input_latency_benchmarks",
  ]
}
