blob: d5616db05a7a814e5e2587ce978b7d745514676e [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("//chrome/chrome_tests.gni")
import("//chrome/test/base/js2gtest.gni")
import("//testing/test.gni")
if (is_android) {
import("//build/config/android/rules.gni")
}
declare_args() {
# TODO(GYP) http://crbug.com/462791
enable_nacl_browsertests = false
}
# This target exists to reference other test executables to bring these files
# into the build.
group("test") {
testonly = true
}
# GYP version: chrome/chrome_tests_unit.gypi:test_support_common
source_set("test_support") {
defines = []
testonly = true
sources = [
"base/chrome_process_util.cc",
"base/chrome_process_util.h",
"base/chrome_process_util_mac.cc",
"base/chrome_render_view_host_test_harness.cc",
"base/chrome_render_view_host_test_harness.h",
"base/chrome_test_launcher.cc",
"base/chrome_test_launcher.h",
"base/chrome_test_suite.cc",
"base/chrome_test_suite.h",
"base/chrome_unit_test_suite.cc",
"base/chrome_unit_test_suite.h",
"base/dialog_test_browser_window.cc",
"base/dialog_test_browser_window.h",
"base/find_in_page_observer.cc",
"base/find_in_page_observer.h",
"base/history_index_restore_observer.cc",
"base/history_index_restore_observer.h",
"base/scoped_browser_locale.cc",
"base/scoped_browser_locale.h",
"base/scoped_bundle_swizzler_mac.h",
"base/scoped_bundle_swizzler_mac.mm",
"base/scoped_testing_local_state.cc",
"base/scoped_testing_local_state.h",
"base/search_test_utils.cc",
"base/search_test_utils.h",
"base/test_browser_window.cc",
"base/test_browser_window.h",
"base/test_launcher_utils.cc",
"base/test_launcher_utils.h",
"base/test_switches.cc",
"base/test_switches.h",
"base/testing_browser_process.cc",
"base/testing_browser_process.h",
"base/testing_browser_process_platform_part.cc",
"base/testing_browser_process_platform_part.h",
"base/testing_io_thread_state.cc",
"base/testing_io_thread_state.h",
"base/testing_profile.cc",
"base/testing_profile.h",
"base/testing_profile_manager.cc",
"base/testing_profile_manager.h",
"base/tracing.cc",
"base/tracing.h",
"logging/win/file_logger.cc",
"logging/win/file_logger.h",
"logging/win/log_file_printer.cc",
"logging/win/log_file_printer.h",
"logging/win/log_file_reader.cc",
"logging/win/log_file_reader.h",
"logging/win/mof_data_parser.cc",
"logging/win/mof_data_parser.h",
"logging/win/test_log_collector.cc",
"logging/win/test_log_collector.h",
]
configs += [ "//build/config:precompiled_headers" ]
# New deps should go in the non-iOS section below.
public_deps = [
"//base:prefs_test_support",
"//base/test:test_support",
"//chrome:resources",
"//chrome:strings",
"//chrome/app:test_support",
#"//chrome/app/theme:theme_resources",
"//chrome/browser:test_support",
"//chrome/common:test_support",
"//chrome/renderer:test_support",
"//components/bookmarks/test",
"//components/gcm_driver:test_support",
"//components/gcm_driver/instance_id:test_support",
"//components/history/core/test:test",
"//components/metrics:test_support",
"//components/omnibox/browser:test_support",
"//components/password_manager/core/browser:test_support",
"//components/pref_registry:test_support",
"//components/rappor:test_support",
"//components/search_engines:test_support",
"//components/signin/core/browser:test_support",
"//components/sync_driver:test_support",
"//components/sync_sessions:test_support",
"//components/syncable_prefs:test_support",
"//components/ui/zoom:test_support",
"//components/update_client:test_support",
"//content/public/app:both",
"//content/test:test_support",
"//net",
"//net:test_support",
"//skia",
"//sql",
"//sql:test_support",
"//sync",
"//testing/gmock",
"//testing/gtest",
"//third_party/zlib",
"//ui/gfx:test_support",
"//ui/message_center:test_support",
]
if (!is_ios) {
public_deps += [
"//chrome/child",
"//chrome/plugin",
"//chrome/renderer",
"//chrome/utility",
"//components/autofill/core/browser:test_support",
"//components/captive_portal:test_support",
"//components/gcm_driver/crypto:test_support",
"//components/guest_view/browser:test_support",
"//components/infobars/core",
"//components/sessions:test_support",
"//components/user_manager:test_support",
"//components/web_resource:test_support",
"//content/public/child",
"//content/public/common",
"//content/public/plugin",
"//content/public/renderer",
"//content/public/utility",
"//google_apis:test_support",
"//ipc:test_support",
"//media:test_support",
"//sql:test_support",
"//third_party/leveldatabase",
"//ui/base",
"//ui/events:events_base",
"//ui/gl",
]
}
if (enable_plugins) {
public_deps += [ "//ppapi/shared_impl" ]
}
if (is_android) {
public_deps -= [ "//ui/message_center:test_support" ]
sources -= [
"base/dialog_test_browser_window.cc",
"base/dialog_test_browser_window.h",
"base/test_browser_window.cc",
"base/test_browser_window.h",
]
}
if (enable_extensions) {
public_deps += [
"//chrome/common/extensions/api",
"//extensions:test_support",
]
}
if (is_linux) {
public_deps += [ "//crypto:platform" ]
}
if (is_mac) {
sources += [
"//chrome/app/chrome_crash_reporter_client.cc",
"//chrome/app/chrome_crash_reporter_client_mac.mm",
]
public_deps += [
"//breakpad",
"//components/crash/content/app",
"//third_party/ocmock",
]
}
if (is_win) {
sources += [ "//chrome/app/chrome_crash_reporter_client.cc" ]
public_deps += [
"//components/crash/content/app",
"//third_party/wtl",
]
if (use_aura) {
public_deps += [
"//win8:test_registrar_constants",
"//win8:test_support_win8",
]
}
}
if (is_chromeos) {
public_deps += [ "//components/ownership" ]
}
if (use_aura) {
sources += [
"base/test_browser_window_aura.cc",
"base/test_browser_window_aura.h",
]
}
if (enable_plugins && enable_pdf) {
public_deps += [ "//pdf" ]
}
if (use_ash) {
sources += [
"base/default_ash_event_generator_delegate.cc",
"base/default_ash_event_generator_delegate.h",
]
public_deps += [
"//ash",
"//ash:test_support",
"//ui/aura",
"//ui/aura:test_support",
]
}
if (toolkit_views) {
public_deps += [ "//ui/views:test_support" ]
}
if (enable_extensions) {
public_deps += [
"//chrome/common/extensions/api",
"//extensions:test_support",
]
}
}
if (!is_android) {
# GYP version: chrome/chrome_tests.gypi:test_support_ui
source_set("test_support_ui") {
defines = []
testonly = true
sources = [
"base/in_process_browser_test.cc",
"base/in_process_browser_test.h",
"base/in_process_browser_test_mac.cc",
"base/ui_test_utils.cc",
"base/ui_test_utils.h",
]
configs += [ "//build/config:precompiled_headers" ]
public_deps = [
"//chrome/browser:test_support_ui",
]
deps = [
"//components/metrics:test_support",
"//skia",
"//testing/gtest",
]
if (enable_plugins) {
sources += [
"ppapi/ppapi_test.cc",
"ppapi/ppapi_test.h",
]
}
}
import("//third_party/protobuf/proto_library.gni")
# GYP version: chrome/chrome_tests_unit.gypi:ipc_protobuf_message_test_proto
proto_library("test_proto") {
sources = [
"../common/safe_browsing/ipc_protobuf_message_test.proto",
]
}
# TODO(GYP): Delete this after we've converted everything to GN.
# The _run targets exist only for compatibility w/ GYP.
group("interactive_ui_tests_run") {
testonly = true
deps = [
":interactive_ui_tests",
]
}
test("interactive_ui_tests") {
sources =
rebase_path(chrome_tests_gypi_values.chrome_interactive_ui_test_sources,
".",
"//chrome")
configs += [ "//build/config:precompiled_headers" ]
data = [
"data/",
"//net/data/ssl/certificates/",
"//net/tools/testserver/",
"//ppapi/tests/test_case.html",
"//ppapi/tests/test_case.html.mock-http-headers",
"//ppapi/tests/test_page.css",
"//ppapi/tests/test_page.css.mock-http-headers",
"//third_party/pyftpdlib/",
"//third_party/pywebsocket/",
"//third_party/tlslite/",
"//third_party/zlib/google/test/data/",
"//tools/metrics/histograms/histograms.xml",
"$root_out_dir/pyproto/google/",
"$root_out_dir/resources.pak",
"$root_out_dir/ui_test.pak",
]
if (is_linux || is_win) {
data += [
"$root_out_dir/chrome_100_percent.pak",
"$root_out_dir/chrome_material_100_percent.pak",
"$root_out_dir/locales/en-US.pak",
"$root_out_dir/locales/fr.pak",
]
}
if (is_linux) {
data += [ "$root_out_dir/libppapi_tests.so" ]
}
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
ldflags = []
deps = [
":test_support",
":test_support_ui",
"//base/allocator",
"//chrome:packed_extra_resources",
"//chrome:packed_resources",
"//chrome:resources",
"//chrome:strings",
"//chrome/browser",
"//chrome/browser/devtools",
"//chrome/renderer",
"//components/resources",
"//content/app/resources",
"//crypto:platform",
"//crypto:test_support",
"//google_apis:test_support",
"//net",
"//net:net_resources",
"//net:test_support",
"//skia",
"//sync",
"//testing/gmock",
"//testing/gtest",
"//third_party/hunspell",
"//third_party/icu",
"//third_party/libpng",
"//third_party/zlib",
"//ui/base:test_support",
"//ui/resources:ui_test_pak",
"//ui/web_dialogs:test_support",
]
# TODO(rockot) bug 505926: The chrome_extensions_interactive_uitests target
# should be deleted and this line removed. See the
# chrome_extensions_interactive_uitests target for more.
deps += [ "//extensions:chrome_extensions_interactive_uitests" ]
# Runtime dependencies
data_deps = [
"//ppapi:ppapi_tests",
"//third_party/mesa:osmesa",
]
if (toolkit_views) {
sources += rebase_path(
chrome_tests_gypi_values.chrome_interactive_ui_test_views_sources,
".",
"//chrome")
deps += [
"//ui/views",
"//ui/views:test_support",
"//ui/views/controls/webview:test_support",
]
if (!is_mac) {
sources += rebase_path(
chrome_tests_gypi_values.chrome_interactive_ui_test_views_non_mac_sources,
".",
"//chrome")
}
if (is_linux) {
if (!is_chromeos) {
# Desktop linux.
sources -= [
# TODO(port): This times out. Attempts have been made to fix the
# individual failures, but each time I disable a test from these
# suites, it seems like one or another starts timing out too.
"../browser/ui/views/keyboard_access_browsertest.cc",
]
if (!use_ozone) {
sources += [ "../browser/ui/libgtk2ui/select_file_dialog_interactive_uitest.cc" ]
configs += [ "//build/config/linux/gtk2:gtk2_internal_config" ]
}
}
}
if (is_chromeos || !use_x11) {
sources -= [
"../../ui/views/widget/desktop_aura/desktop_window_tree_host_x11_interactive_uitest.cc",
"../../ui/views/widget/desktop_aura/x11_topmost_window_finder_interactive_uitest.cc",
]
}
if (use_aura) {
deps += [ "//ui/touch_selection" ]
}
}
if (!is_desktop_linux) {
# Everything but desktop Linux.
sources += rebase_path(
chrome_tests_gypi_values.chrome_interactive_ui_test_non_desktop_linux_sources,
".",
"//chrome")
}
if (is_chromeos) {
sources += rebase_path(
chrome_tests_gypi_values.chrome_interactive_ui_test_chromeos_sources,
".",
"//chrome")
sources += [ "../browser/notifications/login_state_notification_blocker_chromeos_browsertest.cc" ]
deps += [
"//ash/resources",
"//chromeos",
]
if (enable_nacl) {
data_deps += [
"//components/nacl:nacl_helper",
"//components/nacl:helper_nonsfi",
]
}
if (is_chrome_branded) {
sources -= [
# These tests are failing on official cros bots. crbug.com/431450.
"../browser/ui/views/bookmarks/bookmark_bar_view_test.cc",
]
}
} else {
# ChromeOS doesn't use panels, everybody else does.
sources += rebase_path(
chrome_tests_gypi_values.chrome_interactive_ui_test_panels_sources,
".",
"//chrome")
# TODO(tapted): Include on mac when views panels are ported.
if (toolkit_views && !is_mac) {
sources += rebase_path(
chrome_tests_gypi_values.chrome_interactive_ui_test_panels_views_sources,
".",
"//chrome")
}
}
if (!is_linux) {
# Non-Linux platforms (Linux includes ChromeOS here).
sources += rebase_path(
chrome_tests_gypi_values.chrome_interactive_ui_test_non_linux_and_chromeos_sources,
".",
"//chrome")
}
if (is_win) {
sources += rebase_path(
chrome_tests_gypi_values.chrome_interactive_ui_test_win_sources,
".",
"//chrome")
deps += [
"//chrome:other_version",
"//third_party/isimpledom",
"//third_party/wtl",
"//ui/resources",
]
configs -= [ "//build/config/win:default_incremental_linking" ]
configs +=
[ "//build/config/win:default_large_module_incremental_linking" ]
libs = [ "oleacc.lib" ]
}
if (is_mac) {
data_deps += [ "//chrome" ]
# TODO(mark): We really want this for all non-static library targets, but
# when we tried to pull it up to the common.gypi level, it broke other
# things like the ui and startup tests. *shrug*
ldflags += [ "-Wl,-ObjC" ]
}
if (cld_version == 2) {
# Interactive tests should use whatever CLD2 data access mode that the
# application embedder is using.
deps += [ "//third_party/cld_2:cld2_platform_impl" ]
}
if (use_x11) {
configs += [ "//build/config/linux:xtst" ]
data_deps += [ "//tools/xdisplaycheck" ]
}
if (enable_app_list) {
sources += rebase_path(
chrome_tests_gypi_values.chrome_interactive_ui_test_app_list_sources,
".",
"//chrome")
}
if (!use_aura) {
sources -= [
"base/interactive_test_utils_aura.cc",
"base/interactive_test_utils_aura.h",
]
}
if (use_ash) {
sources += rebase_path(
chrome_tests_gypi_values.chrome_interactive_ui_test_ash_sources,
".",
"//chrome")
if (is_chromeos) {
sources -= [
# Use only the _chromeos version on ChromeOS.
"base/view_event_test_platform_part_ash.cc",
]
}
deps += [ "//ash:interactive_ui_test_support" ]
}
if (enable_notifications) {
sources += rebase_path(
chrome_tests_gypi_values.chrome_interactive_ui_test_notifications_sources,
".",
"//chrome")
# Non-ChromeOS notifications tests (ChromeOS does not use cross-platform
# panels).
if (!is_chromeos) {
sources += [
"../browser/notifications/notification_browsertest.cc",
"../browser/notifications/platform_notification_service_browsertest.cc",
]
}
if (is_android) {
sources -= [
# Android does not use the message center-based Notification system.
"../browser/notifications/message_center_notifications_browsertest.cc",
# TODO(peter): Enable the Notification browser tests.
"../browser/notifications/notification_browsertest.cc",
"../browser/notifications/platform_notification_service_browsertest.cc",
]
}
} # enable_notifications
if (!use_aura || is_chromeos) {
sources -=
[ "../../ui/views/corewm/desktop_capture_controller_unittest.cc" ]
}
}
source_set("sync_integration_test_support") {
testonly = true
sources = rebase_path(
chrome_tests_gypi_values.test_support_sync_integration_sources,
".",
"//chrome")
public_deps = [
"//chrome/browser",
]
deps = [
":test_support",
"//base",
"//chrome",
"//components/invalidation/impl",
"//components/invalidation/impl:test_support",
"//net",
"//skia",
"//sync",
"//sync:test_support_sync_fake_server",
"//sync:test_support_sync_testserver",
"//ui/app_list:test_support",
]
if (is_mac) {
sources -= [
"../browser/sync/test/integration/dictionary_helper.cc",
"../browser/sync/test/integration/dictionary_helper.h",
"../browser/sync/test/integration/dictionary_load_observer.cc",
"../browser/sync/test/integration/dictionary_load_observer.h",
]
}
if (!enable_app_list) {
sources -= [
"../browser/sync/test/integration/sync_app_list_helper.cc",
"../browser/sync/test/integration/sync_app_list_helper.h",
]
}
if (!is_chromeos) {
sources -= [
"../browser/sync/test/integration/wifi_credentials_helper.cc",
"../browser/sync/test/integration/wifi_credentials_helper.h",
]
}
}
js2gtest("browser_tests_js_webui") {
test_type = "webui"
sources = rebase_path(
chrome_tests_gypi_values.chrome_browser_tests_webui_js_sources,
".",
"//chrome")
if (is_chrome_branded) {
# crbug.com/230471
sources -= [ "data/webui/accessibility_audit_browsertest.js" ]
}
if (!is_chromeos) {
sources -= [ "data/webui/certificate_viewer_dialog_test.js" ]
}
if (!enable_app_list) {
sources -= [ "../browser/ui/webui/app_list/start_page_browsertest.js" ]
}
if (!enable_supervised_users) {
sources -=
[ "../browser/ui/webui/downloads_ui_supervised_browsertest.js" ]
}
if (!enable_print_preview) {
sources -= [ "data/webui/print_preview.js" ]
}
if (enable_media_router) {
sources +=
[ "data/webui/media_router/media_router_elements_browsertest.js" ]
}
deps = [
"//chrome/browser/ui",
"//skia",
]
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
}
# TODO(GYP): Delete this after we've converted everything to GN.
# The _run targets exist only for compatibility w/ GYP.
group("telemetry_perf_unittests_run") {
testonly = true
deps = [
":telemetry_perf_unittests",
]
}
group("telemetry_perf_unittests") {
deps = [
"//tools/perf/chrome_telemetry_build:telemetry_chrome_test",
]
data = [
"//tools/perf/",
# Field trial config
"//tools/variations/",
"//testing/variations/",
# For isolate contract.
"//testing/scripts/common.py",
"//testing/xvfb.py",
"//testing/scripts/run_telemetry_as_googletest.py",
]
}
# TODO(GYP): Delete this after we've converted everything to GN.
# The _run targets exist only for compatibility w/ GYP.
group("telemetry_unittests_run") {
testonly = true
deps = [
":telemetry_unittests",
]
}
group("telemetry_unittests") {
deps = [
"//tools/perf/chrome_telemetry_build:telemetry_chrome_test",
]
data = [
# For isolate contract.
"//testing/scripts/common.py",
"//testing/xvfb.py",
"//testing/scripts/run_telemetry_as_googletest.py",
]
}
# TODO(GYP): Delete this after we've converted everything to GN.
# The _run targets exist only for compatibility w/ GYP.
group("telemetry_gpu_test_run") {
testonly = true
deps = [
":telemetry_gpu_test",
]
}
group("telemetry_gpu_test") {
deps = [
"//tools/perf/chrome_telemetry_build:telemetry_chrome_test",
]
data = [
# For isolate contract.
"//testing/scripts/common.py",
"//testing/xvfb.py",
"//testing/scripts/run_telemetry_benchmark_as_googletest.py",
"//content/test/gpu/",
"//content/test/data/gpu/",
# For GpuProcess.video
"//content/test/data/media/bear.ogv",
# For webgl_conformance
"//third_party/webgl/",
"//content/test/gpu/run_gpu_test.py",
]
}
# TODO(GYP): Delete this after we've converted everything to GN.
# The _run targets exist only for compatibility w/ GYP.
group("telemetry_gpu_new_test_run") {
testonly = true
deps = [
":telemetry_gpu_new_test",
]
}
group("telemetry_gpu_new_test") {
deps = [
"//tools/perf/chrome_telemetry_build:telemetry_chrome_test",
]
data = [
# For isolate contract.
"//testing/scripts/common.py",
"//testing/xvfb.py",
"//testing/scripts/run_telemetry_benchmark_as_googletest.py",
"//content/test/gpu/",
"//content/test/data/gpu/",
# For GpuProcess.video
"//content/test/data/media/bear.ogv",
# For webgl_conformance
"//third_party/webgl/",
"//content/test/gpu/run_gpu_test.py",
]
}
group("telemetry_gpu_unittests_run") {
testonly = true
deps = [
":telemetry_gpu_unittests",
]
}
group("telemetry_gpu_unittests") {
deps = [
"//tools/telemetry:telemetry_test_support",
]
data = [
# TODO(kbr): refactor the telemetry dependencies more cleanly.
"//content/test/gpu/",
"//content/test/data/gpu/",
# For GpuProcess.video
"//content/test/data/media/bear.ogv",
# For webgl_conformance_expectations_unittest
"//third_party/webgl/src/sdk/tests/",
# For resolve the imports in content/test/gpu/run_gpu_test.py
"//tools/perf/chrome_telemetry_build/",
# From telemetry_gpu_unittests.isolate
"//testing/scripts/common.py",
"//testing/xvfb.py",
"//testing/scripts/run_telemetry_as_googletest.py",
]
}
# TODO(GYP): Delete this after we've converted everything to GN.
# The _run targets exist only for compatibility w/ GYP.
group("tab_capture_end2end_tests_run") {
testonly = true
deps = [
":browser_tests",
]
}
# TODO(GYP): Delete this after we've converted everything to GN.
# The _run targets exist only for compatibility w/ GYP.
group("browser_tests_run") {
testonly = true
data_deps = [
":browser_tests",
]
}
test("browser_tests") {
sources = [
"base/browser_tests_main.cc",
]
sources +=
rebase_path(chrome_tests_gypi_values.chrome_browser_tests_sources,
".",
"//chrome")
sources += rebase_path(
chrome_tests_gypi_values.chrome_browser_extensions_test_support_sources,
".",
"//chrome")
configs += [ "//build/config:precompiled_headers" ]
data = [
"data/",
"//chrome/browser/policy/test/asn1der.py",
"//chrome/browser/policy/test/policy_testserver.py",
"//chrome/common/extensions/docs/examples/apps/calculator/",
"//chrome/third_party/mock4js/",
"//content/test/data/",
"//google_apis/test/",
"//media/test/data/",
"//net/data/",
"//net/tools/testserver/",
"//ppapi/tests/test_case.html",
"//ppapi/tests/test_case.html.mock-http-headers",
"//ppapi/tests/test_page.css",
"//ppapi/tests/test_page.css.mock-http-headers",
"//testing/test_env.py",
"//third_party/accessibility-audit/axs_testing.js",
"//third_party/chaijs/chai.js",
"//third_party/mocha/mocha.js",
"//third_party/pyftpdlib/",
"//third_party/pywebsocket/",
"//third_party/safe_browsing/",
"//third_party/simplejson/",
"//third_party/tlslite/",
"//ui/webui/resources/js/",
"$root_out_dir/pyproto/",
"$root_out_dir/browser_tests.pak",
"$root_out_dir/chrome_100_percent.pak",
"$root_out_dir/chrome_material_100_percent.pak",
"$root_out_dir/locales/",
"$root_out_dir/remoting/unittests/",
"$root_out_dir/resources.pak",
"$root_out_dir/resources/extension/",
"$root_out_dir/test_case.html",
"$root_out_dir/test_case.html.mock-http-headers",
"$root_out_dir/test_data/",
"$root_out_dir/test_page.css",
"$root_out_dir/test_page.css.mock-http-headers",
"$root_out_dir/test_url_loader_data/",
]
deps = [
":browser_tests_js_webui",
":sync_integration_test_support",
":test_support",
":test_support_ui",
"//base",
"//base:i18n",
"//base/allocator",
"//base/test:test_support",
"//chrome:browser_tests_pak",
"//chrome:packed_extra_resources",
"//chrome:packed_resources",
"//chrome:resources",
"//chrome:strings",
"//chrome/browser",
"//chrome/browser/resources:extension_resource_demo",
"//chrome/common/extensions/api",
"//chrome/renderer",
"//components/autofill/content/browser:risk_proto",
"//components/autofill/content/browser/wallet:test_support",
"//components/autofill/content/renderer:test_support",
"//components/captive_portal:test_support",
"//components/dom_distiller/content/browser",
"//components/dom_distiller/content/renderer",
"//components/dom_distiller/core:test_support",
"//components/guest_view/browser:test_support",
"//components/resources",
"//components/strings",
"//components/translate/core/common",
"//components/user_manager:test_support",
"//crypto:platform",
"//crypto:test_support",
"//device/bluetooth:mocks",
"//device/serial:test_support",
"//extensions/common/api",
"//google_apis:test_support",
"//media",
"//media/base:test_support",
"//media/cast:test_support",
"//net",
"//net:test_support",
"//sdch",
"//skia",
"//sync",
"//sync:test_support_sync_api",
"//testing/gmock",
"//testing/gtest",
"//testing/perf",
"//third_party/cacheinvalidation",
"//third_party/icu",
"//third_party/leveldatabase",
"//third_party/libaddressinput",
"//third_party/libjingle",
"//third_party/safe_browsing:test_support",
"//third_party/webrtc/modules/desktop_capture",
"//third_party/widevine/cdm:version_h",
"//ui/accessibility:test_support",
"//ui/base:test_support",
"//ui/compositor:test_support",
"//ui/resources",
"//ui/web_dialogs:test_support",
"//v8",
]
# TODO(rockot) bug 505926: The chrome_extensions_browsertests target should
# be deleted and this line removed. See the chrome_extensions_browsertests
# target for more.
deps += [ "//extensions:chrome_extensions_browsertests" ]
# Runtime dependencies
data_deps = [
"//ppapi:ppapi_tests",
"//ppapi:power_saver_test_plugin",
"//remoting/webapp:browser_test_resources",
"//remoting/webapp:unit_tests",
"//third_party/mesa:osmesa",
"//third_party/widevine/cdm:widevine_test_license_server",
]
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
if (!enable_nacl_browsertests) {
defines += [ "DISABLE_NACL_BROWSERTESTS" ]
}
# TODO(GYP) if (is_win) {
# ['incremental_chrome_dll==1', {
# 'UseLibraryDependencyInputs': "true",
# }
if (cld_version == 2) {
# Because the browser_tests use translate, they need CLD data.
deps += [ "//third_party/cld_2:cld2_platform_impl" ]
}
if (!enable_one_click_signin) {
sources -= [ "../browser/ui/sync/one_click_signin_bubble_links_delegate_browsertest.cc" ]
}
if (!enable_nacl_browsertests) {
sources -= [ "../browser/extensions/api/hotword_private/hotword_private_apitest.cc" ]
} else if (enable_nacl) {
sources += [
"../browser/extensions/extension_nacl_browsertest.cc",
"../browser/nacl_host/test/gdb_debug_stub_browsertest.cc",
]
deps += [ "//components/nacl/renderer/plugin:nacl_trusted_plugin" ]
data += [
# "$root_out_dir/nacl_helper",
]
if (enable_nacl_untrusted) {
sources += [
"nacl/nacl_browsertest.cc",
"nacl/nacl_browsertest_uma.cc",
"nacl/nacl_browsertest_util.cc",
"nacl/nacl_browsertest_util.h",
"nacl/pnacl_header_test.cc",
"nacl/pnacl_header_test.h",
]
data_deps += [
"//chrome/test/data/nacl",
"//ppapi/native_client:irt",
"//ppapi:ppapi_nacl_tests_all",
# "../ppapi/ppapi_nacl.gyp:ppapi_nacl_tests", # TODO(GYP) bug 512901
# "../ppapi/tests/extensions/extensions.gyp:ppapi_tests_extensions_background_keepalive", # TODO(GYP) bug 512900
# "../ppapi/tests/extensions/extensions.gyp:ppapi_tests_extensions_media_galleries", # TODO(GYP) bug 512900
# "../ppapi/tests/extensions/extensions.gyp:ppapi_tests_extensions_packaged_app", # TODO(GYP) bug 512900
]
if (is_chromeos) {
sources += [ "//third_party/liblouis/nacl_wrapper/liblouis_wrapper_browsertest.cc" ]
deps += [ "//chrome/browser/chromeos" ]
data_deps += [ "//third_party/liblouis:liblouis_test_data" ]
}
}
if (is_win || is_linux) {
sources += [ "../browser/nacl_host/test/nacl_gdb_browsertest.cc" ]
deps += [ "//chrome/browser/nacl_host/test:mock_nacl_gdb" ]
}
if (is_win) {
# TODO(halyavin) NaCl on Windows can't open debug stub socket in
# browser process as needed by this test. See http://crbug.com/157312.
sources -= [ "../browser/nacl_host/test/gdb_debug_stub_browsertest.cc" ]
deps += [
#'chrome.gyp:chrome_nacl_win64', TODO(GYP) bug 512869
]
configs -= [ "//build/config/win:default_incremental_linking" ]
configs +=
[ "//build/config/win:default_large_module_incremental_linking" ]
}
if (is_linux) {
data_deps += [
"//components/nacl:nacl_helper",
"//components/nacl:helper_nonsfi",
]
}
}
if (debug_devtools) {
defines += [ "DEBUG_DEVTOOLS=1" ]
}
if (use_ash) {
sources +=
rebase_path(chrome_tests_gypi_values.chrome_browser_tests_ash_sources,
".",
"//chrome")
deps += [ "//ash:test_support" ]
}
if (use_aura || toolkit_views) {
deps += [ "//ui/events:test_support" ]
}
if (toolkit_views) {
sources += rebase_path(
chrome_tests_gypi_values.chrome_browser_tests_views_sources,
".",
"//chrome")
deps += [ "//ui/views" ]
if (!is_mac) {
sources += rebase_path(
chrome_tests_gypi_values.chrome_browser_tests_views_non_mac_sources,
".",
"//chrome")
}
}
if (is_chromeos) {
sources += rebase_path(
chrome_tests_gypi_values.chrome_browser_tests_chromeos_sources,
".",
"//chrome")
sources -= [
"../../apps/load_and_launch_browsertest.cc",
"../browser/printing/cloud_print/test/cloud_print_policy_browsertest.cc",
"../browser/printing/cloud_print/test/cloud_print_proxy_process_browsertest.cc",
# chromeos does not support profile list avatar menu
"../browser/profiles/profile_list_desktop_browsertest.cc",
"../browser/service_process/service_process_control_browsertest.cc",
# chromeos does not use cross-platform panels
"../browser/ui/panels/panel_extension_browsertest.cc",
# chromeos does not use the desktop user manager
"../browser/ui/webui/signin/user_manager_ui_browsertest.cc",
]
deps += [
"//dbus",
"//dbus:test_support",
"//ui/login:resources",
]
} else {
sources -= [
"../browser/extensions/api/enterprise_device_attributes/enterprise_device_attributes_apitest.cc",
"../browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_apitest_nss.cc",
"../browser/extensions/api/platform_keys/platform_keys_apitest_nss.cc",
"../browser/extensions/api/terminal/terminal_private_apitest.cc",
"../browser/invalidation/profile_invalidation_provider_factory_browsertest.cc",
"../browser/net/nss_context_chromeos_browsertest.cc",
"data/webui/certificate_viewer_ui_test-inl.h",
]
if (use_ash) {
sources -= [ "../browser/ui/ash/keyboard_controller_browsertest.cc" ]
}
if (toolkit_views) {
sources -= [ "../browser/ui/views/select_file_dialog_extension_browsertest.cc" ]
}
}
if (enable_configuration_policy) {
sources += rebase_path(
chrome_tests_gypi_values.chrome_browser_tests_policy_sources,
".",
"//chrome")
}
if (enable_web_speech) {
sources += rebase_path(
chrome_tests_gypi_values.chrome_browser_tests_speech_sources,
".",
"//chrome")
}
if (safe_browsing_mode == 1) {
sources += rebase_path(
chrome_tests_gypi_values.chrome_browser_tests_full_safe_browsing_sources,
".",
"//chrome")
}
if (enable_captive_portal_detection) {
sources += [ "../browser/captive_portal/captive_portal_browsertest.cc" ]
}
if (!enable_webrtc) {
sources -= [
"../browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc",
"../browser/extensions/api/webrtc_logging_private/webrtc_logging_private_apitest.cc",
"../browser/media/chrome_webrtc_browsertest.cc",
"../browser/media/chrome_webrtc_disable_encryption_flag_browsertest.cc",
"../browser/media/chrome_webrtc_getmediadevices_browsertest.cc",
]
}
if (enable_media_router) {
sources += [ "../browser/ui/webui/media_router/media_router_dialog_controller_impl_browsertest.cc" ]
deps += [ "//chrome/test/media_router:media_router_browsertests" ]
}
if (is_win) {
deps += [
"//chrome:other_version",
"//third_party/wtl",
"//ui/resources",
]
} else {
sources -= [
"../app/chrome_command_ids.h",
"../app/chrome_dll_resource.h",
"../app/chrome_version.rc.version",
"../browser/media_galleries/fileapi/iapps_finder_impl_win_browsertest.cc",
]
}
if (!is_chromeos && use_ash) {
sources -= [
# On Windows and Linux, we currently don't support enough of the
# ash environment to run these unit tests.
#
# TODO: enable these on windows and linux.
"../browser/ui/ash/accelerator_commands_browsertest.cc",
"../browser/ui/ash/accelerator_controller_browsertest.cc",
"../browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc",
"../browser/ui/ash/launcher/launcher_favicon_loader_browsertest.cc",
"../browser/ui/ash/shelf_browsertest.cc",
]
if (toolkit_views) {
sources -= [ "../browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc" ]
}
}
if (is_mac) {
# TODO(mark): We really want this for all non-static library
# targets, but when we tried to pull it up to the common.gypi
# level, it broke other things like the ui and startup tests. *shrug*
ldflags = [ "-Wl,-ObjC" ]
# Other platforms only need
# chrome_resources.gyp:{packed_extra_resources,packed_resources},
# and can build this target standalone much faster.
deps += [
#'app_mode_app_support', TODO(GYP)
"//chrome",
#'../components/components.gyp:breakpad_stubs', TODO(GYP)
"//third_party/ocmock",
]
sources += [
"../browser/media_galleries/fileapi/iphoto_data_provider_browsertest.cc",
"../browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper_browsertest.mm",
"../browser/spellchecker/spellcheck_message_filter_platform_mac_browsertest.cc",
]
sources -= [
# TODO(groby): This test depends on hunspell and we cannot run it on
# Mac, which does not use hunspell by default.
"../browser/spellchecker/spellcheck_service_browsertest.cc",
# TODO(rouslan): This test depends on the custom dictionary UI,
# which is disabled on Mac.
# TODO(GYP): This should be added somewhere first ...
# "../browser/ui/webui/options/edit_dictionary_browsertest.js",
# TODO(rouslan): This test depends on hunspell and we cannot run it
# on Mac, which does use hunspell by default.
# TODO(GYP): This should be added somewhere first ...
# "../browser/ui/webui/options/language_options_dictionary_download_browsertest.js",
# ProcessSingletonMac doesn"t do anything.
"../browser/process_singleton_browsertest.cc",
# This test depends on GetCommandLineForRelaunch, which is not
# available on Mac.
"../browser/printing/cloud_print/test/cloud_print_policy_browsertest.cc",
# single-process mode hangs on Mac sometimes because of multiple UI
# message loops. See 306348
"../renderer/safe_browsing/phishing_classifier_browsertest.cc",
"../renderer/safe_browsing/phishing_classifier_delegate_browsertest.cc",
"../renderer/safe_browsing/phishing_dom_feature_extractor_browsertest.cc",
]
}
if (is_mac || is_win) {
sources += [
"../browser/extensions/api/networking_private/networking_private_apitest.cc",
"../browser/extensions/api/networking_private/networking_private_service_client_apitest.cc",
"../browser/media_galleries/fileapi/itunes_data_provider_browsertest.cc",
"../browser/media_galleries/fileapi/picasa_data_provider_browsertest.cc",
]
deps += [ "//components/wifi:test_support" ]
}
if (!is_posix || is_chromeos) {
sources -= [ "../common/time_format_browsertest.cc" ]
}
if (is_android) {
sources -= [
"../browser/policy/cloud/component_cloud_policy_browsertest.cc",
"../browser/prefs/pref_hash_browsertest.cc",
"../common/spellcheck_common_unittest.cc",
"../renderer/spellchecker/spellcheck_provider_hunspell_unittest.cc",
"../renderer/spellchecker/spellcheck_unittest.cc",
]
}
if (is_chromeos) {
sources += [
"../browser/extensions/api/networking_private/networking_private_apitest.cc",
"../browser/extensions/api/networking_private/networking_private_chromeos_apitest.cc",
]
}
if (!is_android && !is_ios && enable_nacl_browsertests) {
sources +=
[ "../browser/copresence/chrome_whispernet_client_browsertest.cc" ]
deps += [ "//components/copresence" ]
}
if (enable_app_list) {
sources += rebase_path(
chrome_tests_gypi_values.chrome_browser_tests_app_list_sources,
".",
"//chrome")
}
if (enable_supervised_users) {
sources += rebase_path(
chrome_tests_gypi_values.chrome_browser_tests_supervised_user_sources,
".",
"//chrome")
}
if (enable_pepper_cdms) {
# Runtime dependencies.
data_deps += [
"//media/cdm/ppapi:clearkeycdmadapter",
"//third_party/widevine/cdm:widevinecdmadapter",
]
}
if (!enable_print_preview) {
sources -= [
"../browser/extensions/api/cloud_print_private/cloud_print_private_apitest.cc",
"../browser/printing/cloud_print/test/cloud_print_policy_browsertest.cc",
"../browser/printing/cloud_print/test/cloud_print_proxy_process_browsertest.cc",
"../browser/printing/print_preview_dialog_controller_browsertest.cc",
"../browser/printing/print_preview_pdf_generated_browsertest.cc",
"../browser/service_process/service_process_control_browsertest.cc",
"../browser/ui/webui/print_preview/print_preview_ui_browsertest.cc",
"data/webui/print_preview.cc",
"data/webui/print_preview.h",
]
}
if (enable_mdns) {
sources += [ "../browser/ui/webui/local_discovery/local_discovery_ui_browsertest.cc" ]
}
if (use_brlapi) {
deps += [ "//build/linux:libbrlapi" ]
} else {
sources -= [ "../browser/extensions/api/braille_display_private/braille_display_private_apitest.cc" ]
}
if (is_chrome_branded) {
sources -= [
# These tests depend on single process mode, which is disabled in
# official builds.
"../renderer/safe_browsing/phishing_classifier_browsertest.cc",
"../renderer/safe_browsing/phishing_classifier_delegate_browsertest.cc",
"../renderer/safe_browsing/phishing_dom_feature_extractor_browsertest.cc",
]
}
if (!enable_autofill_dialog || is_android || is_ios) {
deps -= [ "//third_party/libaddressinput" ]
}
if (enable_remoting) {
sources += rebase_path(
chrome_tests_gypi_values.chrome_browser_tests_remoting_sources,
".",
"//chrome")
#deps += [ "//remoting:remoting_webapp" ] TODO(GYP)
}
if (use_x11) {
deps += [ "//tools/xdisplaycheck" ]
}
}
# TODO(GYP): Delete this after we've converted everything to GN.
# The _run targets exist only for compatibility w/ GYP.
group("sync_integration_tests_run") {
testonly = true
deps = [
":sync_integration_tests",
]
}
test("sync_integration_tests") {
sources =
rebase_path(chrome_tests_gypi_values.sync_integration_tests_sources,
".",
"//chrome")
data = [
"//chrome/test/data/sync/",
"//net/tools/testserver/",
"//sync/tools/testserver/",
"//third_party/pyftpdlib/",
"//third_party/pywebsocket/",
"//third_party/tlslite/",
"$root_out_dir/pyproto/",
"$root_out_dir/resources.pak",
]
if (is_linux || is_win) {
data += [
"$root_out_dir/chrome_100_percent.pak",
"$root_out_dir/chrome_material_100_percent.pak",
"$root_out_dir/locales/en-US.pak",
]
}
# TODO(phajdan.jr): Only temporary, to make transition easier.
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
deps = [
":sync_integration_test_support",
":test_support",
":test_support_ui",
"//base/allocator",
"//chrome:packed_extra_resources",
"//chrome:packed_resources",
"//chrome:resources",
"//chrome:strings",
"//chrome/common",
"//chrome/renderer",
"//crypto:platform",
"//sync",
"//testing/gmock",
"//testing/gtest",
"//third_party/WebKit/public:blink",
"//third_party/icu",
"//third_party/leveldatabase",
]
data_deps = [
"//third_party/mesa:osmesa",
]
if (cld_version == 2) {
# Language detection is irrelevant to sync, so it can depend on any
# implementation for CLD2. Dynamic is smaller, so go with dynamic.
deps += [ "//third_party/cld_2:cld2_dynamic" ]
}
if (is_mac) {
# Dictionary sync is disabled on Mac.
sources -= [
"../browser/sync/test/integration/multiple_client_dictionary_sync_test.cc",
"../browser/sync/test/integration/single_client_dictionary_sync_test.cc",
"../browser/sync/test/integration/two_client_dictionary_sync_test.cc",
]
# The sync_integration_tests do not run on mac without this flag.
# Search for comments about "xcode_settings" elsewhere in this file.
ldflags = [ "-Wl,-ObjC" ]
}
if (is_win) {
deps += [
"//chrome:other_version",
"//third_party/wtl",
"//ui/resources",
]
configs -= [ "//build/config/win:default_incremental_linking" ]
configs +=
[ "//build/config/win:default_large_module_incremental_linking" ]
} else {
sources -= [ "../app/chrome_version.rc.version" ]
}
if (!is_chromeos) {
sources -= [
"../browser/sync/test/integration/single_client_wifi_credentials_sync_test.cc",
"../browser/sync/test/integration/two_client_wifi_credentials_sync_test.cc",
]
}
if (toolkit_views) {
deps += [ "//ui/views" ]
}
if (enable_basic_printing || enable_print_preview) {
deps += [ "//printing" ]
}
if (!enable_app_list) {
sources -= [
"../browser/sync/test/integration/single_client_app_list_sync_test.cc",
"../browser/sync/test/integration/two_client_app_list_sync_test.cc",
]
}
if (!enable_supervised_users) {
sources -= [ "../browser/sync/test/integration/single_client_supervised_user_settings_sync_test.cc" ]
}
}
test("sync_performance_tests") {
sources =
rebase_path(chrome_tests_gypi_values.sync_performance_tests_sources,
".",
"//chrome")
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
deps = [
":sync_integration_test_support",
":test_support_ui",
"//base/allocator",
"//crypto:platform",
"//sync",
"//testing/gmock",
"//testing/gtest",
]
if (cld_version == 2) {
# Language detection is irrelevant to sync, so it can depend on any
# implementation for CLD2. Dynamic is smaller, so go with dynamic.
deps += [ "//third_party/cld_2:cld2_dynamic" ]
}
if (is_mac) {
# Dictionary sync is disabled on Mac.
sources -= [ "../browser/sync/test/integration/performance/dictionary_sync_perf_test.cc" ]
# The sync_performance_tests do not run on mac without this flag.
# Search for comments about "xcode_settings" elsewhere in this file.
ldflags = [ "-Wl,-ObjC" ]
}
if (is_win) {
deps += [
"//chrome:other_version",
"//chrome/installer/util:strings",
"//third_party/wtl",
"//ui/resources",
]
configs -= [ "//build/config/win:default_incremental_linking" ]
configs +=
[ "//build/config/win:default_large_module_incremental_linking" ]
} else {
sources -= [ "../app/chrome_version.rc.version" ]
}
if (toolkit_views) {
deps += [ "//ui/views" ]
}
}
# Executable to measure time to load libraries.
test("load_library_perf_tests") {
sources = [
"../browser/load_library_perf_test.cc",
]
deps = [
"//base/test:test_support_perf",
"//testing/gtest",
"//testing/perf",
"//third_party/widevine/cdm:version_h",
]
if (enable_pepper_cdms) {
data_deps = [
"//media/cdm/ppapi:clearkeycdmadapter",
"//third_party/widevine/cdm:widevinecdmadapter",
]
}
}
}
js2gtest("unit_tests_js") {
test_type = "unit"
sources = rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_gtestjs_sources,
".",
"//chrome")
extra_js_files =
rebase_path(chrome_tests_unit_gypi_values.chrome_unit_tests_js_sources,
".",
"//chrome")
if (is_chromeos) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_chromeos_gtestjs_sources,
".",
"//chrome")
extra_js_files += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_chromeos_js_sources,
".",
"//chrome")
}
}
# TODO(GYP): Delete this after we've converted everything to GN.
# The _run targets exist only for compatibility w/ GYP.
group("unit_tests_run") {
testonly = true
deps = [
":unit_tests",
]
}
test("unit_tests") {
sources = rebase_path(chrome_tests_unit_gypi_values.chrome_unit_tests_sources,
".",
"//chrome")
configs += [ "//build/config:precompiled_headers" ]
data = [
"data/",
"//base/test/data/",
"//chrome/third_party/mock4js/",
"//components/test/data/",
"//extensions/test/data/",
"//google_apis/test/data/",
"//net/data/",
"//net/tools/testserver/",
"//third_party/accessibility-audit/axs_testing.js",
"//third_party/chaijs/chai.js",
"//third_party/hunspell_dictionaries/",
"//third_party/pyftpdlib/",
"//third_party/pywebsocket/",
"//third_party/tlslite/",
"//third_party/zlib/google/test/data/",
"//tools/metrics/histograms/histograms.xml",
"$root_out_dir/pyproto/google/",
"$root_out_dir/test_data/chrome/browser/resources/google_now/",
"$root_out_dir/test_data/chrome/browser/resources/print_preview/",
"$root_out_dir/test_data/chrome/renderer/resources/extensions/",
"$root_out_dir/test_data/ui/webui/",
"$root_out_dir/resources.pak",
]
if (is_android || is_linux || is_win) {
data += [
"$root_out_dir/chrome_100_percent.pak",
"$root_out_dir/locales/en-US.pak",
]
}
if (is_linux || is_win) {
data += [ "$root_out_dir/chrome_material_100_percent.pak" ]
}
defines = []
deps = [
# NOTE: New depndencies should generally be added in the OS!="ios"
# dependencies block below, rather than here.
# Unit tests should only depend on:
# 1) everything that the chrome binaries depend on:
"//chrome:browser_dependencies",
"//chrome:child_dependencies",
# 2) test-specific support libraries:
":test_support_unit",
"//base/test:test_support",
"//chrome/test:test_support",
"//components/content_settings/core/test:test_support",
"//components/resources",
"//content/public/app:both",
"//content/test:test_support",
"//crypto:platform",
"//crypto:test_support",
"//net",
"//net:test_support",
"//sync:test_support_sync_api",
"//sync:test_support_sync_core",
"//sync:test_support_sync_internal_api",
"//testing/gmock",
"//testing/gtest",
# 3) anything tests directly depend on
"//base/allocator",
"//chrome:resources",
"//chrome:strings",
"//components/version_info:generate_version_info",
"//courgette:courgette_lib",
"//google_apis",
"//skia",
"//third_party/cacheinvalidation",
"//third_party/icu",
"//third_party/libxml",
"//ui/base:test_support",
"//ui/gfx:test_support",
"//ui/resources",
]
data_deps = []
# TODO(GYP) Windows stuff
# ['incremental_chrome_dll==1', {
# 'UseLibraryDependencyInputs': "true",
if (!is_ios) {
deps += [
"//components/autofill/content/browser/wallet:test_support",
"//components/autofill/content/renderer:test_support",
"//components/data_reduction_proxy/core/browser:test_support",
"//components/data_use_measurement/core",
"//components/metrics/proto",
"//components/safe_browsing_db",
"//components/safe_json:test_support",
"//components/strings",
"//components/webdata_services:test_support",
"//content/app/resources",
"//device/bluetooth:mocks",
"//device/core:mocks",
"//gpu:test_support",
"//media:test_support",
#'../ppapi/ppapi_internal.gyp:ppapi_unittest_shared', TODO(GYP)
"//third_party/leveldatabase",
"//third_party/libaddressinput",
"//third_party/libjingle",
"//third_party/libphonenumber",
"//third_party/webrtc/modules/desktop_capture",
"//tools/json_schema_compiler/test",
"//ui/gl",
"//v8",
]
}
if (is_android) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_offline_pages_sources,
".",
"//chrome")
deps += [
":unit_tests_java",
"//v8:v8_external_startup_data_assets",
]
deps -= [ "//third_party/libaddressinput" ]
android_manifest =
"//chrome/test/android/unit_tests_apk/AndroidManifest.xml"
isolate_file = "../unit_tests.isolate"
# Some android targets still depend on --gc-sections to link.
# TODO: remove --gc-sections for Debug builds (crbug.com/159847).
ldflags = [ "-Wl,--gc-sections" ]
} else {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_non_android_sources,
".",
"//chrome")
sources -=
[ "../browser/download/download_request_infobar_delegate_unittest.cc" ]
}
if (!is_ios) {
deps += [ ":unit_tests_js" ]
if (!is_android) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_non_mobile_sources,
".",
"//chrome")
}
}
if (is_ios || is_chromeos) {
sources -= [ "../browser/signin/chrome_signin_status_metrics_provider_delegate_unittest.cc" ]
}
if (enable_background) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_background_sources,
".",
"//chrome")
}
if (enable_spellcheck) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_spellchecker_sources,
".",
"//chrome")
if (is_mac && !is_ios) {
deps += [ "//third_party/hunspell" ]
}
if (is_android) {
sources -= [
"../common/spellcheck_common_unittest.cc",
"../renderer/spellchecker/spellcheck_multilingual_unittest.cc",
"../renderer/spellchecker/spellcheck_provider_hunspell_unittest.cc",
"../renderer/spellchecker/spellcheck_unittest.cc",
]
}
}
if (enable_one_click_signin) {
sources += [
"../browser/ui/sync/one_click_signin_sync_observer_unittest.cc",
"../browser/ui/sync/one_click_signin_sync_starter_unittest.cc",
]
}
if (enable_extensions) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_extensions_sources,
".",
"//chrome")
deps += [
"//chrome/common/extensions/api",
"//components/audio_modem:test_support",
"//device/usb:mocks",
"//extensions:extensions_resources",
"//extensions/strings",
]
if (enable_configuration_policy) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_extensions_policy_sources,
".",
"//chrome")
}
if (!is_chromeos) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_extensions_non_chromeos_sources,
".",
"//chrome")
}
}
if (use_ash) {
sources +=
rebase_path(chrome_tests_unit_gypi_values.chrome_unit_tests_ash_sources,
".",
"//chrome")
deps += [
"//ash:test_support",
"//ash/resources",
"//ash/strings",
]
# We eventually want to compile both in Win Aura builds, see
# http://crbug.com/155545.
if (!is_win) {
sources -= [ "../browser/ui/window_sizer/window_sizer_unittest.cc" ]
}
}
if (use_aura) {
sources += [ "//ui/views/controls/webview/webview_unittest.cc" ]
deps += [
"//ui/aura:test_support",
"//ui/views:test_support",
"//ui/wm",
]
}
if (!is_chromeos && is_linux) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_desktop_linux_sources,
".",
"//chrome")
}
if (!is_chromeos && !use_ozone && is_linux) {
deps += [
"//build/linux:gio",
"//chrome/browser/ui/libgtk2ui",
]
}
if (enable_task_manager) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_task_manager_sources,
".",
"//chrome")
}
if (enable_mdns) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_mdns_sources,
".",
"//chrome")
}
if (enable_service_discovery) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_service_discovery_sources,
".",
"//chrome")
}
if (enable_configuration_policy) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_configuration_policy_sources,
".",
"//chrome")
if (is_chromeos) {
sources -=
[ "../browser/policy/cloud/user_policy_signin_service_unittest.cc" ]
} else if (is_android) {
sources -= [ "../browser/policy/policy_path_parser_unittest.cc" ]
}
if (!is_android && !is_ios && !is_chromeos) {
sources += [ "../browser/net/disk_cache_dir_policy_handler_unittest.cc" ]
}
if (!is_android && !is_ios) {
sources +=
[ "../browser/download/download_dir_policy_handler_unittest.cc" ]
deps += [ "//components/bubble:test_support" ]
}
}
if (enable_web_speech) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_speech_sources,
".",
"//chrome")
}
if (enable_notifications) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_notifications_sources,
".",
"//chrome")
if (is_android) {
sources -= [
# Android does not use the Message Center notification system.
"../browser/notifications/message_center_notifications_unittest.cc",
"../browser/notifications/message_center_settings_controller_unittest.cc",
]
}
}
if (safe_browsing_mode == 1) {
# TODO(sgurun): enable tests for safe_browsing==2.
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_full_safe_browsing_sources + chrome_tests_unit_gypi_values.chrome_unit_tests_shared_safe_browsing_sources,
".",
"//chrome")
deps += [ ":test_proto" ]
} else if (safe_browsing_mode == 2) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_mobile_safe_browsing_sources + chrome_tests_unit_gypi_values.chrome_unit_tests_shared_safe_browsing_sources,
".",
"//chrome")
}
if (enable_autofill_dialog && !is_android) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_autofill_dialog_sources,
".",
"//chrome")
}
if (enable_plugins) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_plugins_sources,
".",
"//chrome")
}
if (enable_print_preview) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_print_preview_sources,
".",
"//chrome")
}
if (enable_media_router) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_media_router_sources,
".",
"//chrome")
deps += [ "//chrome/browser/media/router:test_support" ]
if (!is_android) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_media_router_non_android_sources,
".",
"//chrome")
}
}
if (enable_captive_portal_detection) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_captive_portal_sources,
".",
"//chrome")
}
if (enable_session_service) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_session_service_sources,
".",
"//chrome")
}
if (enable_webrtc) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_webrtc_sources,
".",
"//chrome")
}
if (is_chromeos) {
deps += [ "//chrome/browser/chromeos:unit_tests" ]
sources -= [ "../browser/signin/signin_manager_unittest.cc" ]
}
if (use_x11) {
deps += [ "//ui/events/devices" ]
data_deps += [ "//tools/xdisplaycheck" ]
} else {
sources -= [ "../browser/password_manager/password_store_x_unittest.cc" ]
}
if (cld_version == 2) {
# Unit tests should be independent of the CLD2 access mechanism, just use
# static for simplicity.
deps += [ "//third_party/cld_2:cld2_static" ]
}
if (is_desktop_linux && current_cpu == "x64") {
# Only add this test for 64 bit builds because otherwise we need the 32
# bit library on 64 bit systems when running this test.
sources +=
[ "../browser/password_manager/native_backend_gnome_x_unittest.cc" ]
configs += [
"//chrome/browser:gnome_keyring",
"//chrome/browser:gnome_keyring_direct",
]
}
if (is_linux && !is_chromeos) {
sources +=
[ "../browser/password_manager/native_backend_libsecret_unittest.cc" ]
}
if (is_linux && use_aura) {
deps += [
"//dbus",
"//dbus:test_support",
"//ui/aura:test_support",
]
}
if (is_linux && is_chrome_branded && current_cpu == "x86") {
ldflags = [ "-Wl,--strip-debug" ]
}
if (is_mac) {
sources +=
rebase_path(chrome_tests_unit_gypi_values.chrome_unit_tests_mac_sources,
".",
"//chrome")
sources -= [
# This tests the function GetSpellCheckLanguages which is not used on
# Mac.
"../browser/spellchecker/spellcheck_service_unittest.cc",
"../browser/ui/tests/ui_gfx_image_unittest.cc",
# This tests Chrome's spellchecker which Mac doesn't use.
"../renderer/spellchecker/spellcheck_multilingual_unittest.cc",
"../renderer/spellchecker/spellcheck_provider_hunspell_unittest.cc",
"../tools/convert_dict/convert_dict_unittest.cc",
]
# The test fetches resources which means Mac need the app bundle to exist
# on disk so it can pull from it.
deps += [
"//third_party/google_toolbox_for_mac",
"//third_party/ocmock",
]
# TODO(mark): We really want this for all non-static library targets,
# but when we tried to pull it up to the common.gypi level, it broke
# other things like the ui and startup tests. *shrug*
ldflags = [ "-Wl,-ObjC" ]
}
if (is_mac || is_android) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_mac_android_sources,
".",
"//chrome")
}
if (is_android) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_android_sources,
".",
"//chrome")
}
if (!is_mac && !is_ios) {
deps += [
"//chrome:packed_extra_resources",
"//chrome:packed_resources",
"//chrome/tools/convert_dict:lib",
"//third_party/hunspell",
]
}
if (is_win || is_mac) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_win_mac_sources,
".",
"//chrome")
}
if (is_win || is_mac || is_chromeos) {
sources += [ "../common/extensions/api/networking_private/networking_private_crypto_unittest.cc" ]
}
if (enable_rlz_support) {
sources += [ "../browser/rlz/chrome_rlz_tracker_delegate_unittest.cc" ]
deps += [
"//chrome/browser:rlz",
"//components/rlz",
"//rlz:test_support",
]
}
if (is_win) {
# The PDB gets too large for incremental linking.
configs -= [ "//build/config/win:default_incremental_linking" ]
configs += [ "//build/config/win:no_incremental_linking" ]
sources +=
rebase_path(chrome_tests_unit_gypi_values.chrome_unit_tests_win_sources,
".",
"//chrome")
deps += [
"//chrome:other_version",
"//chrome/installer/util:strings",
"//chrome_elf:blacklist_test_dll_1",
"//third_party/iaccessible2",
"//third_party/isimpledom",
"//third_party/wtl",
"//ui/resources",
]
data_deps += [
"//chrome/browser/safe_browsing/incident_reporting/verifier_test:verifier_test_dll_1",
"//chrome/browser/safe_browsing/incident_reporting/verifier_test:verifier_test_dll_2",
]
libs = [
"comsupp.lib",
"oleacc.lib",
"rpcrt4.lib",
"urlmon.lib",
"winmm.lib",
]
if (!is_chrome_branded) {
sources -= [ "../browser/google/google_update_win_unittest.cc" ]
}
}
if (is_android || is_ios) {
sources -= [
"../browser/devtools/device/cast_device_provider_unittest.cc",
"../browser/devtools/device/webrtc/devtools_bridge_instances_request_unittest.cc",
"../browser/ui/bookmarks/bookmark_ui_utils_desktop_unittest.cc",
"../browser/ui/sync/sync_promo_ui_unittest.cc",
]
}
if (!is_android && !is_chromeos) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_non_android_or_chromeos_sources,
".",
"//chrome")
}
if (enable_themes) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_themes_sources,
".",
"//chrome")
}
if (toolkit_views) {
deps += [
"//components/web_modal:test_support",
"//ui/views",
"//ui/views:test_support",
]
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_views_sources,
".",
"//chrome")
if (!is_chromeos && (!is_mac || mac_views_browser)) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_views_non_chromeos_sources,
".",
"//chrome")
}
if (!is_mac) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_views_non_mac_sources,
".",
"//chrome")
}
}
if (!is_android && (use_nss_certs || use_openssl_certs)) {
sources += [ "../common/net/x509_certificate_model_unittest.cc" ]
}
if (enable_supervised_users) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_supervised_user_sources,
".",
"//chrome")
}
if (enable_supervised_users && !is_android && !is_ios) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_supervised_user_legacy_sources,
".",
"//chrome")
}
if (safe_browsing_mode == 1 && enable_extensions) {
sources += [ "../browser/extensions/blacklist_unittest.cc" ]
}
if (cld_version == 1) {
sources += [ "//third_party/cld/encodings/compact_lang_det/compact_lang_det_unittest_small.cc" ]
defines += [ "CLD_WINDOWS" ]
deps += [ "//third_party/cld" ]
}
if (enable_app_list) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_app_list_sources,
".",
"//chrome")
deps += [ "//ui/app_list:test_support" ]
}
if (enable_app_list && is_chromeos) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_app_list_chromeos_sources,
".",
"//chrome")
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_unit_tests_app_list_chromeos_arc_sources,
".",
"//chrome")
deps += [ "//components/arc:arc_test_support" ]
}
if (enable_plugins && !enable_plugin_installation) {
sources -= [ "../browser/plugins/plugin_installer_unittest.cc" ]
}
}
if (is_win || (is_linux && !is_chromeos)) {
# TODO(GYP): Figure out which of these work and are needed on other
# platforms.
test("chrome_app_unittests") {
sources = [
"../app/chrome_watcher_client_unittest_win.cc",
"../app/chrome_watcher_client_win.cc",
"../app/chrome_watcher_command_line_unittest_win.cc",
"../app/chrome_watcher_command_line_win.cc",
"../app/delay_load_hook_unittest_win.cc",
"../app/delay_load_hook_win.cc",
"../app/delay_load_hook_win.h",
"../app/resources/resources_unittest.cc",
"../app/signature_validator_win.cc",
"../app/signature_validator_win.h",
"../app/signature_validator_win_unittest.cc",
"../common/crash_keys.cc",
"../common/crash_keys.h",
]
deps = [
":test_support",
"//base/allocator",
"//base/test:run_all_unittests",
"//base/test:test_support",
"//breakpad:client",
"//chrome/browser",
"//chrome/child",
"//components/crash/core/common",
"//components/flags_ui:switches",
]
if (cld_version == 2) {
# Use whatever CLD2 data access mode that the
# application embedder is using.
deps += [ "//third_party/cld_2:cld2_platform_impl" ]
}
}
test("performance_browser_tests") {
sources =
rebase_path(chrome_tests_gypi_values.performance_browser_tests_sources,
".",
"//chrome")
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
deps = [
":test_support",
":test_support_ui",
"//base",
"//base:i18n",
"//base/allocator",
"//base/test:test_support",
"//chrome/browser",
"//chrome/renderer",
"//components/about_handler",
"//components/autofill/content/browser/wallet:test_support",
"//components/autofill/content/renderer:test_support",
"//media/cast:test_support",
"//testing/gmock",
"//testing/gtest",
"//testing/perf",
]
if (is_win) {
configs -= [ "//build/config/win:default_incremental_linking" ]
configs +=
[ "//build/config/win:default_large_module_incremental_linking" ]
} else {
sources -= [
"../app/chrome_command_ids.h",
#"../app/chrome_dll.rc",
#"../app/chrome_dll_resource.h",
"../app/chrome_version.rc.version",
]
}
if (!is_mac) {
sources -= [ "perf/mach_ports_performancetest.cc" ]
}
if (cld_version == 2) {
# Use whatever CLD2 data access mode that the
# application embedder is using.
deps += [ "//third_party/cld_2:cld2_platform_impl" ]
}
}
}
source_set("test_support_unit") {
testonly = true
sources = [
"../browser/sync/glue/session_sync_test_helper.cc",
"../browser/sync/glue/session_sync_test_helper.h",
"base/run_all_unittests.cc",
]
public_deps = [
":test_support",
"//base",
"//chrome:resources",
"//chrome:strings",
"//chrome/browser",
"//chrome/common",
"//mojo/environment:chromium",
"//third_party/mojo/src/mojo/edk/system",
]
if (!is_android && use_ash) {
sources += rebase_path(
chrome_tests_unit_gypi_values.chrome_test_support_unit_ash_sources,
".",
"//chrome")
}
}
if (is_android) {
android_library("unit_tests_java") {
DEPRECATED_java_in_dir = "//chrome/test/android/unit_tests_apk/src"
deps = [
"//base:base_java",
"//chrome/android:chrome_java",
"//content/public/android:content_java",
]
}
}