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

group("all") {
  testonly = true
  public_deps = [
    "//topaz/packages/examples:dart",
    "//topaz/packages/examples:dart_sdk",
    "//topaz/packages/examples:fidl",
    "//topaz/packages/examples:flutter_gallery",
    "//topaz/packages/examples:inspect",
    "//topaz/packages/examples:misc",
    "//topaz/packages/examples:modular",
    "//topaz/packages/examples:mondrian",
    "//topaz/packages/examples:noodles",
    "//topaz/packages/examples:simple_flutter",
    "//topaz/packages/examples:spinning_cube",
    "//topaz/packages/examples:tests",
    "//topaz/packages/examples:ui",
  ]
}

group("dart_sdk") {
  testonly = true
  public_deps = [
    "//topaz/public/dart/fuchsia_services/examples/mind_reader/bin:mind_reader_dart",
  ]
}

group("fidl") {
  testonly = true
  public_deps = [
    "//topaz/examples/fidl/compiler",
    "//topaz/examples/fidl/echo_client_async_dart",
    "//topaz/examples/fidl/echo_server_async_dart",
  ]
}

group("tests") {
  testonly = true
  public_deps = [
    "//topaz/examples/test/driver_example_mod",
    "//topaz/examples/test/driver_example_mod:driver_example_mod_tests",
    "//topaz/public/dart/fuchsia_modular/examples/slider_mod",
    "//topaz/public/dart/fuchsia_modular/examples/slider_mod:slider_mod_tests",
  ]
}

group("misc") {
  testonly = true
  public_deps = [
    "//garnet/packages/prod:drivers",
    "//topaz/examples/ledger/todo_list",
    "//topaz/examples/ledger/todo_list_sledge",
    "//topaz/examples/mediaplayer/mediaplayer_flutter",
    "//topaz/examples/mediaplayer/mediaplayer_skia",
    "//topaz/examples/mine_digger",
  ]
}

group("ui") {
  testonly = true
  public_deps = [
    "//topaz/examples/ui/button_flutter",
    "//topaz/examples/ui/jank:package",
    "//topaz/examples/ui/localized_mod",
    "//topaz/examples/ui/paint:package",
    "//topaz/examples/ui/view_config_demo",
    "//topaz/packages/examples:noodles",
  ]
}

group("noodles") {
  testonly = true
  public_deps = [
    "//topaz/examples/ui/noodles",
  ]
}

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

group("mondrian") {
  testonly = true
  public_deps = [
    "//topaz/lib/story_shell/examples/example_manual_relationships",
    "//topaz/lib/story_shell/examples/mondrian_test",
  ]
}

group("simple_flutter") {
  testonly = true
  public_deps = [
    "//topaz/examples/ui/simple_flutter:simple_flutter",
  ]
}

group("modular") {
  testonly = true
  public_deps = [
    "//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",
  ]
}

group("inspect") {
  testonly = true
  public_deps = [
    "//topaz/public/dart/fuchsia_inspect/examples/inspect_mod",
  ]
}

group("flutter_gallery") {
  testonly = true
  public_deps = [
    "//third_party/dart-pkg/git/flutter/examples/flutter_gallery",
  ]
}
