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

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

  deps = [
    "//garnet/public/lib/fsl",
  ]

  public_deps = [
    "//garnet/public/lib/network_wrapper:network_wrapper",
    "//third_party/cobalt/third_party/clearcut:clearcut",
    "//third_party/cobalt/third_party/tensorflow_statusor:statusor",
  ]
}

executable("cobalt_utils_unittests") {
  testonly = true

  sources = [
    "fuchsia_http_client_test.cc",
  ]

  deps = [
    ":fuchsia_http_client",
    "//garnet/public/lib/fxl/test:gtest_main",
    "//garnet/public/lib/gtest",
    "//garnet/public/lib/network_wrapper:fake",
    "//third_party/googletest:gtest",
  ]
}
