# 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/dart_test.gni")

dart_library("client") {
  package_name = "lib_setui_settings_client"

  sources = [
    "time_zone_controller.dart",
    "wireless_controller.dart",
  ]

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

dart_test("lib_setui_settings_client_test") {
  sources = [
    "time_zone_controller_test.dart",
    # STOPSHIP(brycelee): add test back once migration to new api is complete.
    #"wireless_controller_test.dart",
  ]

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