# Copyright 2021 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import( "//chrome/browser/resources/chromeos/accessibility/tools/run_jsbundler.gni") import("//chrome/common/features.gni") import("//chrome/test/base/ash/js2gtest.gni") import("//tools/typescript/ts_library.gni") import("//ui/webui/resources/tools/bundle_js.gni") import("//ui/webui/resources/tools/minify_js.gni") assert(is_chromeos) group("build") { deps = [ ":copy_html_sources", ":minify_js", ] } enhanced_network_tts_dir = "$root_out_dir/resources/chromeos/accessibility/enhanced_network_tts" # Directory where typescript build will occur. ts_build_staging_dir = "$target_gen_dir/ts_build_staging" tsc_out_dir = "$target_gen_dir/tsc" common_tsc_dir = "$root_gen_dir/chrome/browser/resources/chromeos/accessibility/common/tsc" # TS files to compile. ts_modules = [ "background.ts", "commands.ts", "enhanced_network_tts.ts", "offscreen.ts", ] # Root dir must be parent directory to access common/. ts_library("build_ts") { root_dir = "$ts_build_staging_dir" out_dir = tsc_out_dir deps = [ "../common:build_ts" ] extra_deps = [ ":stage_ts_build" ] path_mappings = [ "/common/*|" + rebase_path("$common_tsc_dir/*", target_gen_dir) ] definitions = [ "mojo_bindings_externs.d.ts", "../definitions/extensions.d.ts", "../definitions/extension_types.d.ts", "../definitions/offscreen.d.ts", "../definitions/runtime.d.ts", "../definitions/tabs.d.ts", "../definitions/tts.d.ts", "../definitions/tts_engine.d.ts", "../definitions/windows.d.ts", "//tools/typescript/definitions/chrome_event.d.ts", ] in_files = ts_modules tsconfig_base = "../tsconfig.base.json" } bundle_js("bundle_js") { visibility = [ ":minify_js" ] host = "_ignored_" input = rebase_path("$tsc_out_dir", root_build_dir) js_module_in_files = [ "background.js", "offscreen.js", ] out_folder = "$target_gen_dir/bundle" deps = [ ":build_ts", "../common:copied_files", ] } minify_js("minify_js") { visibility = [ ":build" ] deps = [ ":bundle_js" ] in_folder = "$target_gen_dir/bundle" in_files = [ "background.rollup.js", "offscreen.rollup.js", "shared.rollup.js", ] out_folder = "$enhanced_network_tts_dir" } copy("copy_html_sources") { sources = [ "background.html", "offscreen.html", ] outputs = [ "$enhanced_network_tts_dir/{{source_target_relative}}" ] } # Copy all JS and TS sources to a staging folder. All generated TS/JS files # will also be copied into this folder, which will allow us to support a TS # build that uses both checked-in and generated files. copy("stage_ts_build") { sources = ts_modules outputs = [ "$ts_build_staging_dir/{{source_target_relative}}" ] } source_set("browser_tests") { testonly = true assert(enable_extensions) deps = [ ":enhanced_network_tts_extjs_tests" ] data = [ "$root_out_dir/resources/chromeos/accessibility/enhanced_network_tts/background.html", "$root_out_dir/resources/chromeos/accessibility/enhanced_network_tts/background.js", "$root_out_dir/resources/chromeos/accessibility/enhanced_network_tts/enhanced_network_tts.js", "//chrome/browser/resources/chromeos/accessibility/common/", "//chrome/browser/resources/chromeos/accessibility/enhanced_network_tts/", ] data += js2gtest_js_libraries } js2gtest("enhanced_network_tts_extjs_tests") { test_type = "extension" sources = [ "enhanced_network_tts_unittest.js", "error_handling_unittest.js", ] gen_include_files = [ "../common/testing/accessibility_test_base.js", "../common/testing/e2e_test_base.js", "enhanced_network_tts_e2e_test_base.js", "mock_mojo_private.js", ] # The test base classes generate C++ code with these deps. deps = [ "//ash", "//base", "//chrome/browser/ash/accessibility", "//chrome/browser/ash/system_web_apps", "//chrome/common", ] defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] }