# 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/fidl/fidl.gni")
import("//build/flutter/test.gni")

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

  sources = [
    "keyboard_shortcuts.dart",
    "src/keyboard_shortcuts.dart",
  ]

  deps = [
    "//sdk/dart/fuchsia_services",
    "//sdk/dart/zircon",
    "//sdk/fidl/fuchsia.input:fuchsia.input_dart",
    "//sdk/fidl/fuchsia.ui.shortcut:fuchsia.ui.shortcut_dart",
    "//sdk/fidl/fuchsia.ui.views:fuchsia.ui.views_dart",
    "//third_party/dart-pkg/git/flutter/packages/flutter",
    "//third_party/dart-pkg/pub/meta",
  ]
}

#fx run-host-tests keyboard_shortcuts_unittests
flutter_test("keyboard_shortcuts_unittests") {
  sources = [ "keyboard_shortcuts_test.dart" ]
  null_safe = true

  deps = [
    ":keyboard_shortcuts",
    "//sdk/dart/fidl",
    "//sdk/dart/zircon",
    "//sdk/fidl/fuchsia.input:fuchsia.input_dart",
    "//sdk/fidl/fuchsia.ui.shortcut:fuchsia.ui.shortcut_dart",
    "//sdk/fidl/fuchsia.ui.views:fuchsia.ui.views_dart",
    "//third_party/dart-pkg/git/flutter/packages/flutter_test",
    "//third_party/dart-pkg/pub/mockito",
    "//third_party/dart-pkg/pub/test",
  ]
}
