# Copyright 2020 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("policy") {
  sources = [
    "browser_dm_token_storage_ios.h",
    "browser_dm_token_storage_ios.mm",
    "browser_policy_connector_ios.h",
    "browser_policy_connector_ios.mm",
    "browser_signin_policy_handler.cc",
    "browser_signin_policy_handler.h",
    "browser_state_policy_connector.h",
    "browser_state_policy_connector.mm",
    "browser_state_policy_connector_factory.h",
    "browser_state_policy_connector_factory.mm",
    "chrome_browser_cloud_management_controller_ios.h",
    "chrome_browser_cloud_management_controller_ios.mm",
    "configuration_policy_handler_list_factory.h",
    "configuration_policy_handler_list_factory.mm",
    "device_management_service_configuration_ios.h",
    "device_management_service_configuration_ios.mm",
    "policy_conversions_client_ios.h",
    "policy_conversions_client_ios.mm",
    "policy_watcher_browser_agent.h",
    "policy_watcher_browser_agent.mm",
    "reporting/browser_report_generator_ios.h",
    "reporting/browser_report_generator_ios.mm",
    "reporting/profile_report_generator_ios.h",
    "reporting/profile_report_generator_ios.mm",
    "reporting/report_generator_ios.h",
    "reporting/report_generator_ios.mm",
    "reporting/report_scheduler_ios.h",
    "reporting/report_scheduler_ios.mm",
    "reporting/reporting_delegate_factory_ios.h",
    "reporting/reporting_delegate_factory_ios.mm",
    "schema_registry_factory.h",
    "schema_registry_factory.mm",
  ]

  deps = [
    ":policy_util",
    "//base",
    "//components/autofill/core/browser",
    "//components/bookmarks/common",
    "//components/bookmarks/managed",
    "//components/enterprise",
    "//components/metrics",
    "//components/password_manager/core/common",
    "//components/policy:generated",
    "//components/policy/core/common",
    "//components/policy/proto",
    "//components/safe_browsing/core/common:safe_browsing_policy_handler",
    "//components/safe_browsing/core/common:safe_browsing_prefs",
    "//components/search_engines",
    "//components/signin/public/base",
    "//components/strings:components_strings_grit",
    "//components/translate/core/browser:translate_pref_names",
    "//components/unified_consent:unified_consent",
    "//components/variations",
    "//components/variations/service",
    "//components/version_info:version_info",
    "//ios/chrome/browser",
    "//ios/chrome/browser:pref_names",
    "//ios/chrome/browser/browser_state",
    "//ios/chrome/browser/main:public",
    "//ios/chrome/browser/signin",
    "//ios/chrome/browser/ui/commands",
    "//ios/chrome/common",
    "//ios/public/provider/chrome/browser/signin",
    "//services/network/public/cpp",
  ]

  public_deps = [
    ":feature_flags",
    "//components/policy/core/browser",
  ]

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

source_set("policy_util") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    "policy_util.h",
    "policy_util.mm",
  ]
  deps = [
    ":feature_flags",
    "//base",
    "//components/prefs",
    "//ios/chrome/browser:pref_names",
  ]
}

source_set("feature_flags") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    "policy_features.cc",
    "policy_features.h",
  ]
  deps = [
    "//base",
    "//components/version_info",
    "//ios/chrome/browser:utils",
    "//ios/chrome/common",
    "//ios/web/common:features",
  ]
}

source_set("test_support") {
  testonly = true
  sources = [
    "browser_state_policy_connector_mock.h",
    "browser_state_policy_connector_mock.mm",
    "enterprise_policy_test_helper.cc",
    "enterprise_policy_test_helper.h",
    "test_platform_policy_provider.cc",
    "test_platform_policy_provider.h",
  ]

  deps = [
    "//base",
    "//components/policy/core/common:common_constants",
    "//components/policy/core/common:test_support",
    "//components/pref_registry",
    "//components/prefs",
    "//components/sync_preferences",
    "//ios/chrome/browser/browser_state:test_support",
    "//ios/chrome/browser/policy",
    "//ios/chrome/browser/policy_url_blocking",
    "//ios/chrome/browser/prefs",
    "//ios/chrome/browser/prefs:browser_prefs",
  ]

  public_deps = [
    "//components/policy/core/common:test_support",
    "//testing/gmock",
  ]

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

bundle_data("test_resources") {
  visibility = [
    ":eg2_tests",
    ":unit_tests",
  ]
  testonly = true
  sources = [ "//ios/chrome/test/data/policy/policy_test_cases.json" ]
  outputs = [
    "{{bundle_resources_dir}}/ios/chrome/test/data/policy/{{source_file_part}}",
  ]
}

source_set("unit_tests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "browser_dm_token_storage_ios_unittest.mm",
    "policy_unittest.mm",
    "policy_watcher_browser_agent_unittest.mm",
    "reporting/browser_report_generator_ios_unittest.mm",
    "reporting/profile_report_generator_ios_unittest.mm",
    "reporting/report_generator_ios_unittest.mm",
    "reporting/report_scheduler_ios_unittest.mm",
  ]
  deps = [
    ":policy",
    ":test_resources",
    ":test_support",
    "//base",
    "//base/test:test_support",
    "//components/enterprise",
    "//components/enterprise:test_support",
    "//components/policy/core/browser:test_support",
    "//components/pref_registry",
    "//components/prefs",
    "//components/signin/public/base",
    "//components/sync_preferences",
    "//components/sync_preferences:test_support",
    "//ios/chrome/browser:chrome_paths",
    "//ios/chrome/browser:pref_names",
    "//ios/chrome/browser:utils",
    "//ios/chrome/browser/browser_state:test_support",
    "//ios/chrome/browser/main:test_support",
    "//ios/chrome/browser/prefs",
    "//ios/chrome/browser/prefs:browser_prefs",
    "//ios/chrome/browser/signin:signin",
    "//ios/chrome/browser/signin:test_support",
    "//ios/chrome/browser/ui/commands",
    "//ios/chrome/test:test_support",
    "//ios/public/provider/chrome/browser/signin:test_support",
    "//ios/web/public/test:test",
    "//testing/gtest",
    "//third_party/ocmock",
  ]
}

source_set("eg2_tests") {
  defines = [ "CHROME_EARL_GREY_2" ]
  configs += [
    "//build/config/compiler:enable_arc",
    "//build/config/ios:xctest_config",
  ]
  testonly = true

  sources = [
    "policy_egtest.mm",
    "policy_incognito_mode_availability_egtest.mm",
    "policy_platform_provider_egtest.mm",
  ]

  deps = [
    ":eg_test_support+eg2",
    ":test_resources",
    "//base",
    "//components/autofill/core/common",
    "//components/enterprise",
    "//components/password_manager/core/common",
    "//components/policy:generated",
    "//components/policy/core/common:common_constants",
    "//components/strings",
    "//ios/chrome/app/strings:ios_strings_grit",
    "//ios/chrome/browser:chrome_url_constants",
    "//ios/chrome/browser:pref_names",
    "//ios/chrome/browser:utils",
    "//ios/chrome/browser/translate:eg_test_support+eg2",
    "//ios/chrome/browser/ui/content_suggestions:constants",
    "//ios/chrome/browser/ui/popup_menu:constants",
    "//ios/chrome/browser/ui/settings:constants",
    "//ios/chrome/browser/ui/settings/autofill:constants",
    "//ios/chrome/browser/ui/settings/elements:constants",
    "//ios/chrome/browser/ui/settings/language:language_ui_constants",
    "//ios/chrome/browser/ui/settings/password:password_constants",
    "//ios/chrome/browser/ui/table_view/cells:cells_constants",
    "//ios/chrome/browser/ui/toolbar/public:constants",
    "//ios/chrome/test/earl_grey:eg_test_support+eg2",
    "//ios/testing/earl_grey:eg_test_support+eg2",
    "//ios/third_party/earl_grey2:test_lib",
    "//net:test_support",
    "//ui/base",
  ]

  frameworks = [ "UIKit.framework" ]
}

source_set("eg_app_support+eg2") {
  defines = [ "CHROME_EARL_GREY_2" ]
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "policy_app_interface.h",
    "policy_app_interface.mm",
  ]
  deps = [
    ":policy",
    ":test_support",
    "//base",
    "//components/policy:generated",
    "//components/policy/core/browser",
    "//components/policy/core/common",
    "//ios/chrome/browser",
  ]
  frameworks = [ "Foundation.framework" ]
}

source_set("eg_test_support+eg2") {
  defines = [ "CHROME_EARL_GREY_2" ]
  configs += [
    "//build/config/compiler:enable_arc",
    "//build/config/ios:xctest_config",
  ]
  testonly = true
  sources = [
    "policy_app_interface.h",
    "policy_app_interface_stub.mm",
  ]
  deps = [
    "//ios/testing/earl_grey:eg_test_support+eg2",
    "//ios/third_party/earl_grey2:test_lib",
  ]
}
