# Copyright 2025 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//ui/webui/webui_features.gni")
import("../build_webui_tests.gni")

build_webui_tests("build") {
  cc_test_files = [
    "contextual_tasks_browsertest.cc",
    "contextual_tasks_pixel_interactive_ui_test.cc",
  ]

  files = [
    "app_test.ts",
    "contextual_tasks_webview_browsertest.ts",
    "post_message_handler_test.ts",
    "utils_test.ts",
    "test_contextual_tasks_browser_proxy.ts",
    "contextual_tasks_test_utils.ts",
    "top_toolbar_test.ts",
    "overflow_menu_test.ts",
    "toolbar_test.ts",
    "utils/clip_path_test.ts",
    "window_manager_test.ts",
  ]

  if (!is_android || is_desktop_android) {
    files += [
      "app_composebox_basic_mode_test.ts",
      "composebox_test.ts",
      "composebox_files_test.ts",
      "composebox_submit_test.ts",
      "composebox_misc_inputs_test.ts",
      "composebox_zero_state_test.ts",
      "test_searchbox_utils.ts",
    ]
  }

  if (!is_android || enable_webui_contextual_tasks_composebox) {
    files += [ "onboarding_tooltip_test.ts" ]
  }

  if (!is_android) {
    files += [
      "input_plate_test.ts",
      "info_tooltip_test.ts",
      "unbounded_menu_test.ts",
    ]
  }
  static_files = [ "test.html" ]

  ts_path_mappings = [
    "chrome://contextual-tasks/strings.m.js|" +
        rebase_path("//tools/typescript/definitions/strings.d.ts",
                    target_gen_dir),
    "chrome://contextual-tasks/*|" +
        rebase_path(
            "$root_gen_dir/chrome/browser/resources/contextual_tasks/tsc/*",
            target_gen_dir),
  ]

  if (!is_android || is_desktop_android) {
    ts_path_mappings += [ "chrome://webui-test/cr_components/searchbox/*|" + rebase_path(
                              "$root_gen_dir/chrome/test/data/webui/cr_components/searchbox/tsc/*",
                              target_gen_dir) ]
  }

  ts_tsconfig_base = "tsconfig_base.json"

  ts_deps = [
    "//chrome/browser/resources/contextual_tasks:build_ts",
    "//chrome/test/data/webui:build_ts",
    "//ui/webui/resources/cr_components/searchbox:build_ts",
    "//ui/webui/resources/cr_elements:build_ts",
    "//ui/webui/resources/js:build_ts",
    "//ui/webui/resources/mojo:build_ts",
  ]

  if (enable_extensions_core) {
    ts_deps +=
        [ "//chrome/browser/resources/contextual_tasks/extension:build_ts" ]
    ts_path_mappings += [ "chrome://contextual-tasks/contextual_tasks_extension/*|" + rebase_path(
                              "$root_gen_dir/chrome/browser/resources/contextual_tasks/extension/tsc/*",
                              target_gen_dir) ]
  }

  if (!is_android) {
    ts_deps += [ "//chrome/browser/resources/webui_toolbar_shared:build_ts" ]
    ts_path_mappings += [ "chrome://resources/webui_toolbar_shared/*|" + rebase_path(
                              "$root_gen_dir/chrome/browser/resources/webui_toolbar_shared/tsc/*",
                              target_gen_dir) ]
  }

  if (!is_android || is_desktop_android) {
    ts_deps += [ "//chrome/test/data/webui/cr_components/searchbox:build_ts" ]
  }

  if (!is_android || enable_webui_contextual_tasks_composebox) {
    ts_deps += [
      "//ui/webui/resources/cr_components/composebox:build_ts",
      "//ui/webui/resources/cr_components/search:build_ts",
    ]
  }
  ts_definitions = [
    "//tools/typescript/definitions/chrome_event.d.ts",
    "//tools/typescript/definitions/chrome_histograms.d.ts",
    "//tools/typescript/definitions/web_request.d.ts",
    "//tools/typescript/definitions/webview_tag.d.ts",
  ]
}
