# 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.

group("unittests") {
  testonly = true

  deps = [
    ":user_shell_settings_unittest",
  ]
}

source_set("user_shell_settings") {
  sources = [
    "user_shell_settings.cc",
    "user_shell_settings.h",
  ]

  public_deps = [
    "//garnet/public/fidl/fuchsia.ui.policy",
    "//peridot/lib/rapidjson:rapidjson",
  ]
}

source_set("user_shell_settings_unittest") {
  testonly = true

  sources = [
    "user_shell_settings_test.cc",
  ]

  deps = [
    ":user_shell_settings",
    "//garnet/public/lib/fxl",
    "//third_party/googletest:gtest_main",
  ]
}
