# Copyright 2016 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("//ios/web/js_compile.gni")

source_set("payments") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    "address_edit_coordinator.h",
    "address_edit_coordinator.mm",
    "address_edit_mediator.h",
    "address_edit_mediator.mm",
    "billing_address_selection_coordinator.h",
    "billing_address_selection_coordinator.mm",
    "billing_address_selection_mediator.h",
    "billing_address_selection_mediator.mm",
    "contact_info_edit_coordinator.h",
    "contact_info_edit_coordinator.mm",
    "contact_info_edit_mediator.h",
    "contact_info_edit_mediator.mm",
    "contact_info_selection_coordinator.h",
    "contact_info_selection_coordinator.mm",
    "contact_info_selection_mediator.h",
    "contact_info_selection_mediator.mm",
    "country_selection_coordinator.h",
    "country_selection_coordinator.mm",
    "credit_card_edit_coordinator.h",
    "credit_card_edit_coordinator.mm",
    "credit_card_edit_mediator.h",
    "credit_card_edit_mediator.mm",
    "full_card_requester.h",
    "full_card_requester.mm",
    "js_payment_request_manager.h",
    "js_payment_request_manager.mm",
    "payment_items_display_coordinator.h",
    "payment_items_display_coordinator.mm",
    "payment_items_display_mediator.h",
    "payment_items_display_mediator.mm",
    "payment_method_selection_coordinator.h",
    "payment_method_selection_coordinator.mm",
    "payment_method_selection_mediator.h",
    "payment_method_selection_mediator.mm",
    "payment_request_coordinator.h",
    "payment_request_coordinator.mm",
    "payment_request_error_coordinator.h",
    "payment_request_error_coordinator.mm",
    "payment_request_manager.h",
    "payment_request_manager.mm",
    "payment_request_mediator.h",
    "payment_request_mediator.mm",
    "region_data_loader.h",
    "region_data_loader.mm",
    "shipping_address_selection_coordinator.h",
    "shipping_address_selection_coordinator.mm",
    "shipping_address_selection_mediator.h",
    "shipping_address_selection_mediator.mm",
    "shipping_option_selection_coordinator.h",
    "shipping_option_selection_coordinator.mm",
    "shipping_option_selection_mediator.h",
    "shipping_option_selection_mediator.mm",
  ]
  deps = [
    ":payments_ui",
    "resources:ic_add",
    "//base",
    "//components/autofill/core/browser",
    "//components/autofill/ios/browser",
    "//components/payments/core",
    "//components/payments/mojom",
    "//components/signin/core/browser",
    "//components/strings",
    "//components/toolbar",
    "//components/url_formatter",
    "//ios/chrome/app/strings",
    "//ios/chrome/app/theme",
    "//ios/chrome/browser",
    "//ios/chrome/browser/autofill",
    "//ios/chrome/browser/browser_state",
    "//ios/chrome/browser/payments",
    "//ios/chrome/browser/signin",
    "//ios/chrome/browser/ui",
    "//ios/chrome/browser/ui/autofill",
    "//ios/chrome/browser/ui/autofill:autofill_ui",
    "//ios/chrome/browser/ui/autofill/cells",
    "//ios/chrome/browser/ui/collection_view",
    "//ios/chrome/browser/ui/collection_view/cells",
    "//ios/chrome/browser/ui/colors",
    "//ios/chrome/browser/ui/commands",
    "//ios/chrome/browser/ui/coordinators:chrome_coordinators",
    "//ios/chrome/browser/ui/icons",
    "//ios/chrome/browser/ui/payments/cells",
    "//ios/third_party/material_components_ios",
    "//ios/third_party/material_roboto_font_loader_ios",
    "//ios/web",
    "//third_party/libaddressinput",
    "//third_party/libaddressinput:strings_grit",
    "//ui/base",
  ]
  libs = [ "UIKit.framework" ]
}

source_set("payments_ui") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    "payment_items_display_view_controller.h",
    "payment_items_display_view_controller.mm",
    "payment_items_display_view_controller_actions.h",
    "payment_items_display_view_controller_data_source.h",
    "payment_request_edit_consumer.h",
    "payment_request_edit_view_controller.h",
    "payment_request_edit_view_controller.mm",
    "payment_request_edit_view_controller_actions.h",
    "payment_request_edit_view_controller_data_source.h",
    "payment_request_edit_view_controller_validator.h",
    "payment_request_editor_field.h",
    "payment_request_editor_field.mm",
    "payment_request_error_view_controller.h",
    "payment_request_error_view_controller.mm",
    "payment_request_error_view_controller_actions.h",
    "payment_request_navigation_controller.h",
    "payment_request_navigation_controller.mm",
    "payment_request_picker_row.h",
    "payment_request_picker_row.mm",
    "payment_request_picker_view_controller.h",
    "payment_request_picker_view_controller.mm",
    "payment_request_selector_view_controller.h",
    "payment_request_selector_view_controller.mm",
    "payment_request_selector_view_controller_actions.h",
    "payment_request_selector_view_controller_data_source.h",
    "payment_request_view_controller.h",
    "payment_request_view_controller.mm",
    "payment_request_view_controller_actions.h",
    "payment_request_view_controller_data_source.h",
  ]
  deps = [
    "//base",
    "//components/strings",
    "//ios/chrome/app/strings:ios_strings_grit",
    "//ios/chrome/app/theme",
    "//ios/chrome/browser/ui",
    "//ios/chrome/browser/ui/autofill:autofill_ui",
    "//ios/chrome/browser/ui/autofill/cells",
    "//ios/chrome/browser/ui/collection_view",
    "//ios/chrome/browser/ui/colors",
    "//ios/chrome/browser/ui/icons",
    "//ios/chrome/browser/ui/list_model",
    "//ios/chrome/browser/ui/material_components",
    "//ios/chrome/browser/ui/payments/cells",
    "//ios/third_party/material_components_ios",
    "//third_party/libaddressinput:strings_grit",
    "//ui/base",
  ]
  libs = [ "UIKit.framework" ]
}

source_set("unit_tests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "address_edit_coordinator_unittest.mm",
    "address_edit_mediator_unittest.mm",
    "billing_address_selection_coordinator_unittest.mm",
    "billing_address_selection_mediator_unittest.mm",
    "contact_info_edit_coordinator_unittest.mm",
    "contact_info_edit_mediator_unittest.mm",
    "contact_info_selection_coordinator_unittest.mm",
    "contact_info_selection_mediator_unittest.mm",
    "country_selection_coordinator_unittest.mm",
    "credit_card_edit_coordinator_unittest.mm",
    "credit_card_edit_mediator_unittest.mm",
    "full_card_requester_unittest.mm",
    "payment_items_display_coordinator_unittest.mm",
    "payment_items_display_mediator_unittest.mm",
    "payment_items_display_view_controller_unittest.mm",
    "payment_method_selection_coordinator_unittest.mm",
    "payment_method_selection_mediator_unittest.mm",
    "payment_request_coordinator_unittest.mm",
    "payment_request_edit_view_controller_unittest.mm",
    "payment_request_error_coordinator_unittest.mm",
    "payment_request_error_view_controller_unittest.mm",
    "payment_request_mediator_unittest.mm",
    "payment_request_selector_view_controller_unittest.mm",
    "payment_request_view_controller_unittest.mm",
    "region_data_loader_unittest.mm",
    "shipping_address_selection_coordinator_unittest.mm",
    "shipping_address_selection_mediator_unittest.mm",
    "shipping_option_selection_coordinator_unittest.mm",
    "shipping_option_selection_mediator_unittest.mm",
  ]
  deps = [
    ":payments",
    ":payments_ui",
    "//base",
    "//base/test:test_support",
    "//components/autofill/core/browser",
    "//components/autofill/core/browser:test_support",
    "//components/autofill/ios/browser",
    "//components/payments/core",
    "//components/payments/core:test_support",
    "//components/payments/mojom",
    "//components/prefs:prefs",
    "//components/signin/core/browser",
    "//components/strings",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser",
    "//ios/chrome/browser/autofill:autofill_internal",
    "//ios/chrome/browser/infobars",
    "//ios/chrome/browser/payments",
    "//ios/chrome/browser/payments:test_support",
    "//ios/chrome/browser/signin",
    "//ios/chrome/browser/ui/autofill",
    "//ios/chrome/browser/ui/autofill:autofill_ui",
    "//ios/chrome/browser/ui/autofill/cells",
    "//ios/chrome/browser/ui/collection_view:test_support",
    "//ios/chrome/browser/ui/collection_view/cells",
    "//ios/chrome/browser/ui/collection_view/cells:test_support",
    "//ios/chrome/browser/ui/payments/cells",
    "//ios/chrome/browser/web:test_support",
    "//ios/chrome/test:test_support",
    "//ios/testing:ocmock_support",
    "//ios/third_party/material_components_ios",
    "//ios/web",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/libaddressinput:strings_grit",
    "//third_party/ocmock",
    "//ui/base",
  ]
}

source_set("eg_tests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "payment_request_accessibility_egtest.mm",
    "payment_request_can_make_payment_egtest.mm",
    "payment_request_cancel_pay_abort_egtest.mm",
    "payment_request_data_url_egtest.mm",
    "payment_request_debit_egtest.mm",
    "payment_request_egtest_base.h",
    "payment_request_egtest_base.mm",
    "payment_request_journey_logger_egtest.mm",
    "payment_request_misc_egtest.mm",
    "payment_request_modifiers_egtest.mm",
    "payment_request_payment_app_egtest.mm",
    "payment_request_payment_method_identifier_egtest.mm",
    "payment_request_payment_response_egtest.mm",
    "payment_request_show_egtest.mm",
    "payment_request_use_stats_egtest.mm",
  ]

  deps = [
    ":payments_ui",
    "//base",
    "//components/autofill/core/browser",
    "//components/autofill/core/browser:test_support",
    "//components/image_fetcher/core",
    "//components/payments/core",
    "//components/payments/mojom",
    "//components/prefs",
    "//components/strings",
    "//ios/chrome/app:app_internal",
    "//ios/chrome/browser/autofill",
    "//ios/chrome/browser/browser_state",
    "//ios/chrome/browser/payments",
    "//ios/chrome/browser/ui/autofill",
    "//ios/chrome/browser/ui/payments/cells",
    "//ios/chrome/browser/ui/tools_menu/public",
    "//ios/chrome/test/app:test_support",
    "//ios/chrome/test/earl_grey:test_support",
    "//ios/testing/earl_grey:earl_grey_support",
    "//ios/third_party/material_components_ios",
    "//ios/web/public/test",
    "//ios/web/public/test/http_server",
    "//testing/gtest",
    "//third_party/libaddressinput:strings_grit",
    "//ui/base",
    "//url",
  ]
  libs = [
    "UIKit.framework",
    "XCTest.framework",
  ]
}
