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

import("//testing/test.gni")

assert(is_chromeos, "Non-Chrome-OS builds must not depend on //chromeos")

component("attestation") {
  defines = [ "IS_CHROMEOS_ATTESTATION_IMPL" ]
  deps = [
    "//base",
    "//chromeos/cryptohome",
    "//chromeos/dbus:common",
    "//chromeos/dbus/cryptohome",
    "//chromeos/dbus/cryptohome:cryptohome_proto",
    "//components/account_id",
    "//crypto",
  ]
  sources = [
    "attestation_flow.cc",
    "attestation_flow.h",
  ]
}

source_set("test_support") {
  testonly = true
  public_deps = [
    ":attestation",
  ]
  deps = [
    "//base/test:test_support",
    "//components/account_id",
    "//testing/gmock",
  ]
  sources = [
    "mock_attestation_flow.cc",
    "mock_attestation_flow.h",
  ]
}

source_set("unit_tests") {
  testonly = true
  deps = [
    ":test_support",
    "//base/test:test_support",
    "//chromeos/cryptohome:test_support",
    "//chromeos/dbus:test_support",
    "//components/account_id",
    "//testing/gmock",
    "//testing/gtest",
  ]
  sources = [
    "attestation_flow_unittest.cc",
  ]
}
