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

group("unit_tests") {
  testonly = true
  deps = [
    ":save_card_bottom_sheet_coordinator_unittest",
    ":save_card_bottom_sheet_mediator_unittest",
    ":save_card_bottom_sheet_view_controller_unittest",
    ":virtual_card_enrollment_bottom_sheet_coordinator_unittest",
    ":virtual_card_enrollment_bottom_sheet_mediator_unittest",
  ]
}

group("eg2_tests") {
  testonly = true
  deps = [ ":virtual_card_enrollment_bottom_sheet_egtest" ]
}

source_set("constants") {
  sources = [
    "bottom_sheet_constants.h",
    "bottom_sheet_constants.mm",
  ]
  deps = [ "//base" ]
}

source_set("bottom_sheet") {
  sources = [
    "infobar_autofill_edit_profile_bottom_sheet_handler.h",
    "infobar_autofill_edit_profile_bottom_sheet_handler.mm",
    "settings_autofill_edit_profile_bottom_sheet_handler.h",
    "settings_autofill_edit_profile_bottom_sheet_handler.mm",
  ]
  deps = [
    "//base",
    "//components/autofill/core/browser",
    "//components/autofill/core/common:features",
    "//components/autofill/ios/browser",
    "//components/autofill/ios/common",
    "//components/autofill/ios/form_util",
    "//components/infobars/core",
    "//components/strings",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser/autofill/bnpl",
    "//ios/chrome/browser/autofill/model",
    "//ios/chrome/browser/autofill/model:features",
    "//ios/chrome/browser/autofill/model:model_internal",
    "//ios/chrome/browser/autofill/model/bottom_sheet",
    "//ios/chrome/browser/autofill/model/credit_card",
    "//ios/chrome/browser/autofill/ui_bundled:autofill_ui_constants",
    "//ios/chrome/browser/autofill/ui_bundled/address_editor:autofill_edit",
    "//ios/chrome/browser/autofill/ui_bundled/address_editor:autofill_shared_ui",
    "//ios/chrome/browser/autofill/ui_bundled/address_editor:constants",
    "//ios/chrome/browser/autofill/ui_bundled/address_editor/cells",
    "//ios/chrome/browser/infobars/model",
    "//ios/chrome/browser/infobars/model:public",
    "//ios/chrome/browser/shared/coordinator/alert",
    "//ios/chrome/browser/shared/coordinator/chrome_coordinator",
    "//ios/chrome/browser/shared/model/profile",
    "//ios/chrome/browser/shared/model/web_state_list",
    "//ios/chrome/browser/shared/public/commands",
    "//ios/chrome/browser/shared/ui/table_view",
    "//ios/web/public",
    "//ios/web/public/js_messaging",
    "//ui/base",
  ]
}

# Save Card Bottom Sheet related classes are below:

source_set("save_card_bottom_sheet_coordinator") {
  sources = [
    "save_card_bottom_sheet_coordinator.h",
    "save_card_bottom_sheet_coordinator.mm",
  ]
  deps = [
    ":save_card_bottom_sheet_delegate",
    ":save_card_bottom_sheet_mediator",
    ":save_card_bottom_sheet_view_controller",
    "//base",
    "//components/autofill/ios/browser",
    "//ios/chrome/browser/autofill/model/bottom_sheet",
    "//ios/chrome/browser/autofill/model/bottom_sheet:save_card_bottom_sheet_model",
    "//ios/chrome/browser/autofill/scan_save_and_fill/ui:edit_ui",
    "//ios/chrome/browser/net/model:crurl",
    "//ios/chrome/browser/settings/ui_bundled/credit_card_scanner",
    "//ios/chrome/browser/shared/coordinator/chrome_coordinator",
    "//ios/chrome/browser/shared/model/browser",
    "//ios/chrome/browser/shared/model/web_state_list",
    "//ios/chrome/browser/shared/public/commands",
  ]
  public_deps = [ ":save_card_bottom_sheet_delegate" ]
  frameworks = [ "UIKit.framework" ]
}

source_set("save_card_bottom_sheet_coordinator_unittest") {
  testonly = true
  sources = [ "save_card_bottom_sheet_coordinator_unittest.mm" ]
  deps = [
    ":save_card_bottom_sheet_coordinator",
    ":save_card_bottom_sheet_mediator",
    "//base/test:test_support",
    "//components/autofill/ios/browser",
    "//ios/chrome/browser/autofill/model/bottom_sheet",
    "//ios/chrome/browser/autofill/model/bottom_sheet:save_card_bottom_sheet_model",
    "//ios/chrome/browser/autofill/scan_save_and_fill/ui:edit_ui",
    "//ios/chrome/browser/net/model:crurl",
    "//ios/chrome/browser/settings/ui_bundled/credit_card_scanner",
    "//ios/chrome/browser/shared/model/browser/test:test_support",
    "//ios/chrome/browser/shared/model/profile/test",
    "//ios/chrome/browser/shared/model/web_state_list",
    "//ios/chrome/browser/shared/public/commands",
    "//ios/chrome/test/app:test_support",
    "//ios/web/public/test",
    "//testing/gtest",
    "//third_party/ocmock",
  ]
}

source_set("save_card_bottom_sheet_consumer") {
  sources = [ "save_card_bottom_sheet_consumer.h" ]
  deps = [
    "//ios/chrome/browser/autofill/model/message",
    "//ios/chrome/browser/autofill/ui_bundled:ui_type",
  ]
  frameworks = [ "UIKit.framework" ]
}

source_set("save_card_bottom_sheet_mutator") {
  sources = [ "save_card_bottom_sheet_mutator.h" ]
  deps = [
    "//components/autofill/core/browser",
    "//ios/chrome/browser/autofill/ui_bundled:ui_type",
  ]
  frameworks = [ "UIKit.framework" ]
}

source_set("save_card_bottom_sheet_view_controller") {
  sources = [
    "save_card_bottom_sheet_view_controller.h",
    "save_card_bottom_sheet_view_controller.mm",
  ]
  deps = [
    ":save_card_bottom_sheet_consumer",
    ":save_card_bottom_sheet_delegate",
    ":save_card_bottom_sheet_mutator",
    "//build:branding_buildflags",
    "//components/strings:components_strings_grit",
    "//ios/chrome/browser/autofill/model/message",
    "//ios/chrome/browser/autofill/ui_bundled/bottom_sheet:constants",
    "//ios/chrome/browser/autofill/ui_bundled/util",
    "//ios/chrome/browser/net/model:crurl",
    "//ios/chrome/browser/shared/ui/bottom_sheet:table_view_bottom_sheet_view_controller",
    "//ios/chrome/browser/shared/ui/symbols",
    "//ios/chrome/browser/shared/ui/table_view/cells",
    "//ios/chrome/browser/shared/ui/table_view/content_configuration",
    "//ios/chrome/common/ui/button_stack",
    "//ios/chrome/common/ui/colors",
    "//ios/chrome/common/ui/confirmation_alert",
    "//ui/base",
  ]
  frameworks = [ "UIKit.framework" ]
}

source_set("save_card_bottom_sheet_view_controller_unittest") {
  testonly = true
  sources = [ "save_card_bottom_sheet_view_controller_unittest.mm" ]
  deps = [
    ":save_card_bottom_sheet_consumer",
    ":save_card_bottom_sheet_view_controller",
    "//base/test:test_support",
    "//build:branding_buildflags",
    "//components/strings:components_strings_grit",
    "//ios/chrome/browser/autofill/model/message",
    "//ios/chrome/browser/shared/ui/table_view/cells",
    "//ios/chrome/browser/shared/ui/table_view/content_configuration",
    "//ios/chrome/common/ui/button_stack",
    "//ios/chrome/common/ui/confirmation_alert",
    "//testing/gtest",
    "//third_party/ocmock",
    "//ui/base",
  ]
}

source_set("save_card_bottom_sheet_delegate") {
  sources = [ "save_card_bottom_sheet_delegate.h" ]
  deps = []
}

source_set("save_card_bottom_sheet_mediator") {
  sources = [
    "save_card_bottom_sheet_mediator.h",
    "save_card_bottom_sheet_mediator.mm",
  ]
  deps = [
    ":constants",
    ":save_card_bottom_sheet_consumer",
    ":save_card_bottom_sheet_mutator",
    "//base",
    "//components/application_locale_storage",
    "//components/autofill/ios/browser",
    "//components/strings:components_strings_grit",
    "//ios/chrome/browser/autofill/model/bottom_sheet:save_card_bottom_sheet_model",
    "//ios/chrome/browser/autofill/model/message",
    "//ios/chrome/browser/autofill/ui_bundled/util",
    "//ios/chrome/browser/shared/model/application_context",
    "//ios/chrome/browser/shared/public/commands",
    "//ios/chrome/browser/shared/ui/util",
    "//ui/base",
  ]
  frameworks = [ "UIKit.framework" ]
}

source_set("save_card_bottom_sheet_mediator_unittest") {
  testonly = true
  sources = [ "save_card_bottom_sheet_mediator_unittest.mm" ]
  deps = [
    ":constants",
    ":save_card_bottom_sheet_consumer",
    ":save_card_bottom_sheet_mediator",
    "//base",
    "//base/test:test_support",
    "//components/autofill/core/browser",
    "//components/autofill/core/browser:test_support",
    "//components/autofill/ios/browser",
    "//components/resources:components_scaled_resources_grit",
    "//components/strings:components_strings_grit",
    "//ios/chrome/browser/autofill/model/bottom_sheet:save_card_bottom_sheet_model",
    "//ios/chrome/browser/autofill/model/message",
    "//ios/chrome/browser/autofill/ui_bundled:ui_type",
    "//ios/chrome/browser/shared/public/commands",
    "//ios/web/public/test",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/ocmock",
  ]
}

# Virtual Card Enrollment Bottom Sheet related classes are below:

source_set("virtual_card_enrollment_bottom_sheet_coordinator") {
  sources = [
    "virtual_card_enrollment_bottom_sheet_coordinator.h",
    "virtual_card_enrollment_bottom_sheet_coordinator.mm",
  ]
  deps = [
    ":virtual_card_enrollment_bottom_sheet_consumer",
    ":virtual_card_enrollment_bottom_sheet_delegate",
    ":virtual_card_enrollment_bottom_sheet_mediator",
    ":virtual_card_enrollment_bottom_sheet_view_controller",
    "//components/autofill/core/browser",
    "//ios/chrome/browser/autofill/model/bottom_sheet",
    "//ios/chrome/browser/autofill/model/bottom_sheet:virtual_card_enrollment_callbacks",
    "//ios/chrome/browser/net/model:crurl",
    "//ios/chrome/browser/shared/coordinator/chrome_coordinator",
    "//ios/chrome/browser/shared/model/browser",
    "//ios/chrome/browser/shared/model/profile",
    "//ios/chrome/browser/shared/model/web_state_list",
    "//ios/chrome/browser/shared/public/commands",
    "//ios/web/public",
  ]
  frameworks = [ "UIKit.framework" ]
}

source_set("virtual_card_enrollment_bottom_sheet_coordinator_unittest") {
  testonly = true
  sources = [ "virtual_card_enrollment_bottom_sheet_coordinator_unittest.mm" ]
  deps = [
    ":virtual_card_enrollment_bottom_sheet_consumer",
    ":virtual_card_enrollment_bottom_sheet_coordinator",
    ":virtual_card_enrollment_bottom_sheet_delegate",
    "//base/test:test_support",
    "//components/autofill/core/browser",
    "//ios/chrome/browser/autofill/model/bottom_sheet",
    "//ios/chrome/browser/autofill/model/bottom_sheet:virtual_card_enrollment_callbacks",
    "//ios/chrome/browser/net/model:crurl",
    "//ios/chrome/browser/shared/model/browser/test:test_support",
    "//ios/chrome/browser/shared/model/profile/test",
    "//ios/chrome/browser/shared/model/web_state_list",
    "//ios/chrome/browser/shared/public/commands",
    "//ios/chrome/test:test_support",
    "//ios/chrome/test/app:test_support",
    "//ios/web/public",
    "//ios/web/public/test",
    "//testing/gtest",
    "//third_party/ocmock",
  ]
}

source_set("virtual_card_enrollment_bottom_sheet_mediator") {
  sources = [
    "virtual_card_enrollment_bottom_sheet_mediator.h",
    "virtual_card_enrollment_bottom_sheet_mediator.mm",
  ]
  deps = [
    ":constants",
    ":virtual_card_enrollment_bottom_sheet_consumer",
    ":virtual_card_enrollment_bottom_sheet_data",
    ":virtual_card_enrollment_bottom_sheet_mutator",
    "//components/autofill/core/browser",
    "//ios/chrome/browser/autofill/model/bottom_sheet:virtual_card_enrollment_callbacks",
    "//ios/chrome/browser/autofill/model/credit_card",
    "//ios/chrome/browser/autofill/model/message",
    "//ios/chrome/browser/shared/public/commands",
  ]
  frameworks = [ "UIKit.framework" ]
}

source_set("virtual_card_enrollment_bottom_sheet_mutator") {
  sources = [ "virtual_card_enrollment_bottom_sheet_mutator.h" ]
  deps = []
  frameworks = [ "UIKit.framework" ]
}

source_set("virtual_card_enrollment_bottom_sheet_data") {
  sources = [
    "virtual_card_enrollment_bottom_sheet_data.h",
    "virtual_card_enrollment_bottom_sheet_data.mm",
  ]
  deps = [
    "//ios/chrome/browser/autofill/model/credit_card",
    "//ios/chrome/browser/autofill/model/message",
  ]
}

source_set("virtual_card_enrollment_bottom_sheet_consumer") {
  sources = [ "virtual_card_enrollment_bottom_sheet_consumer.h" ]
  deps = [
    ":virtual_card_enrollment_bottom_sheet_data",
    "//components/autofill/core/browser",
  ]
  frameworks = [ "UIKit.framework" ]
}

source_set("virtual_card_enrollment_bottom_sheet_mediator_unittest") {
  testonly = true
  sources = [ "virtual_card_enrollment_bottom_sheet_mediator_unittest.mm" ]
  deps = [
    ":virtual_card_enrollment_bottom_sheet_consumer",
    ":virtual_card_enrollment_bottom_sheet_mediator",
    "//base/test:test_support",
    "//components/autofill/core/browser",  # This test depends on
                                           # autofill::VirtualCardEnrollUiModel.
    "//components/autofill/core/browser:test_support",
    "//ios/chrome/browser/autofill/model/message",
    "//ios/chrome/browser/shared/public/commands",
    "//testing/gtest",
    "//third_party/ocmock",
    "//ui/gfx:test_support",
  ]
}

source_set("virtual_card_enrollment_bottom_sheet_view_controller") {
  sources = [
    "virtual_card_enrollment_bottom_sheet_view_controller.h",
    "virtual_card_enrollment_bottom_sheet_view_controller.mm",
  ]
  deps = [
    ":virtual_card_enrollment_bottom_sheet_consumer",
    ":virtual_card_enrollment_bottom_sheet_delegate",
    ":virtual_card_enrollment_bottom_sheet_mutator",
    "//build:branding_buildflags",
    "//components/autofill/core/browser",
    "//components/resources:components_scaled_resources_grit",
    "//components/strings",
    "//ios/chrome/browser/autofill/model/message",
    "//ios/chrome/browser/autofill/ui_bundled/bottom_sheet:constants",
    "//ios/chrome/browser/autofill/ui_bundled/bottom_sheet/resources",
    "//ios/chrome/browser/autofill/ui_bundled/util",
    "//ios/chrome/browser/net/model:crurl",
    "//ios/chrome/browser/shared/ui/bottom_sheet:bottom_sheet_view_controller",
    "//ios/chrome/browser/shared/ui/symbols",
    "//ios/chrome/browser/shared/ui/table_view/cells",
    "//ios/chrome/browser/shared/ui/table_view/content_configuration",
    "//ios/chrome/browser/shared/ui/util",
    "//ios/chrome/common/ui/button_stack",
    "//ios/chrome/common/ui/colors",
    "//ios/chrome/common/ui/confirmation_alert",
    "//ios/chrome/common/ui/util",
    "//url",
  ]
  frameworks = [ "UIKit.framework" ]
}

source_set("virtual_card_enrollment_bottom_sheet_delegate") {
  sources = [ "virtual_card_enrollment_bottom_sheet_delegate.h" ]
  deps = []
}

source_set("virtual_card_enrollment_bottom_sheet_egtest") {
  configs += [ "//build/config/ios:xctest_config" ]
  testonly = true
  sources = [ "virtual_card_enrollment_bottom_sheet_egtest.mm" ]
  deps = [
    "//components/autofill/core/browser:test_support",
    "//components/autofill/ios/browser:autofill_test_bundle_data",
    "//components/strings",
    "//components/url_formatter",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser/autofill/authentication/test:egtest_util",
    "//ios/chrome/browser/autofill/ui_bundled:eg_test_support+eg2",
    "//ios/chrome/browser/metrics/model:eg_test_support+eg2",
    "//ios/chrome/browser/settings/ui_bundled:settings_root_constants",
    "//ios/chrome/test/earl_grey:eg_test_support+eg2",
    "//ios/testing/earl_grey:eg_test_support+eg2",
    "//net:test_support",
    "//ui/base",
  ]
  frameworks = [ "UIKit.framework" ]
}
