# Copyright 2017 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("//services/catalog/public/tools/catalog.gni")
import("//services/service_manager/public/cpp/service.gni")
import("//services/service_manager/public/service_manifest.gni")

source_set("lib") {
  sources = [
    "identity_manager_impl.cc",
    "identity_manager_impl.h",
    "identity_service.cc",
    "identity_service.h",
  ]

  deps = [
    "//base",
    "//components/signin/core/browser",
    "//components/signin/core/browser:account_info",
    "//services/identity/public/cpp:cpp_types",
    "//services/identity/public/mojom",
    "//services/service_manager/public/cpp",
    "//services/service_manager/public/mojom",
  ]
}

service_manifest("manifest") {
  name = "identity"
  source = "manifest.json"
}

source_set("tests") {
  testonly = true
  deps = [
    ":lib",
    "//base",
    "//base/test:test_support",
    "//components/signin/core/browser",
    "//components/signin/core/browser:account_info",
    "//components/signin/core/browser:test_support",
    "//components/sync_preferences:test_support",
    "//mojo/public/cpp/bindings:bindings",
    "//services/identity/public/cpp",
    "//services/identity/public/cpp:test_support",
    "//services/identity/public/mojom",
    "//services/service_manager/public/cpp",
    "//services/service_manager/public/cpp:service_test_support",
    "//testing/gmock",
    "//testing/gtest",
  ]
  sources = [
    "identity_manager_impl_unittest.cc",
    "public/cpp/access_token_fetcher_unittest.cc",
    "public/cpp/identity_manager_unittest.cc",
    "public/cpp/primary_account_access_token_fetcher_unittest.cc",
  ]
}

service_manifest("unittest_manifest") {
  name = "identity_unittests"
  source = "unittest_manifest.json"
  packaged_services = [ ":manifest" ]
}

catalog("tests_catalog") {
  testonly = true
  embedded_services = [ ":unittest_manifest" ]
}
