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

  sources = [
    "setting_adapter.dart",
    "setting_controller.dart",
    "setting_model.dart",
    "setting_source.dart",
  ]

  deps = [
    "//sdk/fidl/fuchsia.setui",
    "//topaz/lib/setui/common:common",
    "//topaz/lib/setui/flutter:flutter",
    "//topaz/lib/setui/settings/json:fuchsia.setui.json",
  ]
}

flutter_test("lib_setui_settings_common_test") {
  sources = [
    "adapter_log_test.dart",
    "setting_controller_test.dart",
  ]

  deps = [
    ":common",
    "//sdk/fidl/fuchsia.setui",
    "//third_party/dart-pkg/git/flutter/packages/flutter_test",
    "//third_party/dart-pkg/pub/mockito",
    "//third_party/dart-pkg/pub/test",
  ]
}
