# Copyright 2021 The Fuchsia 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/components.gni")
import("//build/config.gni")
import("//build/rust/rustc_test.gni")

group("tests") {
  testonly = true
  deps = [
    ":factory-reset-handler-test",

    # The deps below are necessary on minimal product configs.
    "//src/graphics/bin/vulkan_loader",
  ]
}

rustc_test("factory_reset_handler_test") {
  edition = "2021"

  deps = [
    "//sdk/fidl/fuchsia.accessibility.scene:fuchsia.accessibility.scene_rust",
    "//sdk/fidl/fuchsia.input.injection:fuchsia.input.injection_rust",
    "//sdk/fidl/fuchsia.logger:fuchsia.logger_rust",
    "//sdk/fidl/fuchsia.media.sounds:fuchsia.media.sounds_rust",
    "//sdk/fidl/fuchsia.recovery:fuchsia.recovery_rust",
    "//sdk/fidl/fuchsia.scheduler:fuchsia.scheduler_rust",
    "//sdk/fidl/fuchsia.sysmem:fuchsia.sysmem_rust",
    "//sdk/fidl/fuchsia.tracing.provider:fuchsia.tracing.provider_rust",
    "//sdk/fidl/fuchsia.ui.composition:fuchsia.ui.composition_rust",
    "//sdk/fidl/fuchsia.ui.composition.internal:fuchsia.ui.composition.internal_rust",
    "//sdk/fidl/fuchsia.ui.display.singleton:fuchsia.ui.display.singleton_rust",
    "//sdk/fidl/fuchsia.ui.observation.scope:fuchsia.ui.observation.scope_rust",
    "//sdk/fidl/fuchsia.ui.pointerinjector:fuchsia.ui.pointerinjector_rust",
    "//sdk/fidl/fuchsia.ui.pointerinjector.configuration:fuchsia.ui.pointerinjector.configuration_rust",
    "//sdk/fidl/fuchsia.ui.scenic:fuchsia.ui.scenic_rust",
    "//sdk/fidl/fuchsia.vulkan.loader:fuchsia.vulkan.loader_rust",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia",
    "//src/lib/fuchsia-component",
    "//src/lib/fuchsia-component-test",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/ui/input-synthesis",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:async-trait",
    "//third_party/rust_crates:futures",
  ]

  sources = [
    "src/lib.rs",
    "src/mocks/factory_reset_mock.rs",
    "src/mocks/mod.rs",
    "src/mocks/pointer_injector_mock.rs",
    "src/mocks/sound_player_mock.rs",
    "src/packaged_component.rs",
    "src/traits/mod.rs",
    "src/traits/realm_builder_ext.rs",
    "src/traits/test_realm_component.rs",
  ]
}

fuchsia_test_component("factory-reset-handler-test-component") {
  component_name = "factory_reset_handler_test"
  manifest = "meta/factory-reset-handler-test.cml"
  deps = [ ":factory_reset_handler_test" ]
  test_type = "system"
}

fuchsia_test_package("factory-reset-handler-test") {
  test_components = [ ":factory-reset-handler-test-component" ]
  deps = [
    "//src/cobalt/bin/testing/mock_cobalt:component_v2",
    "//src/graphics/display/testing/fake-coordinator-connector:component",
    "//src/ui/a11y/testing:fake-a11y-manager",
    "//src/ui/bin/scene_manager:scene_manager_component_for_test",
    "//src/ui/testing/ui_test_realm:scenic_only",
  ]
  test_specs = {
    environments = [
      {
        dimensions = {
          # Ensure the device has Vulkan.
          device_type = "AEMU"
        }
      },
    ]

    # Scene Manager variant emits errors from failing to connecting to
    # fuchsia.settings.Keyboard protocol. This is irrelevant to the test,
    # so we allow it in the log settings.
    log_settings = {
      max_severity = "ERROR"
    }
  }
}
