blob: dcf6ef306e5e06a010f7d71708b967ae4038818b [file] [log] [blame]
# Copyright 2017 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/crypto.gni")
import("//chrome/common/features.gni")
import("//chrome/test/base/js2gtest.gni")
import("//chrome/test/include_js_tests.gni")
import("//third_party/closure_compiler/compile_js.gni")
import("//ui/webui/resources/tools/js_modulizer.gni")
import("./namespace_rewrites.gni")
if (include_js_tests) {
js2gtest("interactive_ui_tests_js_webui") {
test_type = "webui"
sources = [
"bookmarks/bookmarks_focus_test.js",
"cr_elements/cr_elements_focus_test.js",
"cr_elements/cr_elements_v3_focus_test.js",
"cr_focus_outline_manager_test.js",
"cr_focus_row_behavior_interactive_test.js",
"cr_focus_row_behavior_v3_interactive_test.js",
"extensions/cr_extensions_interactive_ui_tests.js",
"history/history_focus_test.js",
"print_preview/print_preview_interactive_ui_tests.js",
"settings/cr_settings_v3_interactive_ui_tests.js",
]
gen_include_files = [
"polymer_browser_test_base.js",
"polymer_interactive_ui_test.js",
]
deps = [
":modulize",
"//chrome/browser/ui",
]
data = [
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_action_menu_test.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_checkbox_test.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_expand_button_focus_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_icon_button_focus_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_input_test.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_profile_avatar_selector_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_tabs_test.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_toggle_test.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/iron_list_focus_test.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_focus_row_behavior_test.m.js",
"$root_gen_dir/chrome/test/data/webui/mock_controller.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/sync_test_util.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/test_sync_browser_proxy.m.js",
"$root_gen_dir/chrome/test/data/webui/test_browser_proxy.m.js",
"$root_gen_dir/chrome/test/data/webui/test_store.m.js",
"$root_gen_dir/chrome/test/data/webui/test_util.m.js",
]
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
}
js2gtest("browser_tests_js_webui") {
test_type = "webui"
# Javascript sources. These are combined with the .cc files in the GYP build
# and are handled by a rule, but in the GN build they're in a separate
# action so need to be separated out.
sources = [
"../../../browser/ui/webui/identity_internals_ui_browsertest.js",
"../../../browser/ui/webui/sync_internals_browsertest.js",
"about_invalidations_browsertest.js",
"assertions.js",
"async_gen.js",
"bookmarks/bookmarks_browsertest.js",
"chrome_send_browsertest.js",
"cr_components/cr_components_browsertest.js",
"cr_components/cr_components_v3_browsertest.js",
"cr_elements/cr_elements_browsertest.js",
"cr_elements/cr_elements_v3_browsertest.js",
"find_shortcut_behavior_browsertest.js",
"find_shortcut_behavior_v3_browsertest.js",
"histograms/histograms_internals_ui_browsertest.js",
"history/history_browsertest.js",
"js/webui_resource_module_async_browsertest.js",
"js2gtest_browsertest.js",
"load_time_data_browsertest.js",
"management/a11y/management_a11y_test.js",
"mock4js_browsertest.js",
"net_internals/dns_view.js",
"net_internals/domain_security_policy_view.js",
"net_internals/main.js",
"net_internals/net_internals_test.js",
"ntp4.js",
"resources/webui_resources_browsertest.js",
"resources/webui_resources_v3_browsertest.js",
"sandboxstatus_browsertest.js",
"settings/a11y/v3_a11y_browsertest.js",
"settings/cr_settings_v3_browsertest.js",
"settings/settings_idle_load_v3_browsertest.js",
"text_defaults_browsertest.js",
"webui_resource_async_browsertest.js",
]
gen_include_files = [
"a11y/accessibility_audit_rules.js",
"a11y/accessibility_test.js",
"polymer_browser_test_base.js",
"settings/a11y/settings_accessibility_v3_test.js",
"//third_party/axe-core/axe.js",
]
if (is_chromeos) {
gen_include_files += [
"settings/chromeos/a11y/os_settings_accessibility_test.js",
"settings/chromeos/a11y/crostini_accessibility_test.js",
]
}
extra_js_files = [
"test_browser_proxy.js",
"settings/test_password_manager_proxy.js",
"settings/passwords_and_autofill_fake_data.js",
"//chrome/browser/resources/signin/sync_confirmation/sync_confirmation_browser_proxy.js",
]
if (is_chromeos) {
sources += [
"../../../browser/resources/chromeos/login/security_token_pin_browsertest.js",
"../../../browser/ui/webui/chromeos/bluetooth_pairing_dialog_browsertest.js",
"../../../browser/ui/webui/chromeos/certificate_manager_dialog_browsertest.js",
"../chromeos/oobe_webui_browsertest.js",
"chromeos/edu_login/edu_login_browsertest.js",
"set_time_dialog_browsertest.js",
"settings/chromeos/a11y/crostini_settings_details_a11y_test.js",
"settings/chromeos/a11y/crostini_settings_export_import_a11y_test.js",
"settings/chromeos/a11y/crostini_settings_shared_paths_a11y_test.js",
"settings/chromeos/a11y/crostini_settings_shared_usb_devices_a11y_test.js",
"settings/chromeos/a11y/crostini_settings_subpage_a11y_test.js",
"settings/chromeos/a11y/google_assistant_a11y_test.js",
"settings/chromeos/a11y/manage_accessibility_a11y_test.js",
"settings/chromeos/a11y/multidevice_a11y_test.js",
"settings/chromeos/a11y/multidevice_features_a11y_test.js",
"settings/chromeos/a11y/tts_subpage_a11y_test.js",
"settings/chromeos/os_settings_browsertest.js",
"settings/chromeos/os_settings_ui_browsertest.js",
"sys_internals/sys_internals_browsertest.js",
]
if (!optimize_webui) {
sources += [ "settings/chromeos/os_settings_v3_browsertest.js" ]
}
} else {
sources += [
"signin/signin_browsertest.js",
"user_manager/user_manager_browsertest.js",
"welcome/a11y_tests.js",
"welcome/welcome_browsertest.js",
]
}
if (use_nss_certs) {
sources += [ "certificate_viewer_dialog_browsertest.js" ]
}
if (enable_extensions) {
sources += [
"extensions/a11y/extensions_a11y_test.js",
"extensions/cr_extensions_browsertest.js",
]
}
if (enable_print_preview) {
sources += [ "print_preview/print_preview_ui_browsertest.js" ]
}
if (enable_webui_tab_strip) {
sources += [ "tab_strip/tab_strip_browsertest.js" ]
}
deps = [
":modulize",
"//build:branding_buildflags",
"//chrome/browser/ui",
"//services/network/public/cpp",
"//skia",
]
data = [
"$root_gen_dir/chrome/test/data/webui/cr_components/managed_footnote_test.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_components/nearby_onboarding_page_test.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_button_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_container_shadow_behavior_test.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_dialog_test.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_drawer_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_expand_button_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_fingerprint_progress_arc_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_icon_button_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_lazy_render_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_link_row_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_lottie_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_policy_indicator_behavior_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_policy_indicator_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_policy_pref_indicator_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_radio_button_test.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_radio_group_test.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_search_field_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_scrollable_behavior_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_slider_test.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_toast_manager_test.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_toast_test.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_toolbar_search_field_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_toolbar_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_view_manager_test.m.js",
"$root_gen_dir/chrome/test/data/webui/fake_chrome_event.m.js",
"$root_gen_dir/chrome/test/data/webui/find_shortcut_behavior_test.m.js",
"$root_gen_dir/chrome/test/data/webui/mock_controller.m.js",
"$root_gen_dir/chrome/test/data/webui/mock_timer.m.js",
"$root_gen_dir/chrome/test/data/webui/resources/list_property_update_behavior_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/fake_input_method_private.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/fake_language_settings_private.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/fake_settings_private.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/pref_util_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/prefs_test_cases.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/prefs_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/settings_slider_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/settings_textarea_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/settings_toggle_button_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/sync_test_util.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/test_languages_browser_proxy.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/test_lifetime_browser_proxy.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/test_profile_info_browser_proxy.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/test_search_engines_browser_proxy.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/test_sync_browser_proxy.m.js",
"$root_gen_dir/chrome/test/data/webui/test_browser_proxy.m.js",
"$root_gen_dir/chrome/test/data/webui/test_store.m.js",
"$root_gen_dir/chrome/test/data/webui/test_util.m.js",
]
if (is_chromeos) {
data += [
"$root_gen_dir/chrome/test/data/webui/cr_elements/cr_searchable_drop_down_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/ambient_mode_page_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/bluetooth_page_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/fake_bluetooth_private.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/fake_bluetooth.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/localized_link_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_page_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_subpage_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_smartlock_subpage_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_feature_item_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_feature_toggle_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/nearby_share_subpage_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_reset_page_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/people_page_account_manager_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/people_page_change_picture_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/people_page_kerberos_accounts_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_os_reset_browser_proxy.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_os_lifetime_browser_proxy.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_multidevice_browser_proxy.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/personalization_page_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_wallpaper_browser_proxy.m.js",
]
}
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
}
js2gtest("browser_tests_js_mojo_lite_webui") {
test_type = "mojo_lite_webui"
sources = [
"bluetooth_internals_browsertest.js",
"downloads/downloads_browsertest.js",
"engagement/site_engagement_browsertest.js",
"interventions_internals_browsertest.js",
"media/media_engagement_browsertest.js",
"media/media_feeds_webui_browsertest.js",
"media/media_history_webui_browsertest.js",
"nearby_share/nearby_browsertest.js",
"new_tab_page/new_tab_page_browsertest.js",
"usb_internals_browsertest.js",
]
deps = [ "//chrome/browser/ui" ]
if (is_win || is_mac || is_desktop_linux || is_chromeos) {
sources += [ "discards/discards_browsertest.js" ]
}
if (is_chromeos) {
sources += [
"chromeos/crostini_installer_browsertest.js",
"chromeos/crostini_upgrader_browsertest.js",
"chromeos/machine_learning_internals_browsertest.js",
"chromeos/print_management/print_management_browsertest.js",
"chromeos/print_management/scanning_page_browsertest.js",
"multidevice_setup/multidevice_setup_browsertest.js",
]
deps += [ "//chromeos/services/machine_learning/public/cpp:test_support" ]
}
extra_js_files = [ "//chrome/browser/resources/downloads/constants.js" ]
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
}
js2gtest("interactive_ui_tests_js_mojo_lite_webui") {
test_type = "mojo_lite_webui"
sources = [ "new_tab_page/new_tab_page_interactive_test.js" ]
gen_include_files = [
"polymer_browser_test_base.js",
"polymer_interactive_ui_test.js",
]
deps = [
":modulize",
"//chrome/browser/ui",
]
data = [
"$root_gen_dir/chrome/test/data/webui/test_browser_proxy.m.js",
"$root_gen_dir/chrome/test/data/webui/test_store.m.js",
"$root_gen_dir/chrome/test/data/webui/test_util.m.js",
]
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
}
js2gtest("unit_tests_js") {
test_type = "unit"
sources = [
"../../../renderer/resources/extensions/notifications_custom_bindings.gtestjs",
"../unit/framework_unittest.gtestjs",
]
extra_js_files = [
"../../../browser/resources/downloads/browser_proxy.js",
"../../../browser/resources/downloads/search_service.js",
"../../../renderer/resources/extensions/notifications_custom_bindings.js",
"../../../renderer/resources/extensions/notifications_test_util.js",
"//ui/webui/resources/js/cr.js",
]
if (is_chromeos) {
sources += [ "../../../browser/resources/chromeos/machine_learning/machine_learning_internals_utils_unittest.js" ]
extra_js_files += [ "../../../browser/resources/chromeos/machine_learning/machine_learning_internals_utils.js" ]
}
}
}
group("modulize") {
deps = [
":modulize_local",
"./cr_components:modulize",
"./cr_elements:modulize",
"./resources:modulize",
"./settings:modulize",
]
}
js_modulizer("modulize_local") {
input_files = [
"cr_focus_row_behavior_test.js",
"fake_chrome_event.js",
"find_shortcut_behavior_test.js",
"mock_controller.js",
"mock_timer.js",
"test_browser_proxy.js",
"test_store.js",
"test_util.js",
]
namespace_rewrites = test_namespace_rewrites
}
group("closure_compile") {
deps = [
":closure_compile_local",
"cr_components:closure_compile",
"cr_elements:closure_compile",
"nearby_share:closure_compile",
"print_preview:closure_compile",
"settings:closure_compile",
"tab_strip:closure_compile",
# TODO(crbug.com/1000989): Add page specific targets here.
]
}
js_type_check("closure_compile_local") {
is_polymer3 = true
closure_flags = default_closure_args + [
"js_module_root=../../chrome/test/data/webui/",
"js_module_root=./gen/chrome/test/data/webui/",
]
deps = [
":chai_assert",
":mock_timer.m",
":test_browser_proxy.m",
":test_plural_string_proxy",
":test_util.m",
]
}
js_library("mock_timer.m") {
sources = [ "$root_gen_dir/chrome/test/data/webui/mock_timer.m.js" ]
extra_deps = [ ":modulize_local" ]
}
js_library("test_util.m") {
sources = [ "$root_gen_dir/chrome/test/data/webui/test_util.m.js" ]
deps = [
":chai_assert",
"//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
"//ui/webui/resources/js/cr:event_target.m",
]
extra_deps = [ ":modulize_local" ]
}
js_library("chai_assert") {
externs_list = [ "//third_party/chaijs/externs/chai-3.5.js" ]
}
js_library("test_browser_proxy.m") {
sources = [ "$root_gen_dir/chrome/test/data/webui/test_browser_proxy.m.js" ]
deps = [ "//ui/webui/resources/js:promise_resolver.m" ]
extra_deps = [ ":modulize_local" ]
}
js_library("test_plural_string_proxy") {
deps = [
":test_browser_proxy.m",
"//ui/webui/resources/js:plural_string_proxy",
]
}