| # 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/features.gni") |
| import("//build/config/ui.gni") |
| import("//printing/features/features.gni") |
| import("//rlz/features/features.gni") |
| import("//testing/test.gni") |
| import("//tools/grit/repack.gni") |
| |
| if (is_android) { |
| import("//build/config/android/rules.gni") |
| } |
| |
| if (is_ios) { |
| import("//ios/build/config.gni") |
| } |
| |
| if (is_ios) { |
| bundle_data("components_tests_pak_bundle_data") { |
| public_deps = [ |
| ":components_tests_pak", |
| "//ui/resources:ui_test_pak", |
| ] |
| sources = [ |
| "$root_out_dir/components_tests_resources.pak", |
| "$root_out_dir/ui_test.pak", |
| ] |
| outputs = [ |
| "{{bundle_resources_dir}}/{{source_file_part}}", |
| ] |
| } |
| } |
| |
| # To add a unit test to this target, make a "unit_test" source_set in your |
| # component (it's important to use a source_set instead of a static library or |
| # no tests will run) and add a reference here. You can add more than one unit |
| # test target if convenient. |
| test("components_unittests") { |
| sources = [ |
| "test/run_all_unittests.cc", |
| ] |
| |
| if (is_android || is_linux || is_mac || is_win) { |
| data = [ |
| "test/data/", |
| |
| # TODO(dpranke): Remove the next two lines after GN has rolled to 339778. |
| "$root_out_dir/components_tests_resources.pak", |
| "$root_out_dir/ui_test.pak", |
| ] |
| } |
| |
| if (is_android) { |
| enable_multidex = true |
| } |
| |
| # Add only ":unit_tests" dependencies here. If your tests have dependencies |
| # (this would at least include the component itself), they should be on the |
| # test source set and not here. |
| |
| deps = [ |
| "//base", |
| "//components/autofill/core/browser:unit_tests", |
| "//components/autofill/core/common:unit_tests", |
| "//components/base32:unit_tests", |
| "//components/bookmarks/browser:unit_tests", |
| "//components/bookmarks/managed:unit_tests", |
| "//components/browser_sync:unit_tests", |
| "//components/browsing_data/core:unit_tests", |
| "//components/bubble:unit_tests", |
| "//components/captive_portal:unit_tests", |
| "//components/client_update_protocol:unit_tests", |
| "//components/cloud_devices/common:unit_tests", |
| "//components/component_updater:unit_tests", |
| "//components/content_settings/core/browser:unit_tests", |
| "//components/content_settings/core/common:unit_tests", |
| "//components/crx_file:unit_tests", |
| "//components/data_usage/core:unit_tests", |
| "//components/device_event_log:unit_tests", |
| "//components/dom_distiller/core:unit_tests", |
| "//components/favicon/core:unit_tests", |
| "//components/favicon_base:unit_tests", |
| "//components/flags_ui:unit_tests", |
| "//components/gcm_driver:unit_tests", |
| "//components/gcm_driver/crypto:unit_tests", |
| "//components/google/core/browser:unit_tests", |
| "//components/grpc_support/test:unit_tests", |
| "//components/history/core/browser:unit_tests", |
| "//components/history/core/common:unit_tests", |
| "//components/image_fetcher:unit_tests", |
| "//components/json_schema:unit_tests", |
| "//components/keyed_service/core:unit_tests", |
| "//components/language_usage_metrics:unit_tests", |
| "//components/leveldb_proto:unit_tests", |
| "//components/login:unit_tests", |
| "//components/memory_pressure:unit_tests", |
| "//components/metrics:unit_tests", |
| "//components/mime_util:unit_tests", |
| "//components/net_log:unit_tests", |
| "//components/network_session_configurator:unit_tests", |
| "//components/network_time:unit_tests", |
| "//components/ntp_snippets:unit_tests", |
| "//components/ntp_tiles:unit_tests", |
| "//components/offline_pages/core:unit_tests", |
| "//components/offline_pages/core/background:unit_tests", |
| "//components/offline_pages/core/downloads:unit_tests", |
| "//components/offline_pages/core/request_header:unit_tests", |
| "//components/omnibox/browser:unit_tests", |
| "//components/open_from_clipboard:unit_tests", |
| "//components/os_crypt:unit_tests", |
| "//components/password_manager/core/browser:unit_tests", |
| "//components/password_manager/core/common:unit_tests", |
| "//components/password_manager/sync/browser:unit_tests", |
| "//components/payments:unit_tests", |
| "//components/physical_web/data_source:unit_tests", |
| "//components/precache/core:unit_tests", |
| "//components/prefs:unit_tests", |
| "//components/previews/core:unit_tests", |
| "//components/proxy_config:unit_tests", |
| "//components/query_parser:unit_tests", |
| "//components/rappor:unit_tests", |
| "//components/search:unit_tests", |
| "//components/search_engines:unit_tests", |
| "//components/search_provider_logos:unit_tests", |
| "//components/security_state/core:unit_tests", |
| "//components/sessions:unit_tests", |
| "//components/signin/core/browser:unit_tests", |
| "//components/ssl_config:unit_tests", |
| "//components/ssl_errors:unit_tests", |
| "//components/subresource_filter/core/browser:unit_tests", |
| "//components/subresource_filter/core/common:unit_tests", |
| "//components/suggestions:unit_tests", |
| "//components/supervised_user_error_page:unit_tests", |
| "//components/sync:unit_tests", |
| "//components/sync_bookmarks:unit_tests", |
| "//components/sync_preferences:unit_tests", |
| "//components/sync_sessions:unit_tests", |
| "//components/task_scheduler_util/common:unit_tests", |
| "//components/test:test_support", |
| "//components/translate/core/browser:unit_tests", |
| "//components/translate/core/common:unit_tests", |
| "//components/translate/core/language_detection:unit_tests", |
| "//components/ukm:unit_tests", |
| "//components/undo:unit_tests", |
| "//components/update_client:unit_tests", |
| "//components/upload_list:unit_tests", |
| "//components/url_formatter:unit_tests", |
| "//components/url_matcher:unit_tests", |
| "//components/user_prefs/tracked:unit_tests", |
| "//components/variations:unit_tests", |
| "//components/variations/service:unit_tests", |
| "//components/web_resource:unit_tests", |
| "//components/webdata/common:unit_tests", |
| ] |
| |
| if (enable_nacl) { |
| deps += [ "//components/nacl/browser:unit_tests" ] |
| } |
| |
| if (is_ios) { |
| deps += [ |
| "//components/reading_list/ios:unit_tests", |
| "//components/signin/ios/browser:unit_tests", |
| "//components/translate/ios/browser:unit_tests", |
| ] |
| } else { # !iOS |
| deps += [ |
| "//components/autofill/content/browser:unit_tests", |
| "//components/autofill/content/common:unit_tests", |
| "//components/autofill/content/renderer:unit_tests", |
| "//components/cast_certificate:unit_tests", |
| "//components/certificate_reporting:unit_tests", |
| "//components/certificate_transparency:unit_tests", |
| "//components/contextual_search:unit_tests", |
| "//components/crash/content/app:unit_tests", |
| "//components/crash/core/common:unit_tests", |
| "//components/data_reduction_proxy/content/browser:unit_tests", |
| "//components/data_reduction_proxy/core/browser:unit_tests", |
| "//components/data_reduction_proxy/core/common:unit_tests", |
| "//components/data_use_measurement/core:unit_tests", |
| "//components/discardable_memory/common:unit_tests", |
| "//components/discardable_memory/service:unit_tests", |
| "//components/display_compositor:unit_tests", |
| "//components/dom_distiller/content/browser:unit_tests", |
| "//components/domain_reliability:unit_tests", |
| "//components/error_page/renderer:unit_tests", |
| "//components/favicon/content:unit_tests", |
| "//components/gcm_driver/instance_id:unit_tests", |
| "//components/guest_view/browser:unit_tests", |
| "//components/history/content/browser:unit_tests", |
| "//components/invalidation/impl:unit_tests", |
| "//components/keyed_service/content:unit_tests", |
| "//components/link_header_util:unit_tests", |
| "//components/navigation_interception:unit_tests", |
| "//components/network_hints/renderer:unit_tests", |
| "//components/offline_pages/content/background_loader:unit_tests", |
| "//components/packed_ct_ev_whitelist:unit_tests", |
| "//components/password_manager/content/browser:unit_tests", |
| "//components/policy/core/browser:unit_tests", |
| "//components/policy/core/common:unit_tests", |
| "//components/precache/content:unit_tests", |
| "//components/safe_browsing_db:unit_tests", |
| "//components/safe_json:unit_tests", |
| "//components/security_state/content:unit_tests", |
| "//components/spellcheck/browser:unit_tests", |
| "//components/spellcheck/renderer:unit_tests", |
| "//components/subresource_filter/content/browser:unit_tests", |
| "//components/subresource_filter/content/common:unit_tests", |
| "//components/subresource_filter/content/renderer:unit_tests", |
| "//components/tracing:unit_tests", |
| "//components/visitedlink/test:unit_tests", |
| "//components/wallpaper:unit_tests", |
| "//components/web_cache/browser:unit_tests", |
| "//components/webcrypto:unit_tests", |
| "//components/zoom:unit_tests", |
| ] |
| |
| data_deps = [ |
| ":components_tests_pak", |
| "//third_party/mesa:osmesa", |
| "//ui/resources:ui_test_pak", |
| ] |
| } # iOS/!iOS |
| |
| if (is_ios) { |
| deps += [ ":components_tests_pak_bundle_data" ] |
| } |
| |
| if (is_mac || is_linux) { |
| data_deps += [ "//content/shell:pak" ] |
| } |
| |
| if (is_android) { |
| deps += [ |
| "//components/gcm_driver/instance_id:test_support", |
| "//components/gcm_driver/instance_id/android:instance_id_driver_java", |
| "//components/gcm_driver/instance_id/android:instance_id_driver_test_support_java", |
| "//components/invalidation/impl", |
| "//components/invalidation/impl:java", |
| "//components/policy/android:policy_java", |
| "//components/safe_json", |
| "//components/safe_json/android:safe_json_java", |
| "//components/signin/core/browser", |
| "//components/signin/core/browser/android:java", |
| "//components/spellcheck/browser/android:java", |
| "//components/variations/android:variations_java", |
| "//components/web_restrictions:test_support", |
| "//components/web_restrictions:test_support_java", |
| "//components/web_restrictions:unit_tests", |
| "//content/public/android:content_java", |
| "//content/public/browser", |
| "//net", |
| "//ui/android:ui_java", |
| "//ui/base", |
| "//ui/gfx", |
| "//v8:v8_external_startup_data_assets", |
| ] |
| } |
| |
| # Desktop-only deps. |
| if (!is_android && !is_ios) { |
| deps += [ |
| "//components/cryptauth:unit_tests", |
| "//components/feedback:unit_tests", |
| "//components/proximity_auth:unit_tests", |
| "//components/storage_monitor:unit_tests", |
| "//components/web_modal:unit_tests", |
| ] |
| } |
| |
| if (enable_rlz_support) { |
| deps += [ "//components/rlz:unit_tests" ] |
| } |
| |
| if (is_chromeos) { |
| deps += [ |
| "//components/arc:unit_tests", |
| "//components/ownership:unit_tests", |
| "//components/pairing:unit_tests", |
| "//components/sync_wifi:unit_tests", |
| "//components/timers:unit_tests", |
| "//components/user_manager:unit_tests", |
| ] |
| } |
| |
| if (toolkit_views) { |
| deps += [ "//components/constrained_window:unit_tests" ] |
| } |
| |
| if (is_win) { |
| deps += [ "//components/browser_watcher:unit_tests" ] |
| } |
| |
| if (enable_basic_printing || enable_print_preview) { |
| deps += [ |
| "//components/printing/browser", |
| "//components/printing/common", |
| "//components/printing/renderer", |
| ] |
| } |
| |
| if (safe_browsing_mode == 2) { |
| deps += [ "//components/safe_browsing_db:unit_tests_mobile" ] |
| } |
| |
| if (is_ios) { |
| assert_no_deps = ios_assert_no_deps |
| } |
| } |
| |
| repack("components_tests_pak") { |
| sources = [ |
| "$root_gen_dir/components/components_resources.pak", |
| "$root_gen_dir/components/strings/components_strings_en-US.pak", |
| ] |
| |
| output = "$root_out_dir/components_tests_resources.pak" |
| deps = [ |
| "//components/resources", |
| "//components/strings", |
| ] |
| |
| if (is_chrome_branded) { |
| sources += [ "${root_gen_dir}/components/strings/components_google_chrome_strings_en-US.pak" ] |
| } else { |
| sources += [ "${root_gen_dir}/components/strings/components_chromium_strings_en-US.pak" ] |
| } |
| } |
| |
| if (is_android) { |
| android_assets("components_browsertests_assets") { |
| testonly = true |
| sources = [ |
| "$root_out_dir/components_tests_resources.pak", |
| "$root_out_dir/content_shell.pak", |
| ] |
| deps = [ |
| ":components_tests_pak", |
| "//content/shell:pak", |
| "//third_party/icu:icu_assets", |
| "//v8:v8_external_startup_data_assets", |
| ] |
| } |
| |
| android_library("components_browsertests_java") { |
| testonly = true |
| deps = [ |
| ":components_browsertests_resources", |
| "//base:base_java", |
| "//base:base_java_test_support", |
| "//content/public/test/android:content_java_test_support", |
| "//content/shell/android:content_shell_browsertests_java", |
| "//testing/android/native_test:native_test_java", |
| ] |
| java_files = [ |
| "test/android/browsertests_apk/src/org/chromium/components_browsertests_apk/ComponentsBrowserTestsActivity.java", |
| "test/android/browsertests_apk/src/org/chromium/components_browsertests_apk/ComponentsBrowserTestsApplication.java", |
| ] |
| } |
| |
| jinja_template("components_browsertests_manifest") { |
| testonly = true |
| input = |
| "//components/test/android/browsertests_apk/AndroidManifest.xml.jinja2" |
| output = |
| "${target_gen_dir}/components_browsertests_manifest/AndroidManifest.xml" |
| } |
| |
| android_resources("components_browsertests_resources") { |
| testonly = true |
| resource_dirs = [ "//components/test/android/browsertests_apk/res" ] |
| custom_package = "org.chromium.components_browsertests_apk" |
| } |
| |
| # TODO(GYP_GONE): Delete this target once recipes no longer require it. |
| junit_binary("components_junit_tests") { |
| java_files = [ "//testing/android/junit/DummyTest.java" ] |
| } |
| } |
| |
| if (!is_ios) { |
| test("components_browsertests") { |
| defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] |
| |
| sources = [ |
| "autofill/content/browser/risk/fingerprint_browsertest.cc", |
| "autofill/content/renderer/password_form_conversion_utils_browsertest.cc", |
| "dom_distiller/content/browser/distillable_page_utils_browsertest.cc", |
| "dom_distiller/content/browser/distiller_page_web_contents_browsertest.cc", |
| "dom_distiller/content/browser/test/dom_distiller_js_browsertest.cc", |
| "password_manager/content/renderer/credential_manager_client_browsertest.cc", |
| "security_state/content/content_utils_browsertest.cc", |
| "tracing/child/child_trace_message_filter_browsertest.cc", |
| ] |
| |
| data = [ |
| "$root_out_dir/components_tests_resources.pak", |
| "$root_out_dir/content_shell.pak", |
| "test/data/", |
| "dom_distiller/core/javascript/", |
| "//third_party/dom_distiller_js/dist/test/data/", |
| ] |
| |
| deps = [ |
| "//base", |
| "//base/test:test_support", |
| "//components/autofill/content/browser", |
| "//components/autofill/content/renderer", |
| "//components/autofill/core/browser", |
| "//components/content_settings/core/common", |
| "//components/dom_distiller/content/browser", |
| "//components/dom_distiller/core", |
| "//components/dom_distiller/core:test_support", |
| "//components/password_manager/content/browser", |
| "//components/password_manager/content/renderer", |
| "//components/security_state/content", |
| "//components/security_state/core", |
| "//components/strings", |
| "//components/tracing", |
| "//content/public/browser", |
| "//content/shell:content_shell_lib", |
| "//content/test:browsertest_support", |
| "//content/test:test_support", |
| "//device/bluetooth", |
| "//device/geolocation", |
| "//ipc:test_support", |
| "//net:test_support", |
| "//printing/features", |
| "//services/service_manager/public/cpp", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//ui/base", |
| "//url", |
| ] |
| |
| data_deps = [ |
| ":components_tests_pak", |
| "//third_party/mesa:osmesa", |
| ] |
| |
| if (is_mac) { |
| data_deps += [ "//content/shell:content_shell" ] |
| data += [ "$root_out_dir/Content Shell.app/" ] |
| } |
| |
| if (is_android) { |
| sources += [ "test/android/browsertests_apk/components_browser_tests_jni_onload.cc" ] |
| sources -= [ "autofill/content/browser/risk/fingerprint_browsertest.cc" ] |
| deps += [ |
| "//content/public/test/android:layouttest_java_support", |
| "//content/test:layouttest_support", |
| "//testing/android/native_test:native_test_support", |
| ] |
| use_default_launcher = false |
| android_manifest = "${target_gen_dir}/components_browsertests_manifest/AndroidManifest.xml" |
| android_manifest_dep = ":components_browsertests_manifest" |
| deps += [ |
| ":components_browsertests_assets", |
| ":components_browsertests_java", |
| ] |
| } |
| |
| if (is_linux) { |
| # content_extractor_browsertest is a standalone content extraction tool built as |
| # a MANUAL component_browsertest. |
| sources += [ "dom_distiller/standalone/content_extractor_browsertest.cc" ] |
| deps += [ |
| "//components/leveldb_proto", |
| "//components/prefs:test_support", |
| "//components/sync_preferences:test_support", |
| ] |
| } |
| |
| if (enable_basic_printing || enable_print_preview) { |
| sources += [ "printing/test/print_web_view_helper_browsertest.cc" ] |
| deps += [ "//components/printing/test:test_support" ] |
| } |
| } |
| |
| test("components_perftests") { |
| sources = [ |
| "omnibox/browser/history_quick_provider_performance_unittest.cc", |
| "test/run_all_perftests.cc", |
| "visitedlink/test/visitedlink_perftest.cc", |
| ] |
| |
| # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. |
| configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] |
| |
| deps = [ |
| "//base", |
| "//components/history/core/test", |
| "//components/omnibox/browser", |
| "//components/omnibox/browser:test_support", |
| "//components/test:test_support", |
| "//components/visitedlink/browser", |
| "//testing/perf", |
| "//url", |
| ] |
| |
| if (!is_ios) { |
| sources += [ "discardable_memory/common/discardable_shared_memory_heap_perftest.cc" ] |
| deps += [ "//components/discardable_memory/common" ] |
| } |
| } |
| } |