# Copyright 2015 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/build/config.gni")
import("//ios/web/js_compile.gni")
import("//mojo/public/tools/bindings/mojom.gni")
import("//testing/test.gni")
import("//tools/grit/grit_rule.gni")

group("all_tests") {
  testonly = true
  deps = [
    ":ios_web_inttests",
    ":ios_web_unittests",
  ]
}

source_set("web_arc") {
  public_deps = [
    ":service_names",
    "//net",
  ]

  deps = [
    ":core",
    ":js_resources",
    ":reload_type",
    ":resources",
    ":user_agent",
    "//base",
    "//components/payments/core",
    "//components/url_formatter",
    "//ios/net",
    "//ios/third_party/blink:html_tokenizer",
    "//mojo/public/cpp/system",
    "//mojo/public/js",
    "//services/catalog/public/cpp",
    "//services/service_manager",
    "//services/service_manager/embedder",
    "//services/service_manager/public/cpp",
    "//services/service_manager/runner/common",
    "//services/service_manager/runner/host:lib",
    "//ui/base",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/resources",
    "//url",
  ]

  sources = [
    "active_state_manager_impl.h",
    "active_state_manager_impl.mm",
    "browser_state.mm",
    "browser_url_rewriter_impl.h",
    "browser_url_rewriter_impl.mm",
    "interstitials/html_web_interstitial_impl.h",
    "interstitials/html_web_interstitial_impl.mm",
    "interstitials/native_web_interstitial_impl.h",
    "interstitials/native_web_interstitial_impl.mm",
    "interstitials/web_interstitial_impl.h",
    "interstitials/web_interstitial_impl.mm",
    "load_committed_details.cc",
    "navigation/crw_session_controller+private_constructors.h",
    "navigation/crw_session_controller.h",
    "navigation/crw_session_controller.mm",
    "navigation/legacy_navigation_manager_impl.h",
    "navigation/legacy_navigation_manager_impl.mm",
    "navigation/navigation_item_impl.h",
    "navigation/navigation_item_impl.mm",
    "navigation/navigation_item_impl_list.h",
    "navigation/navigation_item_impl_list.mm",
    "navigation/navigation_item_storage_builder.h",
    "navigation/navigation_item_storage_builder.mm",
    "navigation/navigation_manager_delegate.h",
    "navigation/navigation_manager_impl.h",
    "navigation/navigation_manager_impl.mm",
    "navigation/navigation_manager_util.h",
    "navigation/navigation_manager_util.mm",
    "navigation/nscoder_util.h",
    "navigation/nscoder_util.mm",
    "navigation/serializable_user_data_manager_impl.h",
    "navigation/serializable_user_data_manager_impl.mm",
    "navigation/session_storage_builder.h",
    "navigation/session_storage_builder.mm",
    "navigation/time_smoother.cc",
    "navigation/time_smoother.h",
    "navigation/wk_based_navigation_manager_impl.h",
    "navigation/wk_based_navigation_manager_impl.mm",
    "net/cert_host_pair.cc",
    "net/cert_host_pair.h",
    "net/cert_policy.cc",
    "net/certificate_policy_cache.cc",
    "net/cookie_notification_bridge.h",
    "net/cookie_notification_bridge.mm",
    "net/crw_cert_verification_controller.h",
    "net/crw_cert_verification_controller.mm",
    "net/crw_request_tracker_delegate.h",
    "net/crw_ssl_status_updater.h",
    "net/crw_ssl_status_updater.mm",
    "net/request_group_util.h",
    "net/request_group_util.mm",
    "net/request_tracker_data_memoizing_store.h",
    "net/request_tracker_factory_impl.h",
    "net/request_tracker_factory_impl.mm",
    "net/request_tracker_impl.h",
    "net/request_tracker_impl.mm",
    "net/web_http_protocol_handler_delegate.h",
    "net/web_http_protocol_handler_delegate.mm",
    "payments/payment_request.cc",
    "public/active_state_manager.h",
    "public/block_types.h",
    "public/browser_state.h",
    "public/browser_url_rewriter.h",
    "public/cert_policy.h",
    "public/certificate_policy_cache.h",
    "public/crw_navigation_item_storage.h",
    "public/crw_navigation_item_storage.mm",
    "public/crw_session_certificate_policy_cache_storage.h",
    "public/crw_session_certificate_policy_cache_storage.mm",
    "public/crw_session_storage.h",
    "public/crw_session_storage.mm",
    "public/favicon_status.cc",
    "public/favicon_status.h",
    "public/favicon_url.cc",
    "public/favicon_url.h",
    "public/interstitials/web_interstitial.h",
    "public/interstitials/web_interstitial_delegate.h",
    "public/java_script_dialog_callback.h",
    "public/java_script_dialog_presenter.h",
    "public/java_script_dialog_type.h",
    "public/load_committed_details.h",
    "public/navigation_item.h",
    "public/navigation_item_list.h",
    "public/navigation_item_list.mm",
    "public/navigation_manager.h",
    "public/origin_util.h",
    "public/origin_util.mm",
    "public/payments/payment_request.h",
    "public/referrer.h",
    "public/referrer_util.cc",
    "public/referrer_util.h",
    "public/security_style.h",
    "public/serializable_user_data_manager.h",
    "public/service_manager_connection.h",
    "public/ssl_status.cc",
    "public/ssl_status.h",
    "public/url_data_source_ios.h",
    "public/url_scheme_util.h",
    "public/url_schemes.h",
    "public/url_schemes.mm",
    "public/url_util.h",
    "public/web_capabilities.cc",
    "public/web_capabilities.h",
    "public/web_client.h",
    "public/web_client.mm",
    "public/web_kit_constants.h",
    "public/web_state/context_menu_params.h",
    "public/web_state/crw_web_controller_observer.h",
    "public/web_state/global_web_state_observer.h",
    "public/web_state/js/crw_js_injection_evaluator.h",
    "public/web_state/js/crw_js_injection_manager.h",
    "public/web_state/js/crw_js_injection_receiver.h",
    "public/web_state/navigation_context.h",
    "public/web_state/page_display_state.h",
    "public/web_state/page_display_state.mm",
    "public/web_state/session_certificate_policy_cache.h",
    "public/web_state/ui/crw_content_view.h",
    "public/web_state/ui/crw_context_menu_delegate.h",
    "public/web_state/ui/crw_generic_content_view.h",
    "public/web_state/ui/crw_native_content.h",
    "public/web_state/ui/crw_native_content_provider.h",
    "public/web_state/ui/crw_web_delegate.h",
    "public/web_state/ui/crw_web_view_content_view.h",
    "public/web_state/ui/crw_web_view_proxy.h",
    "public/web_state/ui/crw_web_view_scroll_view_proxy.h",
    "public/web_state/url_verification_constants.h",
    "public/web_state/web_state.h",
    "public/web_state/web_state_delegate.h",
    "public/web_state/web_state_delegate_bridge.h",
    "public/web_state/web_state_interface_provider.cc",
    "public/web_state/web_state_interface_provider.h",
    "public/web_state/web_state_observer.h",
    "public/web_state/web_state_observer_bridge.h",
    "public/web_state/web_state_policy_decider.h",
    "public/web_state/web_state_user_data.h",
    "public/web_thread.h",
    "public/web_thread_delegate.h",
    "public/web_ui_ios_data_source.h",
    "public/web_view_creation_util.h",
    "public/webui/web_ui_ios.h",
    "public/webui/web_ui_ios_controller.cc",
    "public/webui/web_ui_ios_controller.h",
    "public/webui/web_ui_ios_controller_factory.h",
    "public/webui/web_ui_ios_message_handler.cc",
    "public/webui/web_ui_ios_message_handler.h",
    "service_manager_connection_impl.cc",
    "service_manager_connection_impl.h",
    "service_manager_context.h",
    "service_manager_context.mm",
    "url_scheme_util.mm",
    "url_util.cc",
    "web_kit_constants.cc",
    "web_state/context_menu_params.mm",
    "web_state/context_menu_params_utils.h",
    "web_state/context_menu_params_utils.mm",
    "web_state/crw_pass_kit_downloader.h",
    "web_state/crw_pass_kit_downloader.mm",
    "web_state/error_translation_util.h",
    "web_state/error_translation_util.mm",
    "web_state/global_web_state_event_tracker.h",
    "web_state/global_web_state_event_tracker.mm",
    "web_state/global_web_state_observer.cc",
    "web_state/js/crw_js_injection_manager.mm",
    "web_state/js/crw_js_injection_receiver.mm",
    "web_state/js/crw_js_plugin_placeholder_manager.h",
    "web_state/js/crw_js_plugin_placeholder_manager.mm",
    "web_state/js/crw_js_post_request_loader.h",
    "web_state/js/crw_js_post_request_loader.mm",
    "web_state/js/crw_js_window_id_manager.h",
    "web_state/js/crw_js_window_id_manager.mm",
    "web_state/js/page_script_util.h",
    "web_state/js/page_script_util.mm",
    "web_state/navigation_context_impl.h",
    "web_state/navigation_context_impl.mm",
    "web_state/page_viewport_state.h",
    "web_state/page_viewport_state.mm",
    "web_state/session_certificate_policy_cache_impl.h",
    "web_state/session_certificate_policy_cache_impl.mm",
    "web_state/session_certificate_policy_cache_storage_builder.h",
    "web_state/session_certificate_policy_cache_storage_builder.mm",
    "web_state/ui/crw_context_menu_controller.h",
    "web_state/ui/crw_context_menu_controller.mm",
    "web_state/ui/crw_generic_content_view.mm",
    "web_state/ui/crw_swipe_recognizer_provider.h",
    "web_state/ui/crw_touch_tracking_recognizer.h",
    "web_state/ui/crw_touch_tracking_recognizer.mm",
    "web_state/ui/crw_web_view_content_view.mm",
    "web_state/ui/crw_web_view_navigation_proxy.h",
    "web_state/ui/crw_web_view_proxy_impl.h",
    "web_state/ui/crw_web_view_proxy_impl.mm",
    "web_state/ui/crw_web_view_scroll_view_proxy.mm",
    "web_state/ui/crw_wk_navigation_states.h",
    "web_state/ui/crw_wk_navigation_states.mm",
    "web_state/ui/crw_wk_script_message_router.h",
    "web_state/ui/crw_wk_script_message_router.mm",
    "web_state/ui/web_view_js_utils.h",
    "web_state/ui/web_view_js_utils.mm",
    "web_state/ui/wk_back_forward_list_item_holder.h",
    "web_state/ui/wk_back_forward_list_item_holder.mm",
    "web_state/ui/wk_web_view_configuration_provider.h",
    "web_state/ui/wk_web_view_configuration_provider.mm",
    "web_state/web_controller_observer_bridge.h",
    "web_state/web_controller_observer_bridge.mm",
    "web_state/web_view_internal_creation_util.h",
    "web_state/web_view_internal_creation_util.mm",
    "web_state/wk_web_view_security_util.h",
    "web_state/wk_web_view_security_util.mm",
    "web_thread_impl.cc",
    "web_thread_impl.h",
    "web_view_creation_util.mm",
    "webui/crw_web_ui_manager.h",
    "webui/crw_web_ui_manager.mm",
    "webui/crw_web_ui_page_builder.h",
    "webui/crw_web_ui_page_builder.mm",
    "webui/mojo_facade.h",
    "webui/mojo_facade.mm",
    "webui/shared_resources_data_source_ios.h",
    "webui/shared_resources_data_source_ios.mm",
    "webui/url_data_manager_ios.cc",
    "webui/url_data_manager_ios.h",
    "webui/url_data_manager_ios_backend.h",
    "webui/url_data_manager_ios_backend.mm",
    "webui/url_data_source_ios.mm",
    "webui/url_data_source_ios_impl.cc",
    "webui/url_data_source_ios_impl.h",
    "webui/url_fetcher_block_adapter.h",
    "webui/url_fetcher_block_adapter.mm",
    "webui/web_ui_ios_controller_factory_registry.cc",
    "webui/web_ui_ios_controller_factory_registry.h",
    "webui/web_ui_ios_data_source_impl.h",
    "webui/web_ui_ios_data_source_impl.mm",
    "webui/web_ui_ios_impl.h",
    "webui/web_ui_ios_impl.mm",
  ]

  libs = [ "WebKit.framework" ]

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

mojom("service_names") {
  sources = [
    "public/service_names.mojom",
  ]
}

source_set("web") {
  deps = [
    ":core",
    ":js_resources",
    ":reload_type",
    ":resources",
    ":user_agent",
    "//base",
    "//components/url_formatter",
    "//ios/net",
    "//ios/third_party/blink:html_tokenizer",
    "//mojo/public/cpp/system",
    "//mojo/public/js",
    "//net",
    "//services/service_manager/public/cpp",
    "//ui/base",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//ui/resources",
    "//url",
  ]

  public_deps = [
    ":web_arc",
  ]

  sources = [
    "web_state/ui/crw_web_controller.h",
    "web_state/ui/crw_web_controller.mm",
    "web_state/ui/crw_web_controller_container_view.h",
    "web_state/ui/crw_web_controller_container_view.mm",
    "web_state/web_state.mm",
    "web_state/web_state_delegate.mm",
    "web_state/web_state_delegate_bridge.mm",
    "web_state/web_state_impl.h",
    "web_state/web_state_impl.mm",
    "web_state/web_state_observer.mm",
    "web_state/web_state_observer_bridge.mm",
    "web_state/web_state_policy_decider.mm",
    "web_state/web_state_weak_ptr_factory.h",
    "web_state/web_state_weak_ptr_factory.mm",
  ]

  libs = [
    "CoreGraphics.framework",
    "WebKit.framework",
  ]

  allow_circular_includes_from = [ ":web_arc" ]
}

source_set("core") {
  configs += [ "//build/config/compiler:enable_arc" ]
  deps = [
    "//base",
    "//url",
  ]

  sources = [
    "history_state_util.cc",
    "history_state_util.h",
  ]
}

source_set("user_agent") {
  deps = [
    "//base",
  ]

  sources = [
    "public/user_agent.h",
    "public/user_agent.mm",
  ]

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

source_set("reload_type") {
  sources = [
    "public/reload_type.h",
  ]
}

source_set("earl_grey_test_support") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true

  deps = [
    ":web",
    "//base",
    "//base/test:test_support",
    "//ios/testing:ios_test_support",
    "//ios/testing/earl_grey:earl_grey_support",
    "//ios/third_party/earl_grey",
    "//ios/web/public/test",
    "//net",
  ]

  sources = [
    "public/test/earl_grey/js_test_util.h",
    "public/test/earl_grey/js_test_util.mm",
    "public/test/earl_grey/web_view_actions.h",
    "public/test/earl_grey/web_view_actions.mm",
    "public/test/earl_grey/web_view_matchers.h",
    "public/test/earl_grey/web_view_matchers.mm",
  ]
}

source_set("run_all_unittests") {
  testonly = true
  sources = [
    "test/run_all_unittests.cc",
  ]
  deps = [
    "//base",
    "//base/test:test_support",
    "//ios/web/public/test",
    "//ios/web/public/test/http_server",
    "//mojo/edk/system",
  ]
}

bundle_data("ios_web_unittests_bundle_data") {
  testonly = true
  sources = [
    "test/data/chrome.html",
    "test/data/testbadpass.pkpass",
    "test/data/testfavicon.png",
    "test/data/testpass.pkpass",
  ]
  outputs = [
    "{{bundle_resources_dir}}/{{source_root_relative_dir}}/" +
        "{{source_file_part}}",
  ]
}

test("ios_web_unittests") {
  deps = [
    # Ensure all required data are present in the bundle, and that the
    # test runner is linked.
    ":ios_web_unittests_bundle_data",
    ":run_all_unittests",

    # Add individual test source_set targets here.
    ":ios_web_general_unittests",
    ":ios_web_navigation_unittests",
    ":ios_web_net_unittests",
    ":ios_web_public_unittests",
    ":ios_web_web_state_js_unittests",
    ":ios_web_web_state_ui_unittests",
    ":ios_web_web_state_unittests",
    ":ios_web_webui_unittests",
  ]

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

source_set("ios_web_general_unittests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  deps = [
    ":core",
    ":user_agent",
    ":web",
    "//base",
    "//base/test:test_support",
    "//components/payments/core",
    "//components/url_formatter",
    "//ios/net",
    "//ios/testing:ios_test_support",
    "//ios/testing:ocmock_support",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//ios/web/test:mojo_bindings",
    "//ios/web/test:test_constants",
    "//ios/web/test:test_support",
    "//net:test_support",
    "//services/service_manager/public/cpp",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/ocmock",
    "//ui/base:test_support",
  ]

  sources = [
    "active_state_manager_impl_unittest.mm",
    "browser_state_unittest.cc",
    "history_state_util_unittest.mm",
    "payments/payment_request_unittest.cc",
    "service_manager_connection_impl_unittest.cc",
    "test/web_test_unittest.mm",
    "url_scheme_util_unittest.mm",
    "url_util_unittest.cc",
  ]
}

source_set("ios_web_navigation_unittests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  deps = [
    ":core",
    ":user_agent",
    ":web",
    "//base",
    "//base/test:test_support",
    "//components/payments/core",
    "//components/url_formatter",
    "//ios/net",
    "//ios/testing:ios_test_support",
    "//ios/testing:ocmock_support",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//ios/web/test:mojo_bindings",
    "//ios/web/test:test_constants",
    "//ios/web/test:test_support",
    "//ios/web/test/fakes",
    "//net:test_support",
    "//services/service_manager/public/cpp",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/ocmock",
    "//ui/base:test_support",
  ]

  sources = [
    "navigation/crw_navigation_item_storage_unittest.mm",
    "navigation/crw_session_controller_unittest.mm",
    "navigation/crw_session_storage_unittest.mm",
    "navigation/navigation_item_impl_unittest.mm",
    "navigation/navigation_item_storage_test_util.h",
    "navigation/navigation_item_storage_test_util.mm",
    "navigation/navigation_manager_impl_unittest.mm",
    "navigation/navigation_manager_util_unittest.mm",
    "navigation/nscoder_util_unittest.mm",
    "navigation/serializable_user_data_manager_impl_unittest.mm",
  ]
}

source_set("ios_web_net_unittests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  deps = [
    ":core",
    ":user_agent",
    ":web",
    "//base",
    "//base/test:test_support",
    "//components/payments/core",
    "//components/url_formatter",
    "//ios/net",
    "//ios/testing:ios_test_support",
    "//ios/testing:ocmock_support",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//ios/web/test:mojo_bindings",
    "//ios/web/test:test_constants",
    "//ios/web/test:test_support",
    "//net:test_support",
    "//services/service_manager/public/cpp",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/ocmock",
    "//ui/base:test_support",
  ]

  sources = [
    "net/cert_host_pair_unittest.cc",
    "net/cert_policy_unittest.cc",
    "net/crw_cert_verification_controller_unittest.mm",
    "net/crw_ssl_status_updater_unittest.mm",
    "net/request_group_util_unittest.mm",
    "net/request_tracker_impl_unittest.mm",
    "net/web_http_protocol_handler_delegate_unittest.mm",
  ]
}

source_set("test_support") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "public/test/crw_mock_web_state_delegate.h",
    "public/test/crw_mock_web_state_delegate.mm",
  ]
  deps = [
    "//ios/testing:ocmock_support",
    "//ios/web",
  ]
}

source_set("ios_web_public_unittests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  deps = [
    ":core",
    ":test_support",
    ":user_agent",
    ":web",
    "//base",
    "//base/test:test_support",
    "//components/payments/core",
    "//components/url_formatter",
    "//ios/net",
    "//ios/testing:ios_test_support",
    "//ios/testing:ocmock_support",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//ios/web/test:mojo_bindings",
    "//ios/web/test:test_constants",
    "//ios/web/test:test_support",
    "//net:test_support",
    "//services/service_manager/public/cpp",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/ocmock",
    "//ui/base:test_support",
  ]

  sources = [
    "public/crw_session_certificate_policy_cache_storage_unittest.mm",
    "public/origin_util_unittest.mm",
    "public/referrer_util_unittest.cc",
    "public/serializable_user_data_manager_unittest.mm",
    "public/user_agent_unittest.mm",
    "public/web_state/page_viewport_state_unittest.mm",
  ]
}

source_set("ios_web_web_state_unittests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  deps = [
    ":core",
    ":ios_web_web_state_unittests_arc",
    ":test_support",
    ":user_agent",
    ":web",
    "//base",
    "//base/test:test_support",
    "//components/payments/core",
    "//components/url_formatter",
    "//ios/net",
    "//ios/testing:ios_test_support",
    "//ios/testing:ocmock_support",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//ios/web/test:mojo_bindings",
    "//ios/web/test:test_constants",
    "//ios/web/test:test_support",
    "//net:test_support",
    "//services/service_manager/public/cpp",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/ocmock",
    "//ui/base:test_support",
    "//ui/gfx:test_support",
  ]

  sources = [
    "web_state/context_menu_params_utils_unittest.mm",
    "web_state/crw_pass_kit_downloader_unittest.mm",
    "web_state/error_translation_util_unittest.mm",
    "web_state/navigation_context_impl_unittest.mm",
    "web_state/page_display_state_unittest.mm",
    "web_state/web_state_delegate_bridge_unittest.mm",
    "web_state/web_state_impl_unittest.mm",
    "web_state/web_state_observer_bridge_unittest.mm",
    "web_state/web_state_unittest.mm",
    "web_state/web_view_internal_creation_util_unittest.mm",
    "web_state/wk_web_view_security_util_unittest.mm",
  ]
}

source_set("ios_web_web_state_unittests_arc") {
  testonly = true
  sources = [
    "web_state/session_certificate_policy_cache_impl_unittest.mm",
    "web_state/session_certificate_policy_cache_storage_builder_unittest.mm",
  ]
  deps = [
    "//base",
    "//ios/testing:ios_test_support",
    "//ios/web",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//net:test_support",
  ]
  configs += [ "//build/config/compiler:enable_arc" ]
}

source_set("ios_web_web_state_js_unittests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  deps = [
    ":core",
    ":user_agent",
    ":web",
    "//base",
    "//base/test:test_support",
    "//components/payments/core",
    "//components/url_formatter",
    "//ios/net",
    "//ios/testing:ios_test_support",
    "//ios/testing:ocmock_support",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//ios/web/test:mojo_bindings",
    "//ios/web/test:test_constants",
    "//ios/web/test:test_support",
    "//net:test_support",
    "//services/service_manager/public/cpp",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/ocmock",
    "//ui/base:test_support",
  ]

  sources = [
    "web_state/js/common_js_unittest.mm",
    "web_state/js/context_menu_js_unittest.mm",
    "web_state/js/crw_js_injection_manager_unittest.mm",
    "web_state/js/crw_js_post_request_loader_unittest.mm",
    "web_state/js/crw_js_window_id_manager_unittest.mm",
    "web_state/js/page_script_util_unittest.mm",
  ]
}

source_set("ios_web_web_state_ui_unittests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  deps = [
    ":core",
    ":user_agent",
    ":web",
    "//base",
    "//base/test:test_support",
    "//components/payments/core",
    "//components/url_formatter",
    "//ios/net",
    "//ios/testing:ios_test_support",
    "//ios/testing:ocmock_support",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//ios/web/test:mojo_bindings",
    "//ios/web/test:test_constants",
    "//ios/web/test:test_support",
    "//net:test_support",
    "//services/service_manager/public/cpp",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/ocmock",
    "//ui/base:test_support",
  ]

  sources = [
    "web_state/ui/crw_web_controller_container_view_unittest.mm",
    "web_state/ui/crw_web_controller_observer_unittest.mm",
    "web_state/ui/crw_web_controller_unittest.mm",
    "web_state/ui/crw_web_view_scroll_view_proxy_unittest.mm",
    "web_state/ui/crw_wk_navigation_states_unittest.mm",
    "web_state/ui/crw_wk_script_message_router_unittest.mm",
    "web_state/ui/web_view_js_utils_unittest.mm",
    "web_state/ui/wk_back_forward_list_item_holder_unittest.mm",
    "web_state/ui/wk_web_view_configuration_provider_unittest.mm",
  ]
}

source_set("ios_web_webui_unittests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  deps = [
    ":core",
    ":user_agent",
    ":web",
    "//base",
    "//base/test:test_support",
    "//components/payments/core",
    "//components/url_formatter",
    "//ios/net",
    "//ios/testing:ios_test_support",
    "//ios/testing:ocmock_support",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//ios/web/test:mojo_bindings",
    "//ios/web/test:test_constants",
    "//ios/web/test:test_support",
    "//net:test_support",
    "//services/service_manager/public/cpp",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/ocmock",
    "//ui/base:test_support",
  ]

  sources = [
    "webui/crw_web_ui_manager_unittest.mm",
    "webui/crw_web_ui_page_builder_unittest.mm",
    "webui/mojo_facade_unittest.mm",
    "webui/url_fetcher_block_adapter_unittest.mm",
  ]
}

test("ios_web_inttests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  deps = [
    ":web",
    "//base/test:test_support",
    "//ios/testing:http_server_bundle_data",
    "//ios/testing:ios_test_support",
    "//ios/web:resources_grit",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//ios/web/public/test/http_server",
    "//ios/web/test:mojo_bindings",
    "//ios/web/test:packed_resources",
    "//ios/web/test:resources",
    "//ios/web/test:test_constants",
    "//ios/web/test:test_support",
    "//mojo/edk/system",
    "//net:test_support",
    "//services/service_manager/public/cpp",
    "//testing/gtest",
    "//ui/base:test_support",
  ]
  sources = [
    "browser_state_web_view_partition_inttest.mm",
    "navigation/history_state_operations_inttest.mm",
    "navigation/window_location_inttest.mm",
    "public/test/http_server_inttest.mm",
    "test/run_all_unittests.cc",
    "web_state/favicon_callbacks_inttest.mm",
    "web_state/http_auth_inttest.mm",
    "web_state/navigation_callbacks_inttest.mm",
    "webui/web_ui_mojo_inttest.mm",
  ]

  assert_no_deps = ios_assert_no_deps
}

js_compile_bundle("web_ui_bundle") {
  visibility = [ ":js_resources" ]
  closure_entry_point = "__crWeb.webUIBundle"

  sources = [
    "webui/resources/mojo_api.js",
    "webui/resources/web_ui_base.js",
    "webui/resources/web_ui_bind.js",
    "webui/resources/web_ui_bundle.js",
    "webui/resources/web_ui_send.js",
  ]
}

js_compile_bundle("web_bundle") {
  visibility = [ ":js_resources" ]
  closure_entry_point = "__crWeb.webBundle"

  sources = [
    "web_state/js/resources/base.js",
    "web_state/js/resources/common.js",
    "web_state/js/resources/console.js",
    "web_state/js/resources/context_menu.js",
    "web_state/js/resources/error.js",
    "web_state/js/resources/form.js",
    "web_state/js/resources/legacy.js",
    "web_state/js/resources/message.js",
    "web_state/js/resources/scroll_workaround.js",
    "web_state/js/resources/web_bundle.js",
  ]
}

js_compile_bundle("nav_bundle") {
  visibility = [ ":js_resources" ]
  closure_entry_point = "__crWeb.navigation"

  sources = [
    "web_state/js/resources/navigation.js",
  ]
}

js_compile_checked("js_resources") {
  public_deps = [
    ":nav_bundle",
    ":web_bundle",
    ":web_ui_bundle",
  ]

  sources = [
    "web_state/js/resources/plugin_placeholder.js",
    "web_state/js/resources/post_request.js",
    "web_state/js/resources/window_id.js",
  ]
}

grit("resources") {
  source = "ios_web_resources.grd"

  # The .grd contains references to generated files.
  source_is_generated = true

  outputs = [
    "grit/ios_web_resources.h",
    "ios_web_resources.pak",
  ]
  grit_flags = [
    "-E",
    "root_gen_dir=" + rebase_path(root_gen_dir, root_build_dir),
  ]
  deps = [
    "//ios/web/public/app:browser_manifest",
    "//ios/web/public/app:packaged_services_manifest",
    "//mojo/public/js:new_bindings",
  ]
}
