# 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",
    "//third_party/dart-pkg/pub/mockito",
    "//third_party/dart-pkg/pub/test",
  ]
}
