# 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 = [
    ":session_shell_settings_unittest",
  ]
}

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

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

source_set("session_shell_settings_unittest") {
  testonly = true

  sources = [
    "session_shell_settings_test.cc",
  ]

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