# 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("quickui") {
  package_name = "quickui"

  sources = [
    "quickui.dart",
    "uistream.dart",
  ]

  deps = [ "//sdk/fidl/fuchsia.ui.remotewidgets" ]
}

dart_test("quickui_unittests") {
  sources = [
    "quickui_test.dart",
    "uistream_test.dart",
  ]

  deps = [
    ":quickui",
    "//sdk/fidl/fuchsia.ui.remotewidgets",
    "//third_party/dart-pkg/pub/mockito",
    "//third_party/dart-pkg/pub/test",
  ]
}
