# 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/loader:nacl_helper", "//components/nacl/loader: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", "data/webui/settings/bluetooth_page_browsertest_chromeos.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", ] } 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/tests/extensions", ] 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/loader:nacl_helper", "//components/nacl/loader: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_linux && !is_component_build) { # Set rpath to find the CDM adapter even in a non-component build. configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ] } 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", "//components/offline_pages:test_support", "//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", ] if (mac_views_browser) { # TODO(tapted): Add chrome_unit_tests_views_non_mac_sources. } else { sources += rebase_path( chrome_tests_unit_gypi_values.chrome_unit_tests_cocoa_sources, ".", "//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 (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", ] } }