| # 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/cr_toolbar_search_field_tests.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_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", |
| ] |
| } |