# 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("display_settings") {
  testonly = true
  public_deps = [
    "//topaz/bin/display_settings",
  ]
}

group("web_runner") {
  testonly = true
  public_deps = [
    "//topaz/packages/prod:chromium",
    "//topaz/runtime/chromium:web_runner",
  ]
}

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

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

group("flutter") {
  testonly = true
  public_deps = [
    "//topaz/packages/prod:flutter_aot_product",
    "//topaz/packages/prod:flutter_aot",
    "//topaz/packages/prod:flutter_jit_product",
    "//topaz/packages/prod:flutter_jit",
  ]
}

group("all") {
  testonly = true
  public_deps = [
    "//topaz/packages/prod:accessibility_settings",
    "//topaz/packages/prod:bluetooth_settings",
    "//topaz/packages/prod:cast_runner",
    "//topaz/packages/prod:chromium",
    "//topaz/packages/prod:dart",
    "//topaz/packages/prod:dart_aot_product_runner",
    "//topaz/packages/prod:dart_aot_runner",
    "//topaz/packages/prod:dart_jit_product_runner",
    "//topaz/packages/prod:dart_jit_runner",
    "//topaz/packages/prod:dart_runner",
    "//topaz/packages/prod:datetime_settings",
    "//topaz/packages/prod:device_settings",
    "//topaz/packages/prod:display_settings",
    "//topaz/packages/prod:ermine",
    "//topaz/packages/prod:flutter",
    "//topaz/packages/prod:flutter_aot",
    "//topaz/packages/prod:flutter_aot_product",
    "//topaz/packages/prod:flutter_jit",
    "//topaz/packages/prod:flutter_jit_product",
    "//topaz/packages/prod:google_auth_provider",
    "//topaz/packages/prod:latin-ime",
    "//topaz/packages/prod:modules_index",
    "//topaz/packages/prod:mondrian",
    "//topaz/packages/prod:settings",
    "//topaz/packages/prod:skottie_viewer",
    "//topaz/packages/prod:system_dashboard",
    "//topaz/packages/prod:term",
    "//topaz/packages/prod:userpicker_base_shell",
    "//topaz/packages/prod:web_runner",
    "//topaz/packages/prod:wifi_settings",
    "//topaz/packages/prod:xi",
  ]
}

group("google_auth_provider") {
  testonly = true
  public_deps = [
    "//topaz/auth_providers/google:google_auth_provider",
  ]
}

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

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

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

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

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

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

group("dart_jit_runner") {
  testonly = true
  public_deps = [
    "//topaz/runtime/dart_runner:dart_jit_runner",
  ]
}

group("dart_aot_product_runner") {
  testonly = true
  public_deps = [
    "//topaz/runtime/dart_runner:dart_aot_product_runner",
  ]
}

group("skottie_viewer") {
  testonly = true
  public_deps = [
    "//topaz/bin/ui/skottie_viewer:package",
  ]
}

group("dart_jit_product_runner") {
  testonly = true
  public_deps = [
    "//topaz/runtime/dart_runner:dart_jit_product_runner",
  ]
}

group("userpicker_base_shell") {
  testonly = true
  public_deps = [
    "//topaz/packages/prod:flutter",
    "//topaz/bin/userpicker_base_shell",
  ]
}

group("dart_aot_runner") {
  testonly = true
  public_deps = [
    "//topaz/runtime/dart_runner:dart_aot_runner",
  ]
}

group("dart_runner") {
  testonly = true
  public_deps = [
    "//topaz/packages/prod:dart_aot_runner",
    "//topaz/packages/prod:dart_aot_product_runner",
    "//topaz/packages/prod:dart_jit_runner",
    "//topaz/packages/prod:dart_jit_product_runner",
  ]
}

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

group("modules_index") {
  testonly = true
  public_deps = [
    "//topaz:topaz_modules_index",
  ]
}

group("latin-ime") {
  testonly = true
  public_deps = [
    "//topaz/app/latin-ime",
  ]
}

group("term") {
  testonly = true
  public_deps = [
    "//garnet/packages/prod:fonts",
    "//garnet/bin/fonts:font_provider_tests",
    "//topaz/app/term",
    "//third_party/vulkan_loader_and_validation_layers/loader:vulkan_loader",
  ]
}

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

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

group("chromium") {
  testonly = true
  public_deps = [
    "//topaz/runtime/chromium",
    "//topaz/runtime/chromium:web_runner",
  ]
}

group("mondrian") {
  testonly = true
  public_deps = [
    "//topaz/shell/mondrian_story_shell:mondrian",
  ]
}

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

group("xi") {
  testonly = true
  public_deps = [
    "//topaz/bin/xi/xi_mod",
    "//topaz/bin/xi/xi_embeddable",
    "//topaz/bin/xi/xi_session_agent",
    "//topaz/bin/xi/xi_session_demo",
    "//garnet/bin/xi_core",
    "//topaz/bin/xi",
  ]
}

group("ermine") {
  testonly = true
  public_deps = [
    "//topaz/packages/prod:chromium",
    "//topaz/packages/prod:dart_jit_runner",
    "//topaz/packages/prod:dart_jit_product_runner",
    "//topaz/packages/prod:datetime_settings",
    "//topaz/packages/prod:display_settings",
    "//topaz/packages/prod:google_auth_provider",
    "//topaz/packages/prod:mondrian",
    "//topaz/packages/prod:settings",
    "//topaz/packages/prod:userpicker_base_shell",
    "//topaz/packages/prod:wifi_settings",
    "//topaz/shell/ermine:ermine",
    "//topaz/shell/ermine:ermine_ask_module",
  ]
}

group("simple_browser") {
  testonly = true
  public_deps = [
    "//topaz/bin/simple_browser:simple_browser",
    "//topaz/public/lib/webview:webview",
  ]
}

group("cast_runner") {
  testonly = true
  public_deps = [
    "//topaz/runtime/cast_runner",
  ]
}
