Commit fa69ff87 authored by plundblad's avatar plundblad Committed by Commit bot

Build javascript unit tests with gn.

This extends the js2gtest template and uses it for the gtestjs
unit tests.

BUG=None

Review URL: https://codereview.chromium.org/1145113002

Cr-Commit-Position: refs/heads/master@{#330907}
parent dcd1d596
......@@ -209,19 +209,6 @@
'browser/renderer_context_menu/render_view_context_menu_test_util.cc',
'browser/renderer_context_menu/render_view_context_menu_test_util.h',
'browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper_unit_test.mm',
'browser/resources/google_now/background.js',
'browser/resources/google_now/background_test_util.js',
'browser/resources/google_now/background_unittest.gtestjs',
'browser/resources/google_now/cards.js',
'browser/resources/google_now/cards_unittest.gtestjs',
'browser/resources/google_now/common_test_util.js',
'browser/resources/google_now/utility.js',
'browser/resources/google_now/utility_test_util.js',
'browser/resources/google_now/utility_unittest.gtestjs',
'browser/resources/print_preview/data/measurement_system.js',
'browser/resources/print_preview/data/measurement_system_unittest.gtestjs',
'browser/resources/print_preview/print_preview_utils.js',
'browser/resources/print_preview/print_preview_utils_unittest.gtestjs',
'browser/resources_util_unittest.cc',
'browser/rlz/rlz_unittest.cc',
'browser/search/contextual_search_policy_handler_android_unittest.cc',
......@@ -565,9 +552,6 @@
'renderer/instant_restricted_id_cache_unittest.cc',
'renderer/plugins/plugin_uma_unittest.cc',
'renderer/prerender/prerender_dispatcher_unittest.cc',
'renderer/resources/extensions/notifications_custom_bindings.js',
'renderer/resources/extensions/notifications_custom_bindings.gtestjs',
'renderer/resources/extensions/notifications_test_util.js',
'renderer/searchbox/search_bouncer_unittest.cc',
'renderer/searchbox/searchbox_extension_unittest.cc',
'renderer/searchbox/searchbox_unittest.cc',
......@@ -608,7 +592,6 @@
'../tools/json_schema_compiler/test/idl_schemas_unittest.cc',
'../tools/json_schema_compiler/test/objects_unittest.cc',
'../tools/json_schema_compiler/test/simple_api_unittest.cc',
'../ui/webui/resources/js/cr.js',
],
'chrome_unit_tests_spellchecker_sources': [
'browser/spellchecker/feedback_sender_unittest.cc',
......@@ -1111,6 +1094,27 @@
'browser/media/webrtc_rtp_dump_writer_unittest.cc',
'renderer/media/chrome_webrtc_log_message_delegate_unittest.cc',
],
'chrome_unit_tests_js_sources': [
'browser/resources/google_now/background.js',
'browser/resources/google_now/background_test_util.js',
'browser/resources/google_now/cards.js',
'browser/resources/google_now/common_test_util.js',
'browser/resources/google_now/utility.js',
'browser/resources/google_now/utility_test_util.js',
'browser/resources/print_preview/data/measurement_system.js',
'browser/resources/print_preview/print_preview_utils.js',
'renderer/resources/extensions/notifications_custom_bindings.js',
'renderer/resources/extensions/notifications_test_util.js',
'../ui/webui/resources/js/cr.js',
],
'chrome_unit_tests_gtestjs_sources': [
'browser/resources/google_now/background_unittest.gtestjs',
'browser/resources/google_now/cards_unittest.gtestjs',
'browser/resources/google_now/utility_unittest.gtestjs',
'browser/resources/print_preview/data/measurement_system_unittest.gtestjs',
'browser/resources/print_preview/print_preview_utils_unittest.gtestjs',
'renderer/resources/extensions/notifications_custom_bindings.gtestjs',
],
'chrome_unit_tests_chromeos_sources': [
'browser/chromeos/accessibility/magnification_manager_unittest.cc',
'browser/chromeos/attestation/attestation_ca_client_unittest.cc',
......@@ -1314,8 +1318,6 @@
'browser/extensions/updater/local_extension_cache_unittest.cc',
'browser/metrics/chromeos_metrics_provider_unittest.cc',
'browser/notifications/login_state_notification_blocker_chromeos_unittest.cc',
'browser/resources/chromeos/braille_ime/braille_ime.js',
'browser/resources/chromeos/braille_ime/braille_ime_unittest.gtestjs',
# TODO(zturner): Enable this on Windows. See
# BrowserWithTestWindowTest::SetUp() for a comment explaining why this is
# broken.
......@@ -1330,6 +1332,12 @@
'common/extensions/api/file_browser_handlers/file_browser_handler_manifest_unittest.cc',
'common/extensions/api/file_system_provider/file_system_provider_handler_unittest.cc',
],
'chrome_unit_tests_chromeos_js_sources': [
'browser/resources/chromeos/braille_ime/braille_ime.js',
],
'chrome_unit_tests_chromeos_gtestjs_sources': [
'browser/resources/chromeos/braille_ime/braille_ime_unittest.gtestjs',
],
'chrome_unit_tests_desktop_linux_sources': [
'browser/password_manager/native_backend_kwallet_x_unittest.cc',
'browser/profiles/profile_list_desktop_unittest.cc',
......@@ -2147,7 +2155,11 @@
],
},
},
'sources': [ '<@(chrome_unit_tests_sources)' ],
'sources': [
'<@(chrome_unit_tests_sources)',
'<@(chrome_unit_tests_js_sources)',
'<@(chrome_unit_tests_gtestjs_sources)',
],
'conditions': [
['OS!="ios"', {
'dependencies': [
......@@ -2374,7 +2386,11 @@
'sources': [ '<@(chrome_unit_tests_webrtc_sources)' ],
}],
['chromeos==1', {
'sources': [ '<@(chrome_unit_tests_chromeos_sources)' ],
'sources': [
'<@(chrome_unit_tests_chromeos_sources)',
'<@(chrome_unit_tests_chromeos_gtestjs_sources)',
'<@(chrome_unit_tests_chromeos_js_sources)',
],
'dependencies': [
'../ash/ash_resources.gyp:ash_resources',
'../ui/chromeos/ui_chromeos.gyp:ui_chromeos_resources',
......
......@@ -505,7 +505,9 @@ if (!is_android) {
}
}
template("js2webui") {
template("js2gtest") {
assert(defined(invoker.test_type) &&
(invoker.test_type == "webui" || invoker.test_type == "unit"))
action_name = target_name + "_action"
source_set_name = target_name
......@@ -531,14 +533,14 @@ if (!is_android) {
outputs = [
"$target_gen_dir/{{source_name_part}}-gen.cc",
"$root_out_dir/test_data/chrome/{{source_root_relative_dir}}/{{source_file_part}}",
"$root_out_dir/test_data/{{source_root_relative_dir}}/{{source_file_part}}",
]
args = [
# Need "./" for script to find binary (cur dir is not on path).
"./" + rebase_path(d8_path, root_build_dir),
]
args += rebase_path(input_js, root_build_dir) + [ "webui" ]
args += rebase_path(input_js, root_build_dir) + [ invoker.test_type ]
if (v8_use_external_startup_data) {
args += [ "--external=y" ]
} else {
......@@ -555,13 +557,25 @@ if (!is_android) {
]
}
if (defined(invoker.extra_js_files)) {
copy_target_name = target_name + "_copy"
copy(copy_target_name) {
visibility = [ ":$source_set_name" ]
sources = invoker.extra_js_files
outputs = [
"$root_out_dir/test_data/{{source_root_relative_dir}}/{{source_file_part}}",
]
}
}
source_set(source_set_name) {
testonly = true
if (defined(invoker.visibility)) {
visibility = invoker.visibility
}
sources = get_target_outputs(":$action_name")
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
if (defined(invoker.defines)) {
defines = invoker.defines
}
deps = [
":$action_name",
......@@ -573,10 +587,14 @@ if (!is_android) {
if (defined(invoker.deps)) {
deps += invoker.deps
}
if (defined(invoker.extra_js_files)) {
data_deps = [ ":$copy_target_name" ]
}
}
}
js2webui("browser_tests_js_webui") {
js2gtest("browser_tests_js_webui") {
test_type = "webui"
sources = rebase_path(
chrome_tests_gypi_values.chrome_browser_tests_webui_js_sources,
".",
......@@ -599,6 +617,7 @@ if (!is_android) {
"//chrome/browser/ui",
"//skia",
]
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
}
test("browser_tests") {
......@@ -1196,6 +1215,26 @@ if (!is_android) {
"scope",
[ "../chrome_tests_unit.gypi" ])
js2gtest("unit_tests_js") {
test_type = "unit"
sources = rebase_path(unit_gypi_values.chrome_unit_tests_gtestjs_sources,
".",
"//chrome")
extra_js_files = rebase_path(unit_gypi_values.chrome_unit_tests_js_sources,
".",
"//chrome")
if (is_chromeos) {
sources += rebase_path(
unit_gypi_values.chrome_unit_tests_chromeos_gtestjs_sources,
".",
"//chrome")
extra_js_files +=
rebase_path(unit_gypi_values.chrome_unit_tests_chromeos_js_sources,
".",
"//chrome")
}
}
test("unit_tests") {
sources =
rebase_path(unit_gypi_values.chrome_unit_tests_sources, ".", "//chrome")
......@@ -1250,6 +1289,7 @@ if (!is_android) {
if (!is_ios) {
deps += [
":unit_tests_js",
"//components/audio_modem:audio_modem_test_support",
"//components/autofill/content/browser:test_support",
"//components/metrics/proto",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment