blob: bf027ce8cf59ecd5c776ff5712bb0cef8b332faa [file] [log] [blame]
# 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")
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/MetricsTestHelper.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",
"//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/android_deps:androidx_core_core_java",
"//ui/android:ui_java",
"//weblayer/browser/java",
"//weblayer/browser/java:gms_bridge_java",
"//weblayer/public/java",
]
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
android_manifest_for_lint = weblayer_browsertests_manifest
}
generate_jni("weblayer_browsertests_jni") {
sources = [ "../shell/android/browsertests_apk/src/org/chromium/weblayer_private/MetricsTestHelper.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" ]
}
}
}
test("weblayer_browsertests") {
data = [
"$root_out_dir/weblayer_shell.pak",
"data/",
"//net/tools/testserver/",
"//third_party/pywebsocket3/src/mod_pywebsocket/",
"//third_party/tlslite/",
]
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/browser:test_support",
"//components/autofill/core/common",
"//components/content_settings/core/browser",
"//components/network_time",
"//components/page_load_metrics/browser:browser",
"//components/security_interstitials/content:security_interstitial_page",
"//components/sessions:test_support",
"//components/strings",
"//components/translate/content/browser",
"//components/translate/content/browser:test_support",
"//components/variations",
"//components/variations/net",
"//content/public/browser",
"//content/test:test_support",
"//net:test_support",
"//testing/gtest",
"//ui/base",
"//weblayer/shell:weblayer_shell_lib",
]
sources = [
"../browser/autofill_browsertest.cc",
"../browser/client_hints_browsertest.cc",
"../browser/content_settings_browsertest.cc",
"../browser/cookie_manager_browsertest.cc",
"../browser/download_browsertest.cc",
"../browser/errorpage_browsertest.cc",
"../browser/navigation_browsertest.cc",
"../browser/page_load_metrics_browsertest.cc",
"../browser/ssl_browsertest.cc",
"../browser/translate_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",
"stub_autofill_provider.cc",
"stub_autofill_provider.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/safe_browsing/safe_browsing_browsertest.cc",
"../shell/android/browsertests_apk/metrics_browsertest.cc",
"../shell/android/browsertests_apk/weblayer_browser_tests_jni_onload.cc",
]
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/metrics",
"//components/safe_browsing/android:safe_browsing_api_handler",
"//components/safe_browsing/content",
"//components/safe_browsing/core:features",
"//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/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",
"//weblayer/browser/safe_browsing:safe_browsing",
# Needed for WebLayerImpl.
"//weblayer/browser/java",
# default upstream safebrowsing related classes
"//weblayer/browser/java:gms_bridge_upstream_impl_java",
]
android_manifest =
"${target_gen_dir}/weblayer_browsertests_manifest/AndroidManifest.xml"
android_manifest_dep = ":weblayer_browsertests_manifest"
use_default_launcher = false
shared_resources = 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",
"../browser/url_bar/url_bar_browsertest.cc",
]
}
}
source_set("run_all_unittests") {
testonly = true
sources = [ "run_all_unittests.cc" ]
public_deps = [
"//base/test:test_support",
"//content/test:test_support",
]
}
test("weblayer_unittests") {
deps = [
":run_all_unittests",
"//weblayer:weblayer_lib_base",
]
sources = [ "../browser/profile_disk_operations_unittests.cc" ]
}