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

  sources = [
    "service.dart",
  ]

  deps = [
    "//garnet/public/fidl/fuchsia.netstack",
    "//garnet/public/fidl/fuchsia.setui",
    "//garnet/public/fidl/fuchsia.timezone",
    "//garnet/public/fidl/fuchsia.wlan.service",
    "//topaz/lib/settings:lib.settings",
    "//topaz/lib/setui/settings/common:common",
    "//topaz/public/dart/fidl",
    "//topaz/public/dart/widgets:lib.widgets",
    "//topaz/public/lib/app/dart",
    "//zircon/public/fidl/fuchsia-net:fuchsia-net",
  ]
}

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

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