blob: 6fa4380bf642ad5a0ab90ae7d11c6afdedcf66ee [file] [log] [blame]
# Copyright 2014 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/chrome_build.gni")
import("//build/config/compiler/compiler.gni")
import("//build/config/crypto.gni")
import("//build/config/features.gni")
import("//build/config/ui.gni")
import("//build_overrides/v8.gni")
import("//mojo/public/tools/bindings/mojom.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
import("//testing/test.gni")
content_tests_gypi_values =
exec_script("//build/gypi_to_gn.py",
[
rebase_path("../content_tests.gypi"),
"--replace=<(SHARED_INTERMEDIATE_DIR)=$root_gen_dir",
],
"scope",
[ "../content_tests.gypi" ])
# GYP version //content/content_tests.gypi:test_support_content
source_set("test_support") {
testonly = true
# See comment at the top of //content/BUILD.gn for why this is disabled in
# component builds.
if (is_component_build) {
check_includes = false
}
configs += [
"//build/config:precompiled_headers",
"//v8:external_startup_data",
]
public_deps = [
"//content/public/app:both",
"//content/public/browser",
"//content/public/common",
"//third_party/WebKit/public:blink",
"//third_party/WebKit/public:test_support",
]
deps = [
":browsertest_base",
":content_test_mojo_bindings",
"//base/third_party/dynamic_annotations",
"//cc",
"//cc:test_support",
"//cc/blink",
"//cc/ipc",
"//cc/surfaces",
"//components/display_compositor",
"//components/scheduler:scheduler",
"//components/scheduler:test_support",
"//content/app:both_for_content_tests",
"//content/browser:for_content_tests",
"//content/browser/speech/proto",
"//content/child:for_content_tests",
"//content/gpu",
"//content/public/browser",
"//content/public/child",
"//content/public/renderer",
"//content/public/utility",
"//content/renderer:for_content_tests",
"//content/shell:pak",
"//content/utility:for_content_tests",
"//ipc:test_support",
"//ipc/mojo",
"//media",
"//mojo/edk/test:test_support",
"//net:test_support",
"//services/shell/public/cpp",
"//skia",
"//storage/browser",
"//storage/common",
"//testing/gmock",
"//testing/gtest",
"//ui/accessibility:ax_gen",
"//ui/base",
"//ui/base:test_support",
"//ui/base:ui_data_pack",
"//ui/base/ime",
"//ui/compositor:test_support",
"//ui/display",
"//ui/events:dom_keycode_converter",
"//ui/events:events_base",
"//ui/events:gesture_detection",
"//ui/events:test_support",
"//ui/gfx:test_support",
"//ui/gl",
"//ui/gl:test_support",
"//ui/resources",
"//ui/surface",
"//url",
"//v8",
]
sources = rebase_path(content_tests_gypi_values.test_support_content_sources,
".",
"//content")
if (is_android) {
sources -= [
"mock_google_streaming_server.cc",
"mock_google_streaming_server.h",
]
}
if (enable_plugins) {
deps += [
"//content/ppapi_plugin",
"//ppapi/host",
"//ppapi/proxy",
"//ppapi/proxy:test_support",
"//ppapi/shared_impl",
"//ppapi/shared_impl:test_support",
]
} else {
sources -= [ "ppapi_unittest.cc" ]
}
if (enable_webrtc) {
sources += [
"../renderer/media/mock_data_channel_impl.cc",
"../renderer/media/mock_data_channel_impl.h",
"../renderer/media/mock_media_stream_dispatcher.cc",
"../renderer/media/mock_media_stream_dispatcher.h",
"../renderer/media/mock_peer_connection_impl.cc",
"../renderer/media/mock_peer_connection_impl.h",
"../renderer/media/mock_web_rtc_peer_connection_handler_client.cc",
"../renderer/media/mock_web_rtc_peer_connection_handler_client.h",
"../renderer/media/webrtc/mock_peer_connection_dependency_factory.cc",
"../renderer/media/webrtc/mock_peer_connection_dependency_factory.h",
]
deps += [
"//third_party/libjingle:libjingle_webrtc",
"//third_party/webrtc/base:rtc_base",
"//third_party/webrtc/modules/video_capture",
]
}
if (use_glib) {
configs += [ "//build/config/linux:glib" ]
}
if (use_aura) {
deps += [
"//ui/aura:test_support",
"//ui/resources:ui_test_pak",
"//ui/wm",
]
}
if (use_aura || is_mac) {
deps += [
"//third_party/libvpx",
"//ui/compositor",
]
sources += [
"../browser/compositor/test/no_transport_image_transport_factory.cc",
"../browser/compositor/test/no_transport_image_transport_factory.h",
]
}
if (use_ozone) {
deps += [ "//ui/ozone" ]
}
if (is_win) {
deps += [
"//content:sandbox_helper_win",
"//third_party/iaccessible2",
]
}
if (is_android) {
deps += [
"//ui/android",
"//ui/shell_dialogs",
]
}
if (is_win) {
deps += [ "//sandbox" ]
}
if (v8_use_external_startup_data) {
deps += [ "//gin:gin" ]
}
}
# browsertest_support can be used by targets that run content_shell based
# browser tests.
source_set("browsertest_support") {
testonly = true
# See comment at the top of //content/BUILD.gn for why this is disabled in
# component builds.
if (is_component_build) {
check_includes = false
}
sources = [
"../public/test/content_browser_test.cc",
"../public/test/content_browser_test.h",
"../public/test/content_browser_test_utils.cc",
"../public/test/content_browser_test_utils.h",
"../public/test/content_browser_test_utils_mac.mm",
"content_browser_test_utils_internal.cc",
"content_browser_test_utils_internal.h",
"content_test_launcher.cc",
]
deps = [
":browsertest_base",
":test_support",
"//base",
"//base:i18n",
"//base/test:test_config",
"//base/test:test_support",
"//cc/surfaces",
"//content/app:both_for_content_tests",
"//content/browser:for_content_tests",
"//content/shell:content_shell_lib",
"//gin",
"//media",
"//net",
"//skia",
"//testing/gtest",
"//ui/accessibility:ax_gen",
"//ui/base",
"//ui/base/ime",
]
if (is_android) {
deps += [ "//content/public/app:both" ]
} else {
deps += [ "//content/public/browser" ]
}
configs += [ "//v8:external_startup_data" ]
}
# browsertest_base can be used by any browser test target.
source_set("browsertest_base") {
testonly = true
sources = [
"../public/test/browser_test.h",
"../public/test/browser_test_base.cc",
"../public/test/browser_test_base.h",
"../public/test/browser_test_utils.cc",
"../public/test/browser_test_utils.h",
]
public_deps = [
"//content/browser:for_content_tests",
"//content/public/browser",
"//content/public/common",
"//third_party/WebKit/public:blink",
]
deps = [
"//base:base",
"//content/public/app:both",
"//net:test_support",
"//testing/gtest",
"//ui/accessibility",
"//ui/base",
"//ui/base:test_support",
"//ui/base/ime",
"//ui/events:dom_keycode_converter",
"//ui/events:events_base",
"//ui/events:gesture_detection",
"//ui/resources",
]
}
mojom("content_test_mojo_bindings") {
sources = [
"../public/test/test_mojo_service.mojom",
]
}
mojom("web_ui_test_mojo_bindings") {
sources = [
"data/web_ui_test_mojo_bindings.mojom",
]
}
# GYP version //content/content_tests.gypi:layouttest_support_content
static_library("layouttest_support") {
testonly = true
# See comment at the top of //content/BUILD.gn for why this is disabled in
# component builds.
if (is_component_build) {
check_includes = false
}
sources =
rebase_path(content_tests_gypi_values.layouttest_support_content_sources,
".",
"//content")
deps = [
":test_support",
"//cc",
"//cc/blink",
"//components/scheduler:test_support",
"//components/test_runner:test_runner",
"//content/browser:for_content_tests",
"//content/public/common",
#"//content/shell:content_shell_lib",
"//content/renderer:for_content_tests",
"//mojo/edk/test:test_support",
"//skia",
"//ui/accessibility:ax_gen",
"//v8",
]
if (is_android) {
deps += [ "//content/public/test/android:test_support_content_jni_headers" ]
}
}
if (is_android) {
import("//build/config/android/rules.gni")
jinja_template("content_browsertests_manifest") {
testonly = true
input =
"//content/shell/android/browsertests_apk/AndroidManifest.xml.jinja2"
output =
"${target_gen_dir}/content_browsertests_manifest/AndroidManifest.xml"
}
android_library("content_browsertests_java") {
testonly = true
java_files = [
"../shell/android/browsertests_apk/src/org/chromium/content_browsertests_apk/ContentBrowserTestsActivity.java",
"../shell/android/browsertests_apk/src/org/chromium/content_browsertests_apk/ContentBrowserTestsApplication.java",
]
deps = [
":content_browsertests_resources",
"//base:base_java",
"//content/public/android:content_java",
"//content/public/test/android:content_java_test_support",
"//content/shell/android:content_shell_browsertests_java",
"//testing/android/native_test:native_test_java",
"//ui/android:ui_java",
]
}
android_resources("content_browsertests_resources") {
testonly = true
resource_dirs = [ "//content/shell/android/browsertests_apk/res" ]
custom_package = "org.chromium.content_browsertests_apk"
}
}
# TODO(GYP_GONE): Delete this after we've converted everything to GN.
# The _run targets exist only for compatibility w/ GYP.
group("content_site_isolation_browsertests_run") {
testonly = true
deps = [
":content_browsertests",
]
}
group("content_site_isolation_browsertests") {
testonly = true
data = [
"//testing/buildbot/filters/site-per-process.content_browsertests.filter",
]
data_deps = [
":content_browsertests",
]
}
test("content_browsertests") {
# See comment at the top of //content/BUILD.gn for why this is disabled in
# component builds.
if (is_component_build) {
check_includes = false
}
sources = rebase_path(content_tests_gypi_values.content_browsertests_sources,
".",
"//content")
if (is_android || is_linux || is_mac || is_win) {
data = [
"$root_out_dir/content_shell.pak",
"data/",
"//net/data/",
"//media/test/data/",
]
if (!is_android) {
data += [
"//net/tools/testserver/",
"//ppapi/tests/test_case.html",
"//ppapi/tests/test_page.css",
"//third_party/pyftpdlib/",
"//third_party/pywebsocket/",
"//third_party/tlslite/",
]
if (is_mac) {
data += [ "$root_out_dir/Content Shell.app/" ]
}
if (is_win) {
if (symbol_level != 0) {
data += [ "$root_out_dir/content_browsertests.exe.pdb" ]
}
}
}
}
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
configs += [
"//build/config:precompiled_headers",
"//build/config/compiler:no_size_t_to_int_warning",
]
deps = [
":browsertest_base",
":browsertest_support",
":content_test_mojo_bindings",
":web_ui_test_mojo_bindings",
"//base/test:test_support",
"//components/scheduler",
"//content:resources",
"//content/app:both_for_content_tests",
"//content/browser:for_content_tests",
"//content/browser/background_sync:background_sync_proto",
"//content/common:mojo_bindings",
"//content/gpu",
"//content/public/browser",
"//content/public/child",
"//content/public/common",
"//content/public/renderer",
"//content/renderer:for_content_tests",
"//content/shell:content_shell_lib",
"//content/shell:pak",
"//content/test:test_support",
"//device/battery",
"//device/battery:mojo_bindings",
"//device/vibration:mojo_bindings",
"//gin",
"//gpu",
"//ipc:test_support",
"//media",
"//media:test_support",
"//media/audio:test_support",
"//media/base:test_support",
"//mojo/edk/system",
"//mojo/edk/test:test_support",
"//mojo/public/cpp/bindings",
"//mojo/public/js",
"//net:test_support",
"//services/shell/public/cpp",
"//storage/browser",
"//testing/gmock",
"//testing/gtest",
"//third_party/WebKit/public:blink",
"//third_party/leveldatabase",
"//third_party/mesa:osmesa",
"//third_party/zlib",
"//ui/accessibility",
"//ui/accessibility:ax_gen",
"//ui/base:test_support",
"//ui/base/ime",
"//ui/compositor",
"//ui/gfx",
"//ui/gfx/geometry",
"//ui/gl",
"//ui/gl:test_support",
"//ui/resources",
"//ui/shell_dialogs",
"//ui/snapshot",
]
data_deps = [
"//third_party/mesa:osmesa",
]
if (enable_plugins) {
deps += [
"//ppapi/host",
"//ppapi/proxy",
"//ppapi/proxy:ipc",
"//ppapi/shared_impl:test_support",
]
data_deps += [ "//ppapi:ppapi_tests" ]
if (is_mac) {
data += [ "$root_out_dir/ppapi_tests.plugin/" ]
}
}
if (is_win) {
sources +=
rebase_path(content_tests_gypi_values.content_browsertests_win_sources,
".",
"//content")
deps += [
"//content/app/strings",
"//net:net_resources",
"//third_party/WebKit/public:resources",
"//third_party/iaccessible2",
"//third_party/isimpledom",
]
libs = [ "oleacc.lib" ]
}
if (is_android) {
sources += rebase_path(
content_tests_gypi_values.content_browsertests_android_sources,
".",
"//content")
sources -= [
"../browser/battery_status/battery_monitor_impl_browsertest.cc",
"../browser/media/session/media_session_delegate_default_browsertest.cc",
]
deps += [
":content_browsertests_java",
":content_browsertests_manifest",
"//content/shell:content_shell_lib",
"//content/shell/android:content_shell_assets",
"//content/shell/android:content_shell_jni_headers",
"//testing/android/native_test:native_test_support",
]
deps -= [ "//device/battery" ]
android_manifest =
"${target_gen_dir}/content_browsertests_manifest/AndroidManifest.xml"
use_default_launcher = false
}
if (is_mac) {
sources += [ "../renderer/external_popup_menu_browsertest.cc" ]
deps += [ "//content/shell:content_shell" ]
}
if (use_aura && !is_win) {
deps += [ "//ui/events:test_support" ]
}
if (!use_aura && !is_mac) {
sources -=
[ "../browser/compositor/image_transport_factory_browsertest.cc" ]
}
if (enable_webrtc) {
sources += rebase_path(
content_tests_gypi_values.content_browsertests_webrtc_sources,
".",
"//content")
deps += [ "//testing/perf" ]
}
if (enable_plugins) {
sources += rebase_path(
content_tests_gypi_values.content_browsertests_plugins_sources,
".",
"//content")
deps += [ "//ppapi/proxy:test_support" ]
data_deps += [ "//ppapi:ppapi_tests" ]
}
if (enable_web_speech) {
sources += rebase_path(
content_tests_gypi_values.content_browsertests_speech_sources,
".",
"//content")
}
if (!is_chrome_branded) {
sources += rebase_path(
content_tests_gypi_values.content_browsertests_unofficial_build_sources,
".",
"//content")
}
if (use_aura) {
deps += [
"//ui/aura",
"//ui/touch_selection:test_support",
"//ui/touch_selection:touch_selection",
]
} else {
sources -= [
"../browser/accessibility/touch_accessibility_aura_browsertest.cc",
"../browser/renderer_host/input/touch_selection_controller_client_aura_browsertest.cc",
"../browser/web_contents/web_contents_view_aura_browsertest.cc",
]
}
}
test("content_unittests") {
# See comment at the top of //content/BUILD.gn for why this is disabled in
# component builds.
if (is_component_build) {
check_includes = false
}
defines = []
sources = rebase_path(content_tests_gypi_values.content_unittests_sources,
".",
"//content")
if (is_android || is_linux || is_mac || is_win) {
data = [
"$root_out_dir/content_shell.pak",
"data/",
"//net/data/ssl/certificates/",
"//media/test/data/",
]
}
configs += [ "//build/config:precompiled_headers" ]
deps = [
":content_test_mojo_bindings",
":test_support",
"//base/test:test_support",
"//base/third_party/dynamic_annotations",
"//cc",
"//cc:test_support",
"//cc/ipc",
"//cc/surfaces",
"//components/display_compositor",
"//components/scheduler",
"//content:resources",
"//content/app:both_for_content_tests",
"//content/browser:for_content_tests",
"//content/browser/cache_storage:cache_storage_proto",
"//content/browser/notifications:notification_proto",
"//content/browser/service_worker:service_worker_proto",
"//content/browser/speech/proto",
"//content/child:for_content_tests",
"//content/common:mojo_bindings",
"//content/gpu",
"//content/public/browser",
"//content/public/child",
"//content/public/common",
"//content/public/renderer",
"//content/renderer:for_content_tests",
"//crypto",
"//device/battery",
"//device/battery:mojo_bindings",
"//device/bluetooth",
"//device/bluetooth:mocks",
"//gin",
"//gpu",
"//gpu:test_support",
"//ipc:test_support",
"//media:shared_memory_support",
"//media:test_support",
"//media/audio:test_support",
"//media/base:test_support",
"//media/midi:midi",
"//mojo/edk/test:test_support",
"//mojo/public/cpp/bindings",
"//net:extras",
"//net:test_support",
"//ppapi/c",
"//printing",
"//skia",
"//sql",
"//sql:test_support",
"//storage/browser",
"//storage/common",
"//testing/gmock",
"//testing/gtest",
"//third_party/WebKit/public:blink",
"//third_party/WebKit/public:mojo_bindings",
"//third_party/icu",
"//third_party/leveldatabase",
"//third_party/libjingle",
"//third_party/re2",
"//third_party/widevine/cdm:version_h",
"//ui/accessibility",
"//ui/base:test_support",
"//ui/compositor:test_support",
"//ui/display",
"//ui/display:test_support",
"//ui/events/blink",
"//ui/gfx:test_support",
"//ui/gfx/geometry",
"//ui/gfx/ipc",
"//ui/gfx/ipc/skia",
"//ui/gl",
"//ui/gl:test_support",
]
data_deps = [
"//third_party/mesa:osmesa",
]
if (!is_win) {
sources += [ "../browser/file_descriptor_info_impl_unittest.cc" ]
}
if (enable_plugins) {
sources +=
rebase_path(content_tests_gypi_values.content_unittests_plugins_sources,
".",
"//content")
deps += [
"//ppapi/host",
"//ppapi/proxy:test_support",
"//ppapi/shared_impl:test_support",
]
}
if (enable_webrtc) {
sources +=
rebase_path(content_tests_gypi_values.content_unittests_webrtc_sources,
".",
"//content")
deps += [
"//media/blink",
"//third_party/libjingle:libjingle_webrtc",
"//third_party/webrtc/base:rtc_base",
"//third_party/webrtc/modules/desktop_capture:primitives",
"//third_party/webrtc/modules/video_capture",
"//ui/shell_dialogs:shell_dialogs",
]
if (is_linux || is_mac || is_win) {
sources +=
[ "../browser/media/capture/desktop_capture_device_unittest.cc" ]
deps += [ "//third_party/webrtc/modules/desktop_capture" ]
}
if (is_chromeos) {
sources +=
[ "../browser/media/capture/desktop_capture_device_aura_unittest.cc" ]
}
if (is_android || is_chromecast) {
sources -= [
"../renderer/media/audio_track_recorder_unittest.cc",
"../renderer/media/media_recorder_handler_unittest.cc",
"../renderer/media/video_track_recorder_unittest.cc",
]
}
}
if (enable_webrtc && enable_plugins) {
sources += rebase_path(
content_tests_gypi_values.content_unittests_plugin_webrtc_sources,
".",
"//content")
}
if (enable_web_speech) {
sources +=
rebase_path(content_tests_gypi_values.content_unittests_speech_sources,
".",
"//content")
}
if (is_linux) {
if (use_dbus) {
deps += [ "//dbus:test_support" ]
} else {
sources -=
[ "../browser/geolocation/wifi_data_provider_linux_unittest.cc" ]
}
}
if (is_win) {
deps += [ "//third_party/iaccessible2" ]
}
if (is_mac) {
# These flags are needed to run the test on Mac.
# Search for comments about "xcode_settings" in chrome_tests.gypi.
ldflags = [ "-Wl,-ObjC" ]
deps += [
"//third_party/mozilla",
"//third_party/ocmock",
]
}
if (is_chromeos) {
sources -= [ "../browser/geolocation/wifi_data_provider_linux_unittest.cc" ]
deps += [ "//chromeos" ]
}
if (is_android) {
sources +=
rebase_path(content_tests_gypi_values.content_unittests_android_sources,
".",
"//content")
sources -= [
"../browser/geolocation/network_location_provider_unittest.cc",
"../browser/geolocation/wifi_data_provider_common_unittest.cc",
"../browser/power_usage_monitor_impl_unittest.cc",
"../browser/webui/url_data_manager_backend_unittest.cc",
]
deps -= [ "//device/battery" ]
deps += [
"//base:base_java_unittest_support",
"//content/public/android:content_java",
"//v8:v8_external_startup_data_assets",
]
defines += [ "APPCACHE_USE_SIMPLE_CACHE" ]
}
if (!is_android) {
deps += [ "//third_party/libvpx" ]
}
if (use_aura) {
deps += [
"//components/mus/public/cpp/tests:unittest_support",
"//ui/aura:test_support",
"//ui/aura_extra",
"//ui/wm",
]
sources += [ "../renderer/mus/compositor_mus_connection_unittest.cc" ]
} else {
sources -= [
"../browser/renderer_host/render_widget_host_view_aura_unittest.cc",
"../browser/renderer_host/web_input_event_aura_unittest.cc",
"../browser/web_contents/aura/overscroll_navigation_overlay_unittest.cc",
"../browser/web_contents/aura/overscroll_window_animation_unittest.cc",
"../browser/web_contents/aura/overscroll_window_delegate_unittest.cc",
"../browser/web_contents/web_contents_view_aura_unittest.cc",
]
}
# Avoid windows due to non-availability of cursor resources in test.
if (!use_aura || is_win) {
sources -= [ "../browser/media/capture/cursor_renderer_aura_unittest.cc" ]
}
if (use_aura || toolkit_views) {
deps += [ "//ui/events:test_support" ]
}
if (!use_aura && !is_mac) {
sources -= [
"../browser/compositor/reflector_impl_unittest.cc",
"../browser/compositor/software_browser_compositor_output_surface_unittest.cc",
]
}
if (!is_win && !is_mac) {
sources -= [ "../common/plugin_list_unittest.cc" ]
}
if (use_ozone) {
deps += [ "//ui/ozone" ]
} else {
sources -=
[ "../browser/compositor/software_output_device_ozone_unittest.cc" ]
}
if (is_mac) {
deps += [ "//third_party/boringssl" ]
}
if (use_x11) {
deps += [ "//ui/gfx/x" ]
}
}
test("content_perftests") {
# See comment at the top of //content/BUILD.gn for why this is disabled in
# component builds.
if (is_component_build) {
check_includes = false
}
sources = [
"../browser/renderer_host/input/input_router_impl_perftest.cc",
"../common/discardable_shared_memory_heap_perftest.cc",
"../test/run_all_perftests.cc",
]
deps = [
"//base/test:test_support",
"//cc",
"//cc/ipc",
"//content/browser:for_content_tests",
"//content/public/browser",
"//content/public/common",
"//content/test:test_support",
"//skia",
"//testing/gtest",
"//testing/perf",
"//ui/gfx",
"//ui/gfx/geometry",
]
if (is_android) {
deps += [ "//testing/android/native_test:native_test_native_code" ]
}
}
fuzzer_test("renderer_fuzzer") {
sources = [
"renderer_fuzzer.cc",
]
deps = [
":test_support",
"//content/shell:content_shell_lib",
]
}