blob: 9ee02107adf4415ec61ba1be26813113eb9ce226 [file] [log] [blame]
# Copyright 2017 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/chromeos/ui_mode.gni")
import("//build/config/features.gni")
import(
"//chrome/browser/resources/chromeos/accessibility/tools/run_jsbundler.gni")
import("//chrome/common/features.gni")
import("//chrome/test/base/js2gtest.gni")
import("//testing/test.gni")
import("//third_party/closure_compiler/compile_js.gni")
assert(is_chromeos_ash)
switch_access_dir =
"$root_out_dir/resources/chromeos/accessibility/switch_access"
group("build") {
deps = [ ":switch_access_copied_files" ]
}
# Instead of setting up one copy target for each subdirectory, use a script
# to copy all files.
run_jsbundler("switch_access_copied_files") {
mode = "copy"
dest_dir = switch_access_dir
sources = [
"action_manager.js",
"auto_scan_manager.js",
"background.html",
"background.js",
"cache.js",
"commands.js",
"focus_ring_manager.js",
"history.js",
"icons/back.svg",
"icons/copy.svg",
"icons/cut.svg",
"icons/decrement.svg",
"icons/dictation.svg",
"icons/increment.svg",
"icons/jumpToBeginningOfText.svg",
"icons/jumpToEndOfText.svg",
"icons/keyboard.svg",
"icons/moveBackwardOneCharOfText.svg",
"icons/moveBackwardOneWordOfText.svg",
"icons/moveCursor.svg",
"icons/moveDownOneLineOfText.svg",
"icons/moveForwardOneCharOfText.svg",
"icons/moveForwardOneWordOfText.svg",
"icons/moveUpOneLineOfText.svg",
"icons/paste.svg",
"icons/scrollDownOrForward.svg",
"icons/scrollLeft.svg",
"icons/scrollRight.svg",
"icons/scrollUpOrBackward.svg",
"icons/select.svg",
"icons/settings.svg",
"icons/showContextMenu.svg",
"icons/textSelectionEnd.svg",
"icons/textSelectionStart.svg",
"item_scan_manager.js",
"menu_manager.js",
"metrics.js",
"navigator.js",
"navigator_interface.js",
"nodes/back_button_node.js",
"nodes/basic_node.js",
"nodes/combo_box_node.js",
"nodes/desktop_node.js",
"nodes/editable_text_node.js",
"nodes/group_node.js",
"nodes/keyboard_node.js",
"nodes/modal_dialog_node.js",
"nodes/slider_node.js",
"nodes/switch_access_node.js",
"nodes/tab_node.js",
"nodes/window_node.js",
"point_scan_manager.js",
"preference_manager.js",
"switch_access.js",
"switch_access_constants.js",
"switch_access_predicate.js",
"text_navigation_manager.js",
]
rewrite_rules = [
rebase_path(".", root_build_dir) + ":",
rebase_path(closure_library_dir, root_build_dir) + ":closure",
]
}
source_set("browser_tests") {
testonly = true
assert(enable_extensions)
deps = [ ":switch_access_extjs_tests" ]
data = [
"//chrome/browser/resources/chromeos/accessibility/common/",
"//chrome/browser/resources/chromeos/accessibility/switch_access/",
]
data += js2gtest_js_libraries
}
js2gtest("switch_access_extjs_tests") {
test_type = "extension"
sources = [
"auto_scan_manager_test.js",
"focus_ring_manager_test.js",
"item_scan_manager_test.js",
"nodes/basic_node_test.js",
"nodes/desktop_node_test.js",
"nodes/group_node_test.js",
"nodes/tab_node_test.js",
"point_scan_manager_test.js",
# TODO(1316408): Tests were broken at head. Re-enable tests when they pass.
# "saatlite/gen/saatlite_tests.js",
"switch_access_predicate_test.js",
"switch_access_test.js",
"text_navigation_manager_test.js",
]
gen_include_files = [
"../common/testing/accessibility_test_base.js",
"../common/testing/assert_additions.js",
"../common/testing/callback_helper.js",
"../common/testing/e2e_test_base.js",
"switch_access_e2e_test_base.js",
"test_utility.js",
]
# The test base classes generate C++ code with these deps.
deps = [
"//ash",
"//ash/keyboard/ui",
"//base",
"//chrome/browser/ash",
"//chrome/browser/ash/crosapi",
"//chrome/common",
"//chromeos",
]
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
}
js_type_check("closure_compile") {
deps = [
":action_manager",
":auto_scan_manager",
":back_button_node",
":background",
":basic_node",
":cache",
":combo_box_node",
":commands",
":desktop_node",
":editable_text_node",
":focus_ring_manager",
":group_node",
":history",
":item_scan_manager",
":keyboard_node",
":menu_manager",
":metrics",
":modal_dialog_node",
":navigator",
":navigator_interface",
":point_scan_manager",
":preference_manager",
":slider_node",
":switch_access",
":switch_access_constants",
":switch_access_node",
":switch_access_predicate",
":tab_node",
":text_navigation_manager",
":window_node",
"../common:automation_predicate",
"../common:closure_shim",
"../common:constants",
"../common:event_generator",
"../common:key_code",
"../common:rect_util",
"../common:repeated_event_handler",
"../common:repeated_tree_change_handler",
"../common:tree_walker",
]
}
js_library("action_manager") {
deps = [
":switch_access_constants",
":switch_access_node",
"../common:array_util",
]
externs_list = [ "$externs_path/automation.js" ]
}
js_library("auto_scan_manager") {
deps = [ ":switch_access_constants" ]
}
js_library("background") {
deps = [
":switch_access",
"../common:instance_checker",
]
externs_list = [ "$externs_path/chrome_extensions.js" ]
}
js_library("back_button_node") {
sources = [ "nodes/back_button_node.js" ]
deps = [
":switch_access_constants",
":switch_access_node",
"../common:rect_util",
]
externs_list = [
"$externs_path/accessibility_private.js",
"$externs_path/automation.js",
]
}
js_library("basic_node") {
sources = [ "nodes/basic_node.js" ]
deps = [
":back_button_node",
":cache",
":switch_access_constants",
":switch_access_node",
":switch_access_predicate",
"../common:automation_predicate",
"../common:constants",
"../common:repeated_event_handler",
"../common:tree_walker",
]
externs_list = [
"$externs_path/accessibility_private.js",
"$externs_path/automation.js",
]
}
js_library("cache") {
externs_list = [ "$externs_path/automation.js" ]
}
js_library("combo_box_node") {
sources = [ "nodes/combo_box_node.js" ]
deps = [
":basic_node",
":switch_access_constants",
"../common:event_generator",
"../common:key_code",
]
}
js_library("commands") {
deps = [
":action_manager",
":auto_scan_manager",
":navigator",
]
externs_list = [ "$externs_path/accessibility_private.js" ]
}
js_library("desktop_node") {
sources = [ "nodes/desktop_node.js" ]
deps = [ ":basic_node" ]
externs_list = [ "$externs_path/automation.js" ]
}
js_library("editable_text_node") {
sources = [ "nodes/editable_text_node.js" ]
deps = [
":basic_node",
":switch_access_constants",
":switch_access_node",
]
externs_list = [
"$externs_path/accessibility_private.js",
"$externs_path/automation.js",
]
}
js_library("focus_ring_manager") {
deps = [
":basic_node",
":switch_access_constants",
":switch_access_node",
]
externs_list = [ "$externs_path/accessibility_private.js" ]
}
js_library("group_node") {
sources = [ "nodes/group_node.js" ]
deps = [
":back_button_node",
":basic_node",
":switch_access_constants",
":switch_access_node",
"../common:rect_util",
]
externs_list = [
"$externs_path/accessibility_private.js",
"$externs_path/automation.js",
]
}
js_library("history") {
deps = [
":basic_node",
":cache",
":desktop_node",
":switch_access_node",
":switch_access_predicate",
]
externs_list = [ "$externs_path/automation.js" ]
}
js_library("item_scan_manager") {
deps = [
":action_manager",
":basic_node",
":desktop_node",
":focus_ring_manager",
":history",
":keyboard_node",
":menu_manager",
":metrics",
":modal_dialog_node",
":navigator_interface",
":switch_access_constants",
":switch_access_node",
":switch_access_predicate",
"../common:automation_util",
"../common:event_handler",
"../common:repeated_event_handler",
]
externs_list = [
"$externs_path/accessibility_private.js",
"$externs_path/automation.js",
]
}
js_library("keyboard_node") {
sources = [ "nodes/keyboard_node.js" ]
deps = [
":basic_node",
":group_node",
":switch_access_constants",
":switch_access_node",
":switch_access_predicate",
"../common:constants",
"../common:event_generator",
"../common:rect_util",
"../common:tree_walker",
]
externs_list = [
"$externs_path/accessibility_private.js",
"$externs_path/automation.js",
]
}
js_library("menu_manager") {
deps = [
":switch_access_constants",
":switch_access_node",
"../common:array_util",
]
externs_list = [
"$externs_path/accessibility_private.js",
"$externs_path/automation.js",
]
}
js_library("metrics") {
deps = [ ":switch_access_constants" ]
externs_list = [ "$externs_path/metrics_private.js" ]
}
js_library("modal_dialog_node") {
sources = [ "nodes/modal_dialog_node.js" ]
deps = [
":basic_node",
":switch_access_constants",
":switch_access_node",
"../common:event_generator",
"../common:key_code",
]
externs_list = [ "$externs_path/automation.js" ]
}
js_library("navigator") {
deps = [ ":navigator_interface" ]
}
js_library("navigator_interface") {
deps = [ ":basic_node" ]
externs_list = [
"$externs_path/accessibility_private.js",
"$externs_path/automation.js",
]
}
js_library("point_scan_manager") {
deps = [
":focus_ring_manager",
":switch_access",
"../common:constants",
]
externs_list = [ "$externs_path/accessibility_private.js" ]
}
js_library("preference_manager") {
deps = [ ":switch_access_constants" ]
externs_list = [ "$externs_path/settings_private.js" ]
}
js_library("slider_node") {
sources = [ "nodes/slider_node.js" ]
deps = [
":basic_node",
":switch_access_constants",
"../common:event_generator",
"../common:key_code",
]
externs_list = [ "$externs_path/automation.js" ]
}
js_library("switch_access") {
deps = [
":auto_scan_manager",
":commands",
":menu_manager",
":navigator",
":preference_manager",
":switch_access_constants",
"../common:constants",
"../common:tree_walker",
]
externs_list = [
"$externs_path/automation.js",
"$externs_path/command_line_private.js",
"$externs_path/metrics_private.js",
"$externs_path/virtual_keyboard_private.js",
]
}
js_library("switch_access_constants") {
}
js_library("switch_access_node") {
sources = [ "nodes/switch_access_node.js" ]
deps = [ ":switch_access_constants" ]
externs_list = [
"$externs_path/accessibility_private.js",
"$externs_path/automation.js",
]
}
js_library("switch_access_predicate") {
deps = [
":cache",
":switch_access_constants",
":switch_access_node",
"../common:automation_predicate",
]
externs_list = [ "$externs_path/automation.js" ]
}
js_library("tab_node") {
sources = [ "nodes/tab_node.js" ]
deps = [
":basic_node",
":switch_access_constants",
":switch_access_node",
"../common:rect_util",
]
externs_list = [ "$externs_path/automation.js" ]
}
js_library("text_navigation_manager") {
deps = [
"../common:event_generator",
"../common:key_code",
]
externs_list = [
"$externs_path/accessibility_private.js",
"$externs_path/automation.js",
"$externs_path/clipboard.js",
]
}
js_library("window_node") {
sources = [ "nodes/window_node.js" ]
deps = [
":basic_node",
":switch_access_constants",
":switch_access_node",
]
externs_list = [ "$externs_path/automation.js" ]
}