chromium/chrome/browser/ash/system_web_apps/apps/BUILD.gn

# Copyright 2023 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/chromeos/crosier_tests.gni")
import("//build/config/chromeos/ui_mode.gni")

assert(is_chromeos_ash)

static_library("apps") {
  sources = [
    "boca_web_app_config.cc",
    "boca_web_app_config.h",
    "boca_web_app_info.cc",
    "boca_web_app_info.h",
    "chrome_demo_mode_app_delegate.cc",
    "chrome_demo_mode_app_delegate.h",
    "chrome_file_manager_ui_delegate.cc",
    "chrome_file_manager_ui_delegate.h",
    "connectivity_diagnostics_system_web_app_info.cc",
    "connectivity_diagnostics_system_web_app_info.h",
    "crosh_system_web_app_info.cc",
    "crosh_system_web_app_info.h",
    "crosh_ui.cc",
    "crosh_ui.h",
    "demo_mode_web_app_info.cc",
    "demo_mode_web_app_info.h",
    "diagnostics_system_web_app_info.cc",
    "diagnostics_system_web_app_info.h",
    "eche_app_info.cc",
    "eche_app_info.h",
    "file_manager_web_app_info.cc",
    "file_manager_web_app_info.h",
    "files_internals_debug_json_provider.h",
    "files_internals_ui_delegate.cc",
    "files_internals_ui_delegate.h",
    "firmware_update_system_web_app_info.cc",
    "firmware_update_system_web_app_info.h",
    "graduation_app_delegate.cc",
    "graduation_app_delegate.h",
    "mall_system_web_app_info.cc",
    "mall_system_web_app_info.h",
    "os_feedback_system_web_app_info.cc",
    "os_feedback_system_web_app_info.h",
    "os_flags_system_web_app_info.cc",
    "os_flags_system_web_app_info.h",
    "os_settings_web_app_info.cc",
    "os_settings_web_app_info.h",
    "os_url_handler_system_web_app_info.cc",
    "os_url_handler_system_web_app_info.h",
    "print_management_web_app_info.cc",
    "print_management_web_app_info.h",
    "print_preview_cros_system_web_app_info.cc",
    "print_preview_cros_system_web_app_info.h",
    "projector_system_web_app_info.cc",
    "projector_system_web_app_info.h",
    "sanitize_system_web_app_info.cc",
    "sanitize_system_web_app_info.h",
    "scanning_system_web_app_info.cc",
    "scanning_system_web_app_info.h",
    "shimless_rma_system_web_app_info.cc",
    "shimless_rma_system_web_app_info.h",
    "shortcut_customization_system_web_app_info.cc",
    "shortcut_customization_system_web_app_info.h",
    "system_web_app_install_utils.cc",
    "system_web_app_install_utils.h",
    "terminal_source.cc",
    "terminal_source.h",
    "terminal_system_web_app_info.cc",
    "terminal_system_web_app_info.h",
    "terminal_ui.cc",
    "terminal_ui.h",
  ]

  public_deps = [
    "//ash/public/cpp",
    "//ash/webui/connectivity_diagnostics",
    "//ash/webui/demo_mode_app_ui",
    "//ash/webui/file_manager:file_manager_ui",
    "//ash/webui/files_internals",
    "//ash/webui/shimless_rma",
    "//ash/webui/shortcut_customization_ui:url_constants",
    "//base",
    "//chrome/browser:browser_public_dependencies",
    "//chrome/browser/ash/system_web_apps/types",
    "//chrome/browser/profiles:profile",
    "//chrome/browser/web_applications",
    "//chrome/common",
    "//chromeos/ash/components/drivefs/mojom",
    "//content/public/browser",
    "//ui/base",
    "//ui/gfx/geometry",
    "//ui/webui",
  ]

  deps = [
    "//ash",
    "//ash/constants",
    "//ash/public/cpp/resources:ash_public_unscaled_resources_grit",
    "//ash/strings",
    "//ash/webui/boca_ui",
    "//ash/webui/boca_ui/resources",
    "//ash/webui/connectivity_diagnostics/resources",
    "//ash/webui/diagnostics_ui:url_constants",
    "//ash/webui/diagnostics_ui/resources",
    "//ash/webui/eche_app_ui",
    "//ash/webui/file_manager:constants",
    "//ash/webui/file_manager/resources:file_manager_swa_resources",
    "//ash/webui/firmware_update_ui:url_constants",
    "//ash/webui/firmware_update_ui/resources",
    "//ash/webui/graduation",
    "//ash/webui/graduation/resources",
    "//ash/webui/mall:url_constants",
    "//ash/webui/mall/resources",
    "//ash/webui/os_feedback_ui:url_constants",
    "//ash/webui/os_feedback_ui/resources",
    "//ash/webui/print_management:url_constants",
    "//ash/webui/print_management/resources",
    "//ash/webui/print_preview_cros:url_constants",
    "//ash/webui/print_preview_cros/resources",
    "//ash/webui/projector_app/public/cpp",
    "//ash/webui/resources:demo_mode_app_resources",
    "//ash/webui/resources:eche_bundle_resources",
    "//ash/webui/resources:projector_app_untrusted_resources",
    "//ash/webui/sanitize_ui",
    "//ash/webui/sanitize_ui:url_constants",
    "//ash/webui/sanitize_ui/resources",
    "//ash/webui/scanning:url_constants",
    "//ash/webui/scanning/resources",
    "//ash/webui/scanning/resources:resources_grit",
    "//ash/webui/shimless_rma/resources",
    "//ash/webui/shortcut_customization_ui/resources",
    "//ash/webui/system_apps/public:system_web_app_type",
    "//chrome/app:generated_resources",
    "//chrome/app:generated_resources_grit",
    "//chrome/app/theme:chrome_unscaled_resources",
    "//chrome/browser:browser_process",
    "//chrome/browser/apps:user_type_filter",
    "//chrome/browser/apps/app_service:constants",
    "//chrome/browser/ash/crosapi:browser_util",
    "//chrome/browser/ash/crostini",
    "//chrome/browser/ash/drive",
    "//chrome/browser/ash/file_manager",
    "//chrome/browser/ash/guest_os/public",
    "//chrome/browser/ash/login/demo_mode",
    "//chrome/browser/ash/policy/dlp",
    "//chrome/browser/chromeos/upload_office_to_cloud",
    "//chrome/browser/resources/ash/settings:resources",
    "//chrome/browser/ui/webui/ash",
    "//chrome/browser/web_applications/mojom:mojom_web_apps_enum",
    "//chrome/common:channel_info",
    "//chrome/common:constants",
    "//chromeos/ash/components/boca",
    "//chromeos/constants",
    "//chromeos/crosapi/cpp",
    "//chromeos/strings:strings_grit",
    "//components/content_settings/core/common",
    "//components/drive",
    "//components/prefs",
    "//components/services/app_service/public/cpp:app_types",
    "//components/version_info:channel",
    "//components/webapps/common",
    "//content/public/common",
    "//extensions/browser/api/file_handlers",
    "//extensions/common",
    "//net",
    "//services/network/public/mojom:url_loader_base",
    "//skia",
    "//storage/browser",
    "//third_party/blink/public/mojom:mojom_platform",
    "//third_party/zlib/google:compression_utils",
    "//ui/chromeos/styles:cros_styles_views_generator",
    "//ui/chromeos/styles:cros_tokens_color_mappings_generator",
    "//ui/color",
    "//ui/color:color_headers",
    "//ui/display",
    "//ui/file_manager:resources",
    "//url",
  ]

  if (!is_official_build) {
    sources += [
      "sample_system_web_app_info.cc",
      "sample_system_web_app_info.h",
    ]

    deps += [
      "//ash/webui/sample_system_web_app_ui",
      "//ash/webui/sample_system_web_app_ui/resources/trusted:resources",
    ]
  }
}

source_set("browser_tests") {
  testonly = true

  defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]

  sources = [
    "demo_mode_app_integration_browsertest.cc",
    "diagnostics_app_integration_browsertest.cc",
    "eche_app_integration_browsertest.cc",
    "firmware_update_app_integration_browsertest.cc",
    "mall_app_integration_browsertest.cc",
    "os_feedback_app_integration_browsertest.cc",
    "print_management_app_integration_browsertest.cc",
    "print_preview_cros_app_integration_browsertest.cc",
    "sanitize_app_integration_browsertest.cc",
    "scanning_app_integration_browsertest.cc",
    "settings_app_integration_browsertest.cc",
    "shimless_rma_integration_browsertest.cc",
    "shortcut_customization_app_integration_browsertest.cc",
  ]

  deps = [
    ":apps",
    "//ash",
    "//ash/constants",
    "//ash/webui/demo_mode_app_ui",
    "//ash/webui/diagnostics_ui:url_constants",
    "//ash/webui/eche_app_ui",
    "//ash/webui/firmware_update_ui:url_constants",
    "//ash/webui/mall:url_constants",
    "//ash/webui/os_feedback_ui:url_constants",
    "//ash/webui/print_management:url_constants",
    "//ash/webui/print_preview_cros:url_constants",
    "//ash/webui/sanitize_ui:url_constants",
    "//ash/webui/scanning:url_constants",
    "//ash/webui/shimless_rma",
    "//ash/webui/shortcut_customization_ui:url_constants",
    "//ash/webui/system_apps/public:system_web_app_type",
    "//ash/webui/web_applications/test:test_support",
    "//base",
    "//base/test:test_support",
    "//chrome/app:generated_resources_grit",
    "//chrome/browser",
    "//chrome/browser/apps/app_service",
    "//chrome/browser/apps/app_service:constants",
    "//chrome/browser/ash/system_web_apps",
    "//chrome/browser/ash/system_web_apps/test_support:test_support_ui",
    "//chrome/browser/profiles:profile",
    "//chrome/browser/ui",
    "//chrome/browser/ui/ash/system_web_apps",
    "//chrome/browser/web_applications",
    "//chrome/common:constants",
    "//chrome/test:test_support",
    "//chrome/test:test_support_ui",
    "//chromeos/constants",
    "//components/policy/core/common:common_constants",
    "//components/prefs",
    "//components/strings:components_strings_grit",
    "//components/webapps/browser:constants",
    "//content/public/browser",
    "//content/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//ui/base",
    "//ui/base:features",
    "//ui/base:types",
    "//ui/display",
    "//ui/display:display_manager_test_api",
    "//ui/gfx/geometry",
    "//ui/views",
    "//url",

    # Tests from subdirectories:
    "//chrome/browser/ash/system_web_apps/apps/camera_app:browser_tests",
    "//chrome/browser/ash/system_web_apps/apps/help_app:browser_tests",
    "//chrome/browser/ash/system_web_apps/apps/media_app:browser_tests",
    "//chrome/browser/ash/system_web_apps/apps/personalization_app:browser_tests",
    "//chrome/browser/ash/system_web_apps/apps/projector_app:browser_tests",
    "//chrome/browser/ash/system_web_apps/apps/vc_background_ui:browser_tests",
  ]

  if (!is_official_build) {
    sources += [ "sample_system_web_app_integration_browsertest.cc" ]
    deps += [ "//ash/webui/sample_system_web_app_ui" ]
  }
}

source_set("unit_tests") {
  testonly = true

  sources = [
    "boca_web_app_info_unittest.cc",
    "os_settings_web_app_info_unittest.cc",
  ]

  deps = [
    ":apps",
    "//ash/constants",
    "//ash/webui/boca_ui",
    "//base/test:test_support",
    "//testing/gtest",

    # Tests from subdirectories:
    "//chrome/browser/ash/system_web_apps/apps/help_app:unit_tests",
    "//chrome/browser/ash/system_web_apps/apps/personalization_app:unit_tests",
  ]
}

if (is_chromeos_device) {
  crosier_tests("integration_tests") {
    sources = [ "terminal_integration_test.cc" ]

    sources_metadata = [ "terminal_integration_test.yaml" ]

    deps = [
      "//ash",
      "//ash/constants",
      "//base",
      "//chrome/browser",
      "//chrome/browser/ui",
      "//chrome/browser/ui/ash/shelf",
      "//chrome/browser/web_applications",
      "//chrome/test:ash_integration_test_support",
      "//testing/gmock",
      "//testing/gtest",
      "//ui/aura",
      "//ui/base:test_support",
      "//ui/compositor",
      "//ui/display",
    ]
  }
}