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

dart_library("flutter") {
  package_name = "lib_setui_flutter"

  sources = [
    "widget_action.dart",
    "widget_action_client.dart",
    "widget_action_host.dart",
    "widget_blueprint.dart",
  ]

  deps = [
    "//third_party/dart-pkg/pub/yaml",
    "//topaz/lib/setui/common:common",
    "//topaz/public/dart/widgets:lib.widgets",
  ]
}

flutter_test("lib_setui_flutter_test") {
  sources = [
    "action_test.dart",
  ]

  deps = [
    ":flutter",
    "//third_party/dart-pkg/git/flutter/packages/flutter_test",
    "//third_party/dart-pkg/pub/mockito",
    "//third_party/dart-pkg/pub/test",
  ]
}
