# Copyright 2018 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/flutter/test.gni")

dart_library("fuchsia_scenic_flutter") {
  package_name = "fuchsia_scenic_flutter"
  null_safe = true

  sdk_category = "partner"

  source_dir = "lib"

  sources = [
    "fuchsia_view.dart",
    "src/focus_state.dart",
    "src/fuchsia_view.dart",
    "src/fuchsia_view_connection.dart",
    "src/fuchsia_view_controller.dart",
    "src/fuchsia_views_service.dart",
    "src/pointer_injector.dart",
  ]

  deps = [
    "//sdk/dart/fuchsia_logger",
    "//sdk/dart/fuchsia_scenic",
    "//sdk/dart/fuchsia_services",
    "//sdk/dart/zircon",
    "//sdk/fidl/fuchsia.ui.pointerinjector",
    "//sdk/fidl/fuchsia.ui.views",
    "//third_party/dart-pkg/git/flutter/packages/flutter",
    "//third_party/dart-pkg/pub/meta",
    "//third_party/dart-pkg/pub/pedantic",
  ]
}

# Build these tests using:
#   fx set ... --with-host //sdk/dart/fuchsia_scenic_flutter:fuchsia_scenic_flutter_unittests
# Run these tests using:
#   fx test --host fuchsia_scenic_flutter_unittests
flutter_test("fuchsia_scenic_flutter_unittests") {
  sources = [
    "focus_state_test.dart",
    "fuchsia_view_connection_test.dart",
    "fuchsia_view_controller_test.dart",
    "fuchsia_view_test.dart",
    "fuchsia_views_service_test.dart",
    "pointer_injector_test.dart",
  ]

  deps = [
    ":fuchsia_scenic_flutter",
    "//sdk/dart/fidl",
    "//sdk/dart/fuchsia_logger",
    "//sdk/dart/fuchsia_services",
    "//sdk/dart/zircon",
    "//sdk/fidl/fuchsia.ui.pointerinjector",
    "//sdk/fidl/fuchsia.ui.views",
    "//third_party/dart-pkg/git/flutter/packages/flutter",
    "//third_party/dart-pkg/git/flutter/packages/flutter_test",
    "//third_party/dart-pkg/pub/mockito",
    "//third_party/dart-pkg/pub/pedantic",
    "//third_party/dart-pkg/pub/test",
  ]
}
