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

source_set("application_delegate") {
  sources = [
    "memory_warning_helper.h",
    "memory_warning_helper.mm",
  ]
  deps = [
    "//base",
    "//ios/chrome/browser/crash_report",
    "//ios/chrome/browser/metrics",
  ]
  libs = [ "Foundation.framework" ]

  configs += [ "//build/config/compiler:enable_arc" ]
}

source_set("unit_tests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "app_state_unittest.mm",
    "background_activity_unittest.mm",
    "memory_warning_helper_unittest.mm",
    "metrics_mediator_unittest.mm",
    "url_opener_unittest.mm",
    "user_activity_handler_unittest.mm",
  ]
  deps = [
    ":application_delegate",
    ":application_delegate_internal",
    ":test_support",
    "//base",
    "//base/test:test_support",
    "//components/handoff",
    "//components/metrics",
    "//ios/chrome/app",
    "//ios/chrome/app:app_internal",
    "//ios/chrome/app/spotlight",
    "//ios/chrome/app/startup",
    "//ios/chrome/browser",
    "//ios/chrome/browser/browser_state:test_support",
    "//ios/chrome/browser/crash_report",
    "//ios/chrome/browser/device_sharing",
    "//ios/chrome/browser/geolocation",
    "//ios/chrome/browser/metrics",
    "//ios/chrome/browser/ntp_snippets",
    "//ios/chrome/browser/tabs",
    "//ios/chrome/browser/u2f",
    "//ios/chrome/browser/ui:ui_internal",
    "//ios/chrome/browser/ui/commands",
    "//ios/chrome/browser/ui/main",
    "//ios/chrome/browser/ui/safe_mode",
    "//ios/chrome/browser/ui/settings",
    "//ios/chrome/test:test_support",
    "//ios/chrome/test/base",
    "//ios/chrome/test/ocmock",
    "//ios/public/provider/chrome/browser:test_support",
    "//ios/public/provider/chrome/browser/distribution",
    "//ios/public/provider/chrome/browser/user_feedback:test_support",
    "//ios/testing:ocmock_support",
    "//ios/web",
    "//ios/web/public/test",
    "//net:test_support",
    "//testing/gtest",
    "//third_party/breakpad:client",
    "//third_party/ocmock",
    "//ui/base",
    "//url",
  ]
  libs = [
    "CoreSpotlight.framework",
    "QuartzCore.framework",
  ]
}

source_set("application_delegate_internal") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    "app_navigation.h",
    "app_state.h",
    "app_state.mm",
    "background_activity.h",
    "background_activity.mm",
    "browser_launcher.h",
    "metrics_mediator.h",
    "metrics_mediator.mm",
    "startup_information.h",
    "tab_opening.h",
    "tab_switching.h",
    "url_opener.h",
    "url_opener.mm",
    "user_activity_handler.h",
    "user_activity_handler.mm",
  ]
  deps = [
    ":application_delegate",
    "//base",
    "//components/crash/core/common",
    "//components/feature_engagement",
    "//components/handoff",
    "//components/metrics",
    "//components/payments/core",
    "//components/prefs",
    "//ios/chrome/app",
    "//ios/chrome/app/spotlight",
    "//ios/chrome/app/startup",
    "//ios/chrome/browser",
    "//ios/chrome/browser/browser_state",
    "//ios/chrome/browser/crash_report",
    "//ios/chrome/browser/device_sharing",
    "//ios/chrome/browser/feature_engagement",
    "//ios/chrome/browser/geolocation",
    "//ios/chrome/browser/metrics",
    "//ios/chrome/browser/metrics:metrics_internal",
    "//ios/chrome/browser/net",
    "//ios/chrome/browser/payments",
    "//ios/chrome/browser/tabs",
    "//ios/chrome/browser/u2f",
    "//ios/chrome/browser/ui",
    "//ios/chrome/browser/ui:ui_internal",
    "//ios/chrome/browser/ui/authentication",
    "//ios/chrome/browser/ui/commands",
    "//ios/chrome/browser/ui/main",
    "//ios/chrome/browser/ui/safe_mode",
    "//ios/chrome/common/app_group:main_app",
    "//ios/net",
    "//ios/public/provider/chrome/browser",
    "//ios/public/provider/chrome/browser/distribution",
    "//ios/public/provider/chrome/browser/user_feedback",
    "//ios/web",
    "//net",
    "//ui/base",
    "//url",
  ]
  libs = [
    "CoreSpotlight.framework",
    "UIKit.framework",
  ]
}

source_set("test_support") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "app_state_testing.h",
    "fake_startup_information.h",
    "fake_startup_information.mm",
    "metrics_mediator_testing.h",
    "mock_tab_opener.h",
    "mock_tab_opener.mm",
  ]
  deps = [
    ":application_delegate_internal",
    "//base",
    "//base/test:test_support",
    "//ios/chrome/app:app_internal",
    "//ios/chrome/browser",
    "//net",
    "//ui/base",
    "//url",
  ]
  libs = [ "UIKit.framework" ]
}