# Copyright 2015 The Chromium 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("certificate_transparency") {
  sources = [
    "log_proof_fetcher.cc",
    "log_proof_fetcher.h",
  ]

  deps = [
    "//base",
    "//components/safe_json",
    "//net",
    "//url",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "log_proof_fetcher_unittest.cc",
  ]

  deps = [
    ":certificate_transparency",
    "//base/test:test_support",
    "//components/safe_json:test_support",
    "//net:test_support",
    "//testing/gtest",
  ]
}
