# 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.

import("//build/dart/dart_library.gni")
import("//build/dart/test.gni")

dart_library("client") {
  package_name = "sl4f"

  sdk_category = "partner"

  sources = [
    "sl4f.dart",
    "src/audio.dart",
    "src/dump.dart",
    "src/exceptions.dart",
    "src/scenic.dart",
    "src/setui.dart",
    "src/sl4f_client.dart",
    "src/traceutil.dart",
  ]

  deps = [
    "//third_party/dart-pkg/pub/http",
    "//third_party/dart-pkg/pub/image",
    "//third_party/dart-pkg/pub/logging",
    "//third_party/dart-pkg/pub/meta",
  ]
}

dart_test("sl4f_client_tests") {
  sources = [
    "scenic_test.dart",
    "traceutil_test.dart",
  ]

  deps = [
    ":client",
    "//third_party/dart-pkg/pub/image",
    "//third_party/dart-pkg/pub/mockito",
    "//third_party/dart-pkg/pub/test",
  ]
}

group("tests") {
  testonly = true

  deps = [
    ":sl4f_client_tests($host_toolchain)",
  ]
}
