# 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/package.gni")
import("//topaz/runtime/dart/flutter_test.gni")

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

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

  deps = [
    "//sdk/fidl/fuchsia.ui.input2",
    "//sdk/fidl/fuchsia.ui.shortcut",
    "//sdk/fidl/fuchsia.ui.views",
    "//third_party/dart-pkg/git/flutter/packages/flutter",
    "//third_party/dart-pkg/pub/meta",
    "//topaz/public/dart/fuchsia_services",
    "//topaz/public/dart/zircon",
  ]
}

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

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