# Copyright 2023 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//testing/libfuzzer/fuzzer_test.gni")

source_set("sharing") {
  sources = [
    "incoming_password_sharing_invitation_data_type_controller.cc",
    "incoming_password_sharing_invitation_data_type_controller.h",
    "incoming_password_sharing_invitation_sync_bridge.cc",
    "incoming_password_sharing_invitation_sync_bridge.h",
    "outgoing_password_sharing_invitation_data_type_controller.cc",
    "outgoing_password_sharing_invitation_data_type_controller.h",
    "outgoing_password_sharing_invitation_sync_bridge.cc",
    "outgoing_password_sharing_invitation_sync_bridge.h",
    "password_receiver_service.h",
    "password_receiver_service_impl.cc",
    "password_receiver_service_impl.h",
    "password_sender_service.h",
    "password_sender_service_impl.cc",
    "password_sender_service_impl.h",
    "password_sharing_recipients_downloader.cc",
    "password_sharing_recipients_downloader.h",
    "recipient_info.cc",
    "recipient_info.h",
    "recipients_fetcher.h",
    "recipients_fetcher_impl.cc",
    "recipients_fetcher_impl.h",
  ]
  deps = [
    "//base",
    "//components/password_manager/core/browser:metrics_util",
    "//components/password_manager/core/browser:password_form",
    "//components/password_manager/core/browser/features:password_features",
    "//components/password_manager/core/browser/features:utils",
    "//components/password_manager/core/browser/password_store:password_store_interface",
    "//components/password_manager/core/common",
    "//components/prefs",
    "//components/signin/public/identity_manager",
    "//components/sync/base",
    "//components/sync/model",
    "//components/sync/service",
    "//google_apis",
    "//net",
    "//net/traffic_annotation",
    "//services/network/public/cpp",
    "//services/network/public/mojom",
  ]
  configs += [ "//build/config/compiler:wexit_time_destructors" ]
}

static_library("test_support") {
  testonly = true
  sources = [
    "fake_recipients_fetcher.cc",
    "fake_recipients_fetcher.h",
    "mock_password_sender_service.cc",
    "mock_password_sender_service.h",
  ]
  deps = [
    ":sharing",
    "//base",
    "//components/password_manager/core/browser:password_form",
    "//testing/gmock",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "incoming_password_sharing_invitation_sync_bridge_unittest.cc",
    "outgoing_password_sharing_invitation_sync_bridge_unittest.cc",
    "password_receiver_service_impl_unittest.cc",
    "password_sharing_recipients_downloader_unittest.cc",
    "recipients_fetcher_impl_unittest.cc",
  ]
  deps = [
    ":sharing",
    "//components/affiliations/core/browser:test_support",
    "//components/password_manager/core/browser:password_form",
    "//components/password_manager/core/browser:test_support",
    "//components/password_manager/core/browser/features:password_features",
    "//components/password_manager/core/common",
    "//components/prefs",
    "//components/prefs:test_support",
    "//components/signin/public/identity_manager:test_support",
    "//components/sync:test_support",
    "//components/sync/model",
    "//components/sync/protocol",
    "//testing/gmock",
    "//testing/gtest",
    "//url",
  ]
}
