# Copyright 2019 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("auth_provider_tests") {
  testonly = true
  public_deps = [
    "//topaz/auth_providers:auth_provider_tests",
  ]
}

group("scenic") {
  testonly = true
  public_deps = [
    "//garnet/examples/ui:tile_view",
    "//garnet/packages/tests:scenic",
    "//topaz/bin/ui/benchmarks/image_grid_flutter",
  ]
}

group("dart_unittests") {
  testonly = true
  public_deps = [
    "//topaz/bin/dart_fidl_json/test:dart_fidl_json_test($host_toolchain)",
    "//topaz/examples/test/flutter_widget_test($host_toolchain)",
    "//topaz/lib/keyboard/flutter:keyboard_test($host_toolchain)",
    "//topaz/lib/setui/common:lib_setui_common_test($host_toolchain)",
    "//topaz/lib/setui/flutter:lib_setui_flutter_test($host_toolchain)",
    "//topaz/lib/setui/settings/client:lib_setui_settings_client_test($host_toolchain)",
    "//topaz/lib/setui/settings/common:lib_setui_settings_common_test($host_toolchain)",
    "//topaz/lib/setui/settings/service:lib_setui_service_test($host_toolchain)",
    "//topaz/lib/setui/settings/testing:lib_setui_settings_testing_test($host_toolchain)",
    "//topaz/lib/tiler:tiler_unittests($host_toolchain)",
    "//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_logger:fuchsia_logger_package_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/sledge:dart_sledge_tests($host_toolchain)",
    "//topaz/public/dart/widgets:dart_widget_tests($host_toolchain)",
    "//topaz/public/lib/app/dart:dart_app_tests($host_toolchain)",
    "//topaz/public/lib/display/flutter:display_test($host_toolchain)",
    "//topaz/public/lib/schemas/dart:dart_schema_tests($host_toolchain)",
    "//topaz/shell/mondrian_story_shell:mondrian_story_shell_tests($host_toolchain)",
  ]
}

group("bindings_tests") {
  testonly = true
  public_deps = [
    "//topaz/bin/fidl_bindings_test/server:fidl_bindings_test_server",
    "//topaz/bin/fidl_bindings_test/test:fidl_bindings_test",
  ]
}

group("dart") {
  testonly = true
  public_deps = [
    "//topaz/public/dart/zircon:test_extract_zircon_constants($host_toolchain)",
    "//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",
  ]
}

group("all") {
  testonly = true
  public_deps = [
    "//garnet/packages/tests:run_test_component",
    "//topaz/packages/examples:tests",
    "//topaz/packages/tests:auth_provider_tests",
    "//topaz/packages/tests:bindings_tests",
    "//topaz/packages/tests:crasher_dart",
    "//topaz/packages/tests:crasher_flutter",
    "//topaz/packages/tests:dart",
    "//topaz/packages/tests:dart_target_integration_tests",
    "//topaz/packages/tests:dart_target_unittests",
    "//topaz/packages/tests:dart_unittests",
    "//topaz/packages/tests:fidl_changes",
    "//topaz/packages/tests:fidl_compatibility_test",
    "//topaz/packages/tests:fidl_compatibility_test_server_dart",
    "//topaz/packages/tests:flutter_runner_tests",
    "//topaz/packages/tests:flutter_screencap_test",
    "//topaz/packages/tests:flutter_screencap_test_app",
    "//topaz/packages/tests:key_listener_test",
    "//topaz/packages/tests:scenic",
    "//topaz/packages/tests:sledge",
    "//topaz/packages/tests:web_runner_tests",
  ]
}

group("crasher_flutter") {
  testonly = true
  public_deps = [
    "//topaz/bin/crasher_flutter",
  ]
}

group("flutter_screencap_test_app") {
  testonly = true
  public_deps = [
    "//garnet/packages/tools:scenic",
    "//topaz/bin/flutter_screencap_test:flutter_screencap_test_app",
  ]
}

group("dart_target_unittests") {
  testonly = true
  public_deps = [
    "//topaz/public/dart-pkg/zircon:dart_zircon_test",
    "//topaz/public/dart/fuchsia_modular:fuchsia_modular_package_integration_tests",
    "//topaz/public/dart/fuchsia_services:fuchsia_services_package_integration_tests",
    "//topaz/public/dart/fuchsia_vfs:fuchsia_vfs_package_unittests",
  ]
}

group("fidl_compatibility_test_server_dart") {
  testonly = true
  public_deps = [
    "//topaz/bin/fidl_compatibility_test/dart:fidl_compatibility_test_server_dart",
  ]
}

group("crasher_dart") {
  testonly = true
  public_deps = [
    "//topaz/bin/crasher_dart",
  ]
}

group("fidl_compatibility_test") {
  testonly = true
  public_deps = [
    "//garnet/packages/tests:fidl_compatibility_test_bin",
    "//garnet/packages/tests:fidl_compatibility_test_server_cpp",
    "//garnet/packages/tests:fidl_compatibility_test_server_go",
    "//garnet/packages/tests:fidl_compatibility_test_server_rust",
    "//topaz/bin/fidl_compatibility_test:package",
    "//topaz/packages/tests:fidl_compatibility_test_server_dart",
  ]
}

group("web_runner_tests") {
  testonly = true
  public_deps = [
    "//topaz/tests/web_runner_tests",
  ]
}

group("key_listener_test") {
  testonly = true
  public_deps = [
    "//topaz/lib/story_shell/examples/story_shell_test:key_listener_device_tests",
  ]
}

group("flutter_screencap_test") {
  testonly = true
  public_deps = [
    "//peridot/packages/prod:integration_testing",
    "//topaz/bin/flutter_screencap_test",
    "//topaz/packages/tests:flutter_screencap_test_app",
  ]
}

group("dart_target_integration_tests") {
  testonly = true
  public_deps = [
    "//topaz/packages/examples:fidl",
    "//topaz/public/dart/fuchsia_inspect/test/integration:dart_inspect_vmo_test",
    "//topaz/public/dart/fuchsia_inspect/test/integration:dart_inspect_vmo_test_writer",
    "//topaz/tests/dart_app_service_tests:dart_app_service_tests",
  ]
}

group("fidl_changes") {
  testonly = true
  public_deps = [
    "//topaz/tests/fidl-changes",
  ]
}

group("sledge") {
  testonly = true
  public_deps = [
    "//peridot/packages/tests:ledger",
    "//topaz/public/dart/sledge:sledge_integration_tests",
  ]
}

group("flutter_runner_tests") {
  testonly = true
  public_deps = [
    "//garnet/packages/prod:fonts",
    "//topaz/runtime/flutter_runner:flutter_runner_tests",
  ]
}
