# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/ui.gni")

group("all") {
  # Meta-target, don't link into production code.
  testonly = true

  deps = [
    ":tests",
    "//mojo",
  ]

  if (is_android) {
    deps += [ "//mandoline/app/android" ]
  } else {
    deps += [
      "//mandoline/app/desktop",
      "//mash/example",
    ]
  }
}

group("tests") {
  testonly = true
  deps = [
    "//mojo:tests",
  ]

  data_deps = [
    "//tools/perf/clear_system_cache",  # For startup.cold.* telemetry testing.
  ]

  if (use_x11) {
    deps += [ "//tools/xdisplaycheck" ]
  }

  if (!is_mac) {
    deps += [
      "//components/clipboard:apptests",
      "//components/filesystem:apptests",
      "//components/html_viewer:apptests",
      "//components/html_viewer:html_viewer_unittests",
      "//components/html_viewer:layout_test_html_viewer",
      "//components/mus/ws:tests",
      "//components/resource_provider:apptests",
      "//components/resource_provider:resource_provider_unittests",
      "//components/web_view:apptests",
      "//components/web_view/test_runner",
      "//media/mojo/services:tests",
      "//sql/mojo:apptests",
    ]

    if (use_aura) {
      deps += [ "//mandoline/ui/desktop_ui:mandoline_browser_apptests" ]
    }
  }
}
