# Copyright 2019 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/config.gni")
import("//build/package.gni")
import("//build/rust/rustc_binary.gni")
import("//build/rust/rustc_library.gni")
import("//build/test/test_package.gni")

group("setui") {
  testonly = true
  deps = [
    ":bin",
    ":lib",
    ":setui_service",
    ":setui_service_tests",
  ]
}

rustc_library("lib") {
  name = "settings"
  with_unit_tests = true
  edition = "2018"

  deps = [
    "//sdk/fidl/fuchsia.camera3:fuchsia.camera3-rustc",
    "//sdk/fidl/fuchsia.deprecatedtimezone:fuchsia.deprecatedtimezone-rustc",
    "//sdk/fidl/fuchsia.devicesettings:fuchsia.devicesettings-rustc",
    "//sdk/fidl/fuchsia.hardware.light:fuchsia.hardware.light-rustc",
    "//sdk/fidl/fuchsia.hardware.power.statecontrol:fuchsia.hardware.power.statecontrol-rustc",
    "//sdk/fidl/fuchsia.input.report:fuchsia.input.report-rustc",
    "//sdk/fidl/fuchsia.intl:fuchsia.intl-rustc",
    "//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
    "//sdk/fidl/fuchsia.media:fuchsia.media-rustc",
    "//sdk/fidl/fuchsia.media.audio:fuchsia.media.audio-rustc",
    "//sdk/fidl/fuchsia.media.sessions2:fuchsia.media.sessions2-rustc",
    "//sdk/fidl/fuchsia.media.sounds:fuchsia.media.sounds-rustc",
    "//sdk/fidl/fuchsia.recovery.policy:fuchsia.recovery.policy-rustc",
    "//sdk/fidl/fuchsia.settings:fuchsia.settings-rustc",
    "//sdk/fidl/fuchsia.settings.policy:fuchsia.settings.policy-rustc",
    "//sdk/fidl/fuchsia.stash:fuchsia.stash-rustc",
    "//sdk/fidl/fuchsia.ui.brightness:fuchsia.ui.brightness-rustc",
    "//sdk/fidl/fuchsia.ui.input:fuchsia.ui.input-rustc",
    "//sdk/fidl/fuchsia.ui.policy:fuchsia.ui.policy-rustc",
    "//sdk/fidl/fuchsia.ui.types:fuchsia.ui.types-rustc",
    "//src/lib/diagnostics/inspect/derive",
    "//src/lib/diagnostics/inspect/rust",
    "//src/lib/fdio/rust:fdio",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/icu_data/rust/icu_data",
    "//src/lib/syslog/rust:syslog",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:async-trait",
    "//third_party/rust_crates:bitflags",
    "//third_party/rust_crates:byteorder",
    "//third_party/rust_crates:chrono",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:glob",
    "//third_party/rust_crates:itertools",
    "//third_party/rust_crates:lazy_static",
    "//third_party/rust_crates:log",
    "//third_party/rust_crates:parking_lot",
    "//third_party/rust_crates:paste",
    "//third_party/rust_crates:rand",
    "//third_party/rust_crates:rust_icu_ucal",
    "//third_party/rust_crates:rust_icu_uenum",
    "//third_party/rust_crates:serde",
    "//third_party/rust_crates:serde_json",
    "//third_party/rust_crates:tempfile",
    "//third_party/rust_crates:thiserror",
  ]

  test_deps = [
    "//third_party/rust_crates:matches",
    "//third_party/rust_crates:pin-utils",
  ]

  # TODO(fxbug.dev/61386): Fix the leaks and remove this
  test_deps += [ "//build/config/sanitizers:suppress-lsan.DO-NOT-USE-THIS" ]

  sources = [
    "src/accessibility.rs",
    "src/accessibility/accessibility_controller.rs",
    "src/accessibility/accessibility_fidl_handler.rs",
    "src/accessibility/types.rs",
    "src/account.rs",
    "src/account/account_controller.rs",
    "src/agent.rs",
    "src/agent/authority.rs",
    "src/agent/camera_watcher.rs",
    "src/agent/earcons.rs",
    "src/agent/earcons/agent.rs",
    "src/agent/earcons/bluetooth_handler.rs",
    "src/agent/earcons/sound_ids.rs",
    "src/agent/earcons/utils.rs",
    "src/agent/earcons/volume_change_handler.rs",
    "src/agent/inspect.rs",
    "src/agent/inspect_policy.rs",
    "src/agent/inspect_setting_data.rs",
    "src/agent/media_buttons.rs",
    "src/agent/restore_agent.rs",
    "src/agent/storage_agent.rs",
    "src/audio.rs",
    "src/audio/audio_controller.rs",
    "src/audio/audio_default_settings.rs",
    "src/audio/audio_fidl_handler.rs",
    "src/audio/policy.rs",
    "src/audio/policy/audio_policy_handler.rs",
    "src/audio/policy/volume_policy_fidl_handler.rs",
    "src/audio/stream_volume_control.rs",
    "src/audio/types.rs",
    "src/audio/utils.rs",
    "src/base.rs",
    "src/clock.rs",
    "src/config.rs",
    "src/config/base.rs",
    "src/config/default_settings.rs",
    "src/device.rs",
    "src/device/device_controller.rs",
    "src/device/device_fidl_handler.rs",
    "src/device/types.rs",
    "src/display.rs",
    "src/display/display_configuration.rs",
    "src/display/display_controller.rs",
    "src/display/display_fidl_handler.rs",
    "src/display/light_sensor.rs",
    "src/display/light_sensor_config.rs",
    "src/display/light_sensor_controller.rs",
    "src/display/types.rs",
    "src/do_not_disturb.rs",
    "src/do_not_disturb/do_not_disturb_controller.rs",
    "src/do_not_disturb/do_not_disturb_fidl_handler.rs",
    "src/do_not_disturb/types.rs",
    "src/event.rs",
    "src/factory_reset.rs",
    "src/factory_reset/factory_reset_controller.rs",
    "src/factory_reset/factory_reset_fidl_handler.rs",
    "src/factory_reset/types.rs",
    "src/fidl_common.rs",
    "src/fidl_processor.rs",
    "src/fidl_processor/policy.rs",
    "src/fidl_processor/processor.rs",
    "src/fidl_processor/settings.rs",
    "src/handler.rs",
    "src/handler/base.rs",
    "src/handler/device_storage.rs",
    "src/handler/setting_handler.rs",
    "src/handler/setting_handler_factory_impl.rs",
    "src/handler/setting_proxy.rs",
    "src/handler/store_accessor.rs",
    "src/hanging_get_handler.rs",
    "src/input.rs",
    "src/input/common.rs",
    "src/input/input_controller.rs",
    "src/input/input_device_configuration.rs",
    "src/input/input_fidl_handler.rs",
    "src/input/types.rs",
    "src/intl.rs",
    "src/intl/intl_controller.rs",
    "src/intl/intl_fidl_handler.rs",
    "src/intl/types.rs",
    "src/lib.rs",
    "src/light.rs",
    "src/light/light_controller.rs",
    "src/light/light_fidl_handler.rs",
    "src/light/light_hardware_configuration.rs",
    "src/light/types.rs",
    "src/message.rs",
    "src/message/action_fuse.rs",
    "src/message/base.rs",
    "src/message/beacon.rs",
    "src/message/message_builder.rs",
    "src/message/message_client.rs",
    "src/message/message_hub.rs",
    "src/message/messenger.rs",
    "src/message/receptor.rs",
    "src/monitor.rs",
    "src/monitor/base.rs",
    "src/monitor/environment.rs",
    "src/night_mode.rs",
    "src/night_mode/night_mode_controller.rs",
    "src/night_mode/night_mode_fidl_handler.rs",
    "src/night_mode/types.rs",
    "src/policy.rs",
    "src/policy/policy_handler.rs",
    "src/policy/policy_handler_factory_impl.rs",
    "src/policy/policy_proxy.rs",
    "src/power.rs",
    "src/power/power_controller.rs",
    "src/privacy.rs",
    "src/privacy/privacy_controller.rs",
    "src/privacy/privacy_fidl_handler.rs",
    "src/privacy/types.rs",
    "src/service.rs",
    "src/service_context.rs",
    "src/setup.rs",
    "src/setup/setup_controller.rs",
    "src/setup/setup_fidl_handler.rs",
    "src/setup/types.rs",
    "src/storage.rs",
    "src/task.rs",
    "src/tests.rs",
    "src/tests/accessibility_tests.rs",
    "src/tests/agent_tests.rs",
    "src/tests/audio_policy_handler_tests.rs",
    "src/tests/audio_policy_tests.rs",
    "src/tests/audio_tests.rs",
    "src/tests/bluetooth_earcons_tests.rs",
    "src/tests/camera_watcher_agent_tests.rs",
    "src/tests/device_tests.rs",
    "src/tests/display_tests.rs",
    "src/tests/do_not_disturb_tests.rs",
    "src/tests/environment_tests.rs",
    "src/tests/event_tests.rs",
    "src/tests/factory_reset_tests.rs",
    "src/tests/fakes.rs",
    "src/tests/fakes/audio_core_service.rs",
    "src/tests/fakes/base.rs",
    "src/tests/fakes/brightness_service.rs",
    "src/tests/fakes/camera3_service.rs",
    "src/tests/fakes/discovery_service.rs",
    "src/tests/fakes/hardware_light_service.rs",
    "src/tests/fakes/hardware_power_statecontrol_service.rs",
    "src/tests/fakes/input_device_registry_service.rs",
    "src/tests/fakes/recovery_policy_service.rs",
    "src/tests/fakes/service_registry.rs",
    "src/tests/fakes/sound_player_service.rs",
    "src/tests/fidl_processor_tests.rs",
    "src/tests/hanging_get_tests.rs",
    "src/tests/input_test_environment.rs",
    "src/tests/input_tests.rs",
    "src/tests/intl_tests.rs",
    "src/tests/light_sensor_tests.rs",
    "src/tests/light_tests.rs",
    "src/tests/media_buttons_agent_tests.rs",
    "src/tests/message_tests.rs",
    "src/tests/message_utils.rs",
    "src/tests/night_mode_tests.rs",
    "src/tests/policy_handler_tests.rs",
    "src/tests/policy_proxy_tests.rs",
    "src/tests/privacy_tests.rs",
    "src/tests/resource_monitor_tests.rs",
    "src/tests/restore_agent_tests.rs",
    "src/tests/scaffold.rs",
    "src/tests/scaffold/agent.rs",
    "src/tests/scaffold/event.rs",
    "src/tests/service_configuration_tests.rs",
    "src/tests/setting_handler_tests.rs",
    "src/tests/setting_proxy_tests.rs",
    "src/tests/setup_tests.rs",
    "src/tests/storage_agent_tests.rs",
    "src/tests/stream_volume_tests.rs",
    "src/tests/test_failure_utils.rs",
    "src/tests/volume_change_earcons_tests.rs",
  ]
}

test_package("setui_service_tests") {
  deps = [
    ":lib_test",
    ":tests_config",
  ]

  tests = [
    {
      name = "settings_lib_test"
    },
  ]

  resources = [
    {
      path = rebase_path("//third_party/icu/common/icudtl.dat")
      dest = "icudtl.dat"
    },
    {
      path = rebase_path("src/tests/testdata/test_store_data.store")
      dest = "test_store_data.store"
    },
  ]
}

config_data("tests_config") {
  for_pkg = "setui_service_tests"
  sources = [
    "src/tests/testdata/agent_configuration.json",
    "src/tests/testdata/audio_config_data.json",
    "src/tests/testdata/bluetooth-connected.wav",
    "src/tests/testdata/bluetooth-disconnected.wav",
    "src/tests/testdata/display_configuration.json",
    "src/tests/testdata/fake_config_data.json",
    "src/tests/testdata/fake_invalid_config_data.json",
    "src/tests/testdata/policy_configuration.json",
    "src/tests/testdata/service_configuration.json",
    "src/tests/testdata/service_flags.json",
    "src/tests/testdata/volume-changed.wav",
    "src/tests/testdata/volume-max.wav",
  ]
}

rustc_binary("bin") {
  name = "setui_service"
  with_unit_tests = true

  edition = "2018"

  deps = [
    ":lib",
    "//sdk/fidl/fuchsia.settings:fuchsia.settings-rustc",
    "//sdk/fidl/fuchsia.stash:fuchsia.stash-rustc",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/syslog/rust:syslog",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:parking_lot",
  ]

  # TODO(fxbug.dev/61386): Fix the leaks and remove this
  deps += [ "//build/config/sanitizers:suppress-lsan.DO-NOT-USE-THIS" ]

  sources = [ "src/main.rs" ]
}

package("setui_service") {
  deps = [ ":bin" ]

  binaries = [
    {
      name = "setui_service"
    },
  ]

  meta = [
    {
      path = rebase_path("meta/setui_service.cmx")
      dest = "setui_service.cmx"
    },
    {
      path = rebase_path("meta/setui_service.cml")
      dest = "setui_service.cm"
    },
  ]

  # Timezone resources, needed to validate input to fuchsia.settings.intl.
  resources = [
    {
      path = rebase_path("//third_party/icu/common/icudtl.dat")
      dest = "icudtl.dat"
    },
  ]
}

rustc_binary("setui-config-test") {
  testonly = true
  edition = "2018"
  output_name = "setui_config_test"
  deps = [
    ":lib",
    "//src/lib/syslog/rust:syslog",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:argh",
    "//third_party/rust_crates:serde",
    "//third_party/rust_crates:serde_json",
  ]

  source_root = "src/setui_config_test.rs"

  sources = [ "src/setui_config_test.rs" ]
}

unittest_package("sample-setui-config-test") {
  deps = [ "//garnet/bin/setui:setui-config-test" ]

  resources = [
    {
      path = rebase_path("src/tests/testdata/service_configuration.json")
      dest = "service_configuration.json"
    },
    {
      path = rebase_path("src/tests/testdata/display_configuration.json")
      dest = "display_configuration.json"
    },
    {
      path = rebase_path("src/tests/testdata/policy_configuration.json")
      dest = "policy_configuration.json"
    },
    {
      path = rebase_path("src/tests/testdata/service_flags.json")
      dest = "service_flags.json"
    },
    {
      path = rebase_path("src/tests/testdata/input_device_configuration.json")
      dest = "input_device_configuration.json"
    },
    {
      path = rebase_path("src/tests/testdata/light_sensor_configuration.json")
      dest = "light_sensor_configuration.json"
    },
    {
      path = rebase_path("src/tests/testdata/light_hardware_configuration.json")
      dest = "light_hardware_configuration.json"
    },
    {
      path = rebase_path("src/tests/testdata/agent_configuration.json")
      dest = "agent_configuration.json"
    },
  ]

  tests = [
    {
      name = "setui_config_test"
      dest = "setui_config_test_all_args"
      args = [
        "--service-config",
        "/pkg/data/service_configuration.json",
        "--display-config",
        "/pkg/data/display_configuration.json",
        "--policy-config",
        "/pkg/data/policy_configuration.json",
        "--controller-flags",
        "/pkg/data/service_flags.json",
        "--input-device-config",
        "/pkg/data/input_device_configuration.json",
        "--light-sensor-config",
        "/pkg/data/light_sensor_configuration.json",
        "--light-hardware-config",
        "/pkg/data/light_hardware_configuration.json",
        "--agent-config",
        "/pkg/data/agent_configuration.json",
      ]
    },
    {
      name = "setui_config_test"
      dest = "setui_config_test_short_args"
      args = [
        "-s",
        "/pkg/data/service_configuration.json",
        "-d",
        "/pkg/data/display_configuration.json",
        "-p",
        "/pkg/data/policy_configuration.json",
        "-f",
        "/pkg/data/service_flags.json",
        "-i",
        "/pkg/data/input_device_configuration.json",
        "-l",
        "/pkg/data/light_sensor_configuration.json",
        "-h",
        "/pkg/data/light_hardware_configuration.json",
        "-a",
        "/pkg/data/agent_configuration.json",
      ]
    },
    {
      name = "setui_config_test"
      dest = "setui_config_test_no_args"
      args = []
    },
    {
      name = "setui_config_test"
      dest = "setui_config_test_multiple_args"
      args = [
        "-s",
        "/pkg/data/service_configuration.json",
        "-s",
        "/pkg/data/service_configuration.json",
      ]
    },
  ]
}

group("tests") {
  testonly = true
  deps = [
    ":sample-setui-config-test",
    ":setui-config-test",
    ":setui_service_tests",
  ]
}
