| # Copyright 2019 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/features.gni") |
| import("//build/config/ui.gni") |
| import("//testing/test.gni") |
| import("//tools/grit/grit_rule.gni") |
| import("//tools/v8_context_snapshot/v8_context_snapshot.gni") |
| import("//weblayer/variables.gni") |
| |
| if (is_android) { |
| import("//build/config/android/rules.gni") |
| import("//components/safe_browsing/buildflags.gni") |
| |
| weblayer_browsertests_manifest = |
| "${target_gen_dir}/weblayer_browsertests_manifest/AndroidManifest.xml" |
| |
| jinja_template("weblayer_browsertests_manifest") { |
| testonly = true |
| input = "//weblayer/shell/android/browsertests_apk/AndroidManifest.xml" |
| output = weblayer_browsertests_manifest |
| } |
| |
| android_library("weblayer_browsertests_java") { |
| testonly = true |
| sources = [ |
| "../shell/android/browsertests_apk/src/org/chromium/weblayer_browsertests_apk/WebLayerBrowserTestsActivity.java", |
| "../shell/android/browsertests_apk/src/org/chromium/weblayer_browsertests_apk/WebLayerBrowserTestsApplication.java", |
| "../shell/android/browsertests_apk/src/org/chromium/weblayer_private/AccessTokenFetchTestBridge.java", |
| "../shell/android/browsertests_apk/src/org/chromium/weblayer_private/GoogleAccountAccessTokenFetcherTestStub.java", |
| "../shell/android/browsertests_apk/src/org/chromium/weblayer_private/MetricsTestHelper.java", |
| "../shell/android/browsertests_apk/src/org/chromium/weblayer_private/TranslateTestBridge.java", |
| ] |
| deps = [ |
| ":weblayer_browsertests_jni", |
| ":weblayer_browsertests_manifest", |
| "//base:base_java", |
| "//base:base_java_test_support", |
| "//base:jni_java", |
| "//components/embedder_support/android:application_java", |
| "//components/safe_browsing/android:safe_browsing_java", |
| "//components/translate/content/android:java", |
| "//content/public/android:content_java", |
| "//content/public/test/android:content_java_test_support", |
| "//testing/android/native_test:native_test_java", |
| "//third_party/android_deps:android_support_v4_java", |
| "//third_party/androidx:androidx_annotation_annotation_java", |
| "//third_party/androidx:androidx_core_core_java", |
| "//ui/android:ui_java", |
| "//weblayer/browser/java", |
| "//weblayer/browser/java:base_module_interfaces_java", |
| "//weblayer/browser/java:gms_bridge_java", |
| "//weblayer/browser/java:interfaces_java", |
| "//weblayer/public/java", |
| "//weblayer/public/javatestutil:test_java", |
| ] |
| srcjar_deps = [ ":generated_enums" ] |
| |
| annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] |
| } |
| |
| generate_jni("weblayer_browsertests_jni") { |
| sources = [ |
| "../shell/android/browsertests_apk/src/org/chromium/weblayer_private/AccessTokenFetchTestBridge.java", |
| "../shell/android/browsertests_apk/src/org/chromium/weblayer_private/GoogleAccountAccessTokenFetcherTestStub.java", |
| "../shell/android/browsertests_apk/src/org/chromium/weblayer_private/MetricsTestHelper.java", |
| "../shell/android/browsertests_apk/src/org/chromium/weblayer_private/TranslateTestBridge.java", |
| ] |
| } |
| |
| android_assets("weblayer_test_assets") { |
| testonly = true |
| disable_compression = true |
| deps = [ "//third_party/icu:icu_assets" ] |
| if (use_v8_context_snapshot) { |
| deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] |
| } else { |
| deps += [ "//v8:v8_external_startup_data_assets" ] |
| } |
| } |
| |
| java_cpp_enum("generated_enums") { |
| sources = [ "//weblayer/browser/android/metrics/metrics_test_helper.h" ] |
| } |
| } |
| |
| test("weblayer_browsertests") { |
| use_xvfb = use_xvfb_in_this_config |
| |
| data = [ |
| "$root_out_dir/weblayer_shell.pak", |
| "data/", |
| "//components/test/data", |
| "//net/tools/testserver/", |
| "//third_party/pywebsocket3/src/mod_pywebsocket/", |
| ] |
| |
| data_deps = [ |
| "//third_party/mesa_headers", |
| "//weblayer/shell:pak", |
| ] |
| |
| defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] |
| |
| deps = [ |
| "//base", |
| "//base/test:test_support", |
| "//components/autofill/core/browser", |
| "//components/autofill/core/common", |
| "//components/background_sync", |
| "//components/blocked_content", |
| "//components/content_settings/core/browser", |
| "//components/embedder_support", |
| "//components/error_page/content/browser", |
| "//components/favicon/content", |
| "//components/heavy_ad_intervention", |
| "//components/infobars/content", |
| "//components/network_session_configurator/common", |
| "//components/network_time", |
| "//components/no_state_prefetch/browser", |
| "//components/page_load_metrics/browser:browser", |
| "//components/page_load_metrics/browser:test_support", |
| "//components/page_load_metrics/browser/observers/ad_metrics", |
| "//components/page_load_metrics/browser/observers/ad_metrics:test_support", |
| "//components/permissions", |
| "//components/permissions:test_support", |
| "//components/prefs", |
| "//components/security_interstitials/content:security_interstitial_page", |
| "//components/sessions:test_support", |
| "//components/signin/core/browser", |
| "//components/site_isolation", |
| "//components/strings", |
| "//components/subresource_filter/content/browser", |
| "//components/subresource_filter/content/browser:test_support", |
| "//components/subresource_filter/core/browser", |
| "//components/subresource_filter/core/common", |
| "//components/subresource_filter/core/common:test_support", |
| "//components/translate/content/browser", |
| "//components/translate/content/browser:test_support", |
| "//components/ukm:test_support", |
| "//components/ukm:ukm_test_helper", |
| "//components/url_pattern_index/proto:url_pattern_index", |
| "//components/user_prefs", |
| "//components/variations", |
| "//components/variations/net", |
| "//content/public/browser", |
| "//content/test:test_support", |
| "//google_apis", |
| "//net:test_support", |
| "//testing/gtest", |
| "//ui/base", |
| "//ui/display", |
| "//ui/gfx:test_support", |
| "//weblayer:resources", |
| "//weblayer/shell:weblayer_shell_lib", |
| ] |
| |
| sources = [ |
| "../browser/ad_tagging_browsertest.cc", |
| "../browser/ads_page_load_metrics_observer_browsertest.cc", |
| "../browser/background_sync/background_sync_browsertest.cc", |
| "../browser/client_hints_browsertest.cc", |
| "../browser/clipboard_browsertest.cc", |
| "../browser/content_settings_browsertest.cc", |
| "../browser/cookie_manager_browsertest.cc", |
| "../browser/download_browsertest.cc", |
| "../browser/errorpage_browsertest.cc", |
| "../browser/favicon/favicon_fetcher_browsertest.cc", |
| "../browser/favicon/test_favicon_fetcher_delegate.cc", |
| "../browser/favicon/test_favicon_fetcher_delegate.h", |
| "../browser/fullscreen_browsertest.cc", |
| "../browser/google_accounts_browsertest.cc", |
| "../browser/js_communication/web_message_browsertest.cc", |
| "../browser/large_sticky_ad_intervention_browsertest.cc", |
| "../browser/navigation_browsertest.cc", |
| "../browser/navigation_error_navigation_throttle_browsertest.cc", |
| "../browser/new_tab_delegate_browsertest.cc", |
| "../browser/no_state_prefetch/no_state_prefetch_browsertest.cc", |
| "../browser/overlay_popup_ad_intervention_browsertest.cc", |
| "../browser/page_load_metrics_browsertest.cc", |
| "../browser/permissions/permissions_browsertest.cc", |
| "../browser/popup_blocker_browsertest.cc", |
| "../browser/prefetch_browsertest.cc", |
| "../browser/profile_browsertest.cc", |
| "../browser/site_isolation_browsertest.cc", |
| "../browser/ssl_browsertest.cc", |
| "../browser/subresource_filter_browsertest.cc", |
| "../browser/translate_browsertest.cc", |
| "../browser/url_bar/url_bar_browsertest.cc", |
| "../browser/weblayer_variations_http_browsertest.cc", |
| "../browser/webui/webui_browsertest.cc", |
| "browsertests_main.cc", |
| "interstitial_utils.cc", |
| "interstitial_utils.h", |
| "load_completion_observer.cc", |
| "load_completion_observer.h", |
| "subresource_filter_browser_test_harness.cc", |
| "subresource_filter_browser_test_harness.h", |
| "test_launcher_delegate_impl.cc", |
| "test_launcher_delegate_impl.h", |
| "test_navigation_observer.cc", |
| "test_navigation_observer.h", |
| "weblayer_browser_test.cc", |
| "weblayer_browser_test.h", |
| "weblayer_browser_test_test.cc", |
| "weblayer_browser_test_utils.cc", |
| "weblayer_browser_test_utils.h", |
| ] |
| |
| if (is_android) { |
| sources += [ |
| "../browser/android/access_token_fetch_browsertest.cc", |
| "../browser/android/ad_density_intervention_browsertest.cc", |
| "../browser/android/metrics/metrics_browsertest.cc", |
| "../browser/android/metrics/metrics_test_helper.cc", |
| "../browser/android/metrics/metrics_test_helper.h", |
| "../browser/android/metrics/ukm_browsertest.cc", |
| "../browser/autofill_browsertest.cc", |
| "../browser/safe_browsing/client_side_detection_service_browsertest.cc", |
| "../browser/safe_browsing/client_side_detection_service_factory_browsertest.cc", |
| "../browser/safe_browsing/safe_browsing_browsertest.cc", |
| "../browser/url_bar/page_info_browsertest.cc", |
| "../shell/android/browsertests_apk/translate_test_bridge.cc", |
| "../shell/android/browsertests_apk/translate_test_bridge.h", |
| "../shell/android/browsertests_apk/weblayer_browser_tests_jni_onload.cc", |
| "stub_autofill_provider.cc", |
| "stub_autofill_provider.h", |
| ] |
| deps += [ |
| ":weblayer_browsertests_java", |
| ":weblayer_browsertests_jni", |
| ":weblayer_test_assets", |
| "//android_webview:generate_aw_strings_grit", |
| "//android_webview:locale_pak_assets", |
| "//android_webview:pak_file_assets", |
| "//components/android_autofill/browser:test_support", |
| "//components/infobars/core", |
| "//components/metrics", |
| "//components/page_info", |
| "//components/page_info/android", |
| "//components/safe_browsing/android:safe_browsing_api_handler", |
| "//components/safe_browsing/content/browser", |
| "//components/safe_browsing/content/browser:client_side_detection", |
| "//components/safe_browsing/content/common:interfaces", |
| "//components/safe_browsing/core/browser:token_fetcher", |
| "//components/safe_browsing/core/common", |
| "//components/safe_browsing/core/common/proto:client_model_proto", |
| "//components/viz/service:service_java", |
| "//content/public/test/android:android_test_message_pump_support_java", |
| "//content/test:android_test_message_pump_support", |
| "//content/test:android_test_message_pump_support", |
| "//services/metrics/public/cpp:ukm_builders", |
| "//services/tracing:test_utils", |
| "//testing/android/native_test:native_test_support", |
| "//third_party/metrics_proto", |
| "//ui/android:android", |
| "//ui/touch_selection:touch_selection", |
| "//weblayer:locale_pak_assets", |
| |
| # Needed for WebLayerImpl. |
| "//weblayer/browser/java", |
| |
| # default upstream classes |
| "//weblayer/browser/java:upstream_java", |
| ] |
| |
| # Necessary to avoid GN errors in Cast builds, where this target isn't defined. |
| if (safe_browsing_mode > 0) { |
| deps += [ "//components/safe_browsing/content/browser:safe_browsing_blocking_page" ] |
| } |
| android_manifest = |
| "${target_gen_dir}/weblayer_browsertests_manifest/AndroidManifest.xml" |
| android_manifest_dep = ":weblayer_browsertests_manifest" |
| use_default_launcher = false |
| app_as_shared_lib = true |
| product_config_java_packages = [ weblayer_product_config_java_package ] |
| } else { |
| sources += [ |
| # These tests create Browser objects from C++, which the Java side is not |
| # setup for. Persistence related tests for Java will be done as |
| # integration tests. |
| "../browser/persistence/browser_persister_browsertest.cc", |
| "../browser/persistence/minimal_browser_persister_browsertest.cc", |
| ] |
| |
| deps += [ "//components/keep_alive_registry" ] |
| } |
| } |
| |
| source_set("run_all_unittests") { |
| testonly = true |
| sources = [ "run_all_unittests.cc" ] |
| public_deps = [ |
| "//base/test:test_support", |
| "//content/test:test_support", |
| "//weblayer:weblayer_lib_base", |
| ] |
| } |
| |
| test("weblayer_unittests") { |
| deps = [ |
| ":run_all_unittests", |
| "//components/favicon/core:database", |
| "//components/site_isolation", |
| "//google_apis", |
| ] |
| sources = [ |
| "../browser/favicon/favicon_backend_wrapper_unittest.cc", |
| "../browser/profile_disk_operations_unittests.cc", |
| "../browser/site_isolation_policy_unittest.cc", |
| ] |
| if (is_android) { |
| deps += [ ":weblayer_test_assets" ] |
| sources += [ |
| "../browser/safe_browsing/safe_browsing_token_fetcher_impl_unittest.cc", |
| ] |
| } |
| } |