# 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("//build/config/chrome_build.gni")

source_set("cells") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    "account_control_item.h",
    "account_control_item.mm",
    "signin_promo_item.h",
    "signin_promo_item.mm",
    "signin_promo_view.h",
    "signin_promo_view.mm",
    "signin_promo_view_configurator.h",
    "signin_promo_view_configurator.mm",
    "signin_promo_view_consumer.h",
    "signin_promo_view_delegate.h",
    "table_view_account_item.h",
    "table_view_account_item.mm",
    "table_view_signin_promo_item.h",
    "table_view_signin_promo_item.mm",
  ]
  deps = [
    "//base",
    "//components/signin/core/browser",
    "//components/unified_consent",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser",
    "//ios/chrome/browser/ui",
    "//ios/chrome/browser/ui/collection_view/cells",
    "//ios/chrome/browser/ui/colors",
    "//ios/chrome/browser/ui/commands",
    "//ios/chrome/browser/ui/settings/cells",
    "//ios/chrome/browser/ui/table_view:styler",
    "//ios/chrome/browser/ui/table_view/cells",
    "//ios/public/provider/chrome/browser",
    "//ios/public/provider/chrome/browser/signin",
    "//ui/base",
  ]
  libs = [ "UIKit.framework" ]
}

source_set("unit_tests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "account_control_item_unittest.mm",
    "signin_promo_item_unittest.mm",
    "signin_promo_view_unittest.mm",
    "table_view_account_item_unittest.mm",
  ]
  deps = [
    ":cells",
    "//base",
    "//base/test:test_support",
    "//components/consent_auditor",
    "//components/consent_auditor:test_support",
    "//components/pref_registry",
    "//components/signin/core/browser:browser",
    "//components/sync_preferences",
    "//components/sync_preferences:test_support",
    "//components/unified_consent",
    "//components/unified_consent:test_support",
    "//components/version_info",
    "//ios/chrome/app/strings:ios_chromium_strings_grit",
    "//ios/chrome/app/strings:ios_strings_grit",
    "//ios/chrome/browser",
    "//ios/chrome/browser/browser_state:test_support",
    "//ios/chrome/browser/infobars",
    "//ios/chrome/browser/prefs:browser_prefs",
    "//ios/chrome/browser/signin",
    "//ios/chrome/browser/signin:test_support",
    "//ios/chrome/browser/sync",
    "//ios/chrome/browser/ui:feature_flags",
    "//ios/chrome/browser/ui/colors",
    "//ios/chrome/browser/ui/commands",
    "//ios/chrome/browser/ui/signin_interaction/public",
    "//ios/chrome/browser/ui/table_view:styler",
    "//ios/chrome/browser/unified_consent",
    "//ios/chrome/test:test_support",
    "//ios/public/provider/chrome/browser/signin:test_support",
    "//ios/third_party/material_components_ios",
    "//ios/web/public/test",
    "//testing/gtest",
    "//third_party/ocmock",
    "//ui/base",
  ]
}
