# 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: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:skottie_viewer",
    "//topaz/packages/prod:system_dashboard",
    "//topaz/packages/prod:term",
    "//topaz/packages/prod:text_input_mod",
    "//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("text_input_mod") {
  testonly = true
  public_deps = [
    "//topaz/bin/ui/text_input_mod",
  ]
}

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

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:google_auth_provider",
    "//topaz/packages/prod:mondrian",
    "//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",
  ]
}
