# 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("//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 = [
    "//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/service_manager/public/cpp",
    "//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/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",
    "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/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",
    "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_controller_container_view.h",
    "web_state/ui/crw_web_controller_container_view.mm",
    "web_state/ui/crw_web_view_content_view.mm",
    "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_web_view_configuration_provider.h",
    "web_state/ui/wk_web_view_configuration_provider.mm",
    "web_state/web_state_impl.h",
    "web_state/web_state_impl.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/mojo_js_constants.cc",
    "webui/mojo_js_constants.h",
    "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" ]
}

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/wk_back_forward_list_item_holder.h",
    "web_state/ui/wk_back_forward_list_item_holder.mm",
    "web_state/web_controller_observer_bridge.h",
    "web_state/web_controller_observer_bridge.mm",
    "web_state/web_state.mm",
    "web_state/web_state_delegate.mm",
    "web_state/web_state_delegate_bridge.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",
    "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",
    "//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",
  ]

  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/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 = [
    "../third_party/requirejs/require.js",
    "webui/resources/web_ui_base.js",
    "webui/resources/web_ui_bind.js",
    "webui/resources/web_ui_bundle.js",
    "webui/resources/web_ui_module_load_notifier.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/navigation.js",
    "web_state/js/resources/scroll_workaround.js",
    "web_state/js/resources/web_bundle.js",
  ]
}

js_compile_checked("js_resources") {
  public_deps = [
    ":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"
  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 = [
    "//mojo/public/js:bindings",
  ]
}
