# 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/components.gni")
import("//build/fidl/fidl.gni")

group("tests") {
  testonly = true
  deps = [
    ":modular_integration_tests",
    ":module_with_fake_runner",
    "modular_config",

    # modular_test_harness is a dep for any test that uses test_harness_fixture
    # (all of the tests below). Add it here so that an fx set --with
    # //src/modular/tests includes it.
    "//src/cobalt/bin/testing/mock_cobalt",

    # Used for intl testing.
    "//src/intl/intl_services:pkg_small",
    "//src/modular/bin/modular_test_harness",
  ]
}

# FIDL services/structs used for testing code only.
fidl("fuchsia.testing.modular") {
  sources = [ "test_service.test.fidl" ]
}

executable("agent_services_test") {
  testonly = true

  sources = [ "agent_services_test.cc" ]

  deps = [
    ":fuchsia.testing.modular",
    "//sdk/fidl/fuchsia.modular.testing",
    "//sdk/lib/sys/cpp/testing:integration",
    "//src/lib/fxl/test:gtest_main",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_fixture",
    "//src/modular/lib/pseudo_dir:pseudo_dir_server",
    "//third_party/googletest:gmock",
  ]
}

fuchsia_unittest_component("agent-services-test") {
  manifest = "meta/agent_services_test.cmx"
  deps = [ ":agent_services_test" ]
}

executable("agent_restart_test") {
  testonly = true

  sources = [ "agent_restart_test.cc" ]

  deps = [
    ":fuchsia.testing.modular",
    "//sdk/fidl/fuchsia.modular.testing",
    "//sdk/lib/sys/cpp/testing:integration",
    "//src/lib/fxl/test:gtest_main",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_fixture",
    "//third_party/googletest:gmock",
  ]
}

fuchsia_unittest_component("agent-restart-test") {
  manifest = "meta/agent_restart_test.cmx"
  deps = [ ":agent_restart_test" ]
}

executable("agent_session_restart_test") {
  testonly = true

  sources = [ "agent_session_restart_test.cc" ]

  deps = [
    ":fuchsia.testing.modular",
    "//sdk/fidl/fuchsia.modular.testing",
    "//sdk/lib/sys/cpp/testing:integration",
    "//src/lib/fxl/test:gtest_main",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_fixture",
    "//third_party/googletest:gmock",
  ]
}

fuchsia_unittest_component("agent-session-restart-test") {
  manifest = "meta/agent_session_restart_test.cmx"
  deps = [ ":agent_session_restart_test" ]
}

executable("sessionctl_test") {
  testonly = true
  output_name = "sessionctl_test"
  sources = [ "sessionctl_test.cc" ]
  deps = [
    "//sdk/fidl/fuchsia.modular.testing",
    "//sdk/fidl/fuchsia.sys",
    "//sdk/lib/sys/cpp",
    "//sdk/lib/sys/cpp/testing:integration",
    "//src/lib/fxl/test:gtest_main",
    "//src/modular/bin/sessionctl:lib",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_fixture",
  ]
}

fuchsia_unittest_component("sessionctl-test") {
  manifest = "meta/sessionctl_test.cmx"
  deps = [ ":sessionctl_test" ]
}

executable("session_shell_test") {
  testonly = true

  sources = [ "session_shell_test.cc" ]

  deps = [
    ":fuchsia.testing.modular",
    "//sdk/fidl/fuchsia.modular.testing",
    "//sdk/lib/sys/cpp/testing:integration",
    "//src/lib/fxl/test:gtest_main",
    "//src/modular/bin/sessionmgr/testing:annotations_matchers",
    "//src/modular/lib/modular_config:modular_config_constants",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_fixture",
    "//third_party/googletest:gmock",
  ]
}

fuchsia_unittest_component("session-shell-test") {
  manifest = "meta/session_shell_test.cmx"
  deps = [ ":session_shell_test" ]
}

executable("basemgr_test") {
  testonly = true

  sources = [ "basemgr_test.cc" ]

  deps = [
    ":fuchsia.testing.modular",
    "//sdk/lib/inspect/contrib/cpp:archive_reader",
    "//sdk/lib/modular/testing/cpp",
    "//sdk/lib/stdcompat",
    "//sdk/lib/sys/inspect/cpp",
    "//src/lib/fsl",
    "//src/lib/fxl/test:gtest_main",
    "//src/modular/lib/fidl:clone",
    "//src/modular/lib/modular_config",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_fixture",
    "//src/modular/lib/pseudo_dir:pseudo_dir_server",
    "//third_party/googletest:gmock",
  ]
}

fuchsia_unittest_component("basemgr-test") {
  manifest = "meta/basemgr_test.cmx"
  deps = [ ":basemgr_test" ]
}

executable("inspect_session_test") {
  testonly = true

  sources = [ "inspect_session_test.cc" ]

  deps = [
    "//sdk/fidl/fuchsia.modular.testing",
    "//sdk/lib/inspect/contrib/cpp:archive_reader",
    "//sdk/lib/inspect/testing/cpp",
    "//sdk/lib/sys/cpp/testing:integration",
    "//sdk/lib/sys/inspect/cpp",
    "//src/lib/fsl",
    "//src/lib/fxl/test:gtest_main",
    "//src/modular/lib/modular_config",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_fixture",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_impl",
    "//third_party/googletest:gmock",
  ]
}

fuchsia_unittest_component("inspect-session-test") {
  manifest = "meta/inspect_session_test.cmx"
  deps = [ ":inspect_session_test" ]
}

executable("intents_test") {
  testonly = true

  sources = [ "intents_test.cc" ]

  deps = [
    "//sdk/fidl/fuchsia.modular.testing",
    "//sdk/lib/sys/cpp/testing:integration",
    "//sdk/lib/syslog/cpp",
    "//src/lib/fsl",
    "//src/lib/fxl/test:gtest_main",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_fixture",
  ]
}

fuchsia_unittest_component("intents-test") {
  manifest = "meta/intents_test.cmx"
  deps = [ ":intents_test" ]
}

executable("module_context_test") {
  testonly = true

  output_name = "module_context_test"

  sources = [ "module_context_test.cc" ]

  deps = [
    "//sdk/fidl/fuchsia.modular.testing",
    "//sdk/lib/sys/cpp/testing:integration",
    "//sdk/lib/syslog/cpp",
    "//src/lib/fsl",
    "//src/lib/fxl/test:gtest_main",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_fixture",
    "//third_party/googletest:gmock",
  ]
}

fuchsia_unittest_component("module-context-test") {
  manifest = "meta/module_context_test.cmx"
  deps = [ ":module_context_test" ]
}

executable("sessionmgr_integration_test") {
  testonly = true

  sources = [ "sessionmgr_integration_test.cc" ]

  deps = [
    "//sdk/fidl/fuchsia.element",
    "//sdk/fidl/fuchsia.hardware.power.statecontrol",
    "//sdk/fidl/fuchsia.intl",
    "//sdk/fidl/fuchsia.modular.internal",
    "//sdk/fidl/fuchsia.modular.testing",
    "//sdk/fidl/fuchsia.sys",
    "//sdk/lib/fdio",
    "//sdk/lib/sys/cpp/testing:integration",
    "//src/lib/fsl",
    "//src/lib/fxl/test:gtest_main",
    "//src/modular/bin/sessionmgr:annotations",
    "//src/modular/bin/sessionmgr/testing",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_fixture",
    "//third_party/googletest:gmock",
  ]
}

fuchsia_unittest_component("sessionmgr-integration-test") {
  manifest = "meta/sessionmgr_integration_test.cmx"
  deps = [ ":sessionmgr_integration_test" ]
}

executable("story_shell_factory_test") {
  testonly = true

  sources = [ "story_shell_factory_test.cc" ]

  deps = [
    "//sdk/fidl/fuchsia.modular.testing",
    "//sdk/lib/sys/cpp/testing:integration",
    "//sdk/lib/syslog/cpp",
    "//src/lib/fxl/test:gtest_main",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_fixture",
    "//src/modular/lib/testing:session_shell_impl",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
  ]
}

fuchsia_unittest_component("story-shell-factory-test") {
  manifest = "meta/story_shell_factory_test.cmx"
  deps = [ ":story_shell_factory_test" ]
}

executable("story_shell_test") {
  testonly = true

  output_name = "story_shell_test"

  sources = [ "story_shell_test.cc" ]

  deps = [
    "//sdk/fidl/fuchsia.modular.testing",
    "//sdk/fidl/fuchsia.ui.app",
    "//sdk/lib/sys/cpp/testing:integration",
    "//sdk/lib/ui/scenic/cpp",
    "//src/lib/fsl",
    "//src/lib/fxl/test:gtest_main",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_fixture",
    "//third_party/googletest:gmock",
  ]
}

fuchsia_unittest_component("story-shell-test") {
  manifest = "meta/story_shell_test.cmx"
  deps = [ ":story_shell_test" ]
}

executable("component_context_test") {
  testonly = true

  sources = [ "component_context_test.cc" ]

  deps = [
    "//sdk/fidl/fuchsia.modular.testing",
    "//sdk/lib/sys/cpp/testing:integration",
    "//src/lib/fxl/test:gtest_main",
    "//src/lib/storage/vfs/cpp",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_fixture",
  ]
}

fuchsia_unittest_component("component-context-test") {
  manifest = "meta/component_context_test.cmx"
  deps = [ ":component_context_test" ]
}

executable("element_manager_test") {
  testonly = true

  sources = [ "element_manager_test.cc" ]

  deps = [
    ":fuchsia.testing.modular",
    "//sdk/fidl/fuchsia.element",
    "//sdk/lib/fit",
    "//sdk/lib/sys/cpp/testing:integration",
    "//src/lib/fxl/test:gtest_main",
    "//src/modular/bin/sessionmgr:annotations",
    "//src/modular/bin/sessionmgr/testing:annotations_matchers",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_fixture",
    "//src/modular/lib/pseudo_dir:pseudo_dir_server",
    "//third_party/googletest:gmock",
  ]
}

fuchsia_unittest_component("element-manager-test") {
  manifest = "meta/element_manager_test.cmx"
  deps = [ ":element_manager_test" ]
}

executable("stories_share_session_runners_test") {
  testonly = true

  sources = [ "stories_share_session_runners_test.cc" ]

  deps = [
    ":module_with_fake_runner",
    "//sdk/fidl/fuchsia.intl",
    "//sdk/fidl/fuchsia.modular.testing",
    "//sdk/lib/sys/cpp/testing:integration",
    "//sdk/lib/syslog/cpp",
    "//src/lib/fxl/test:gtest_main",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_fixture",
  ]

  # TODO(fxbug.dev/58160): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-reorder-init-list" ]
}

fuchsia_unittest_component("stories-share-session-runners-test") {
  manifest = "meta/stories_share_session_runners_test.cmx"
  deps = [ ":stories_share_session_runners_test" ]
}

executable("module_with_fake_runner_bin") {
  testonly = true

  output_name = "module_with_fake_runner"

  sources = [ "module_with_fake_runner.cc" ]

  deps = [
    "//sdk/fidl/fuchsia.modular",
    "//sdk/lib/sys/cpp",
    "//src/modular/lib/app_driver/cpp:module_driver",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
  ]
}

executable("annotations_test") {
  testonly = true

  sources = [ "annotations_test.cc" ]

  deps = [
    ":fuchsia.testing.modular",
    "//sdk/fidl/fuchsia.element",
    "//sdk/lib/fit",
    "//sdk/lib/sys/cpp/testing:integration",
    "//src/lib/fxl/test:gtest_main",
    "//src/modular/bin/sessionmgr:annotations",
    "//src/modular/bin/sessionmgr/testing:annotations_matchers",
    "//src/modular/lib/modular_test_harness/cpp:test_harness_fixture",
  ]
}

fuchsia_unittest_component("annotations-test") {
  manifest = "meta/annotations_test.cmx"
  deps = [ ":annotations_test" ]
}

fuchsia_package_with_single_component("module_with_fake_runner") {
  testonly = true
  manifest = "meta/module_with_fake_runner.cmx"
  deps = [ ":module_with_fake_runner_bin" ]
}

fuchsia_test_package("modular_integration_tests") {
  test_components = [
    ":agent-restart-test",
    ":agent-services-test",
    ":agent-session-restart-test",
    ":annotations-test",
    ":basemgr-test",
    ":component-context-test",
    ":element-manager-test",
    ":inspect-session-test",
    ":intents-test",
    ":module-context-test",
    ":session-shell-test",
    ":sessionctl-test",
    ":sessionmgr-integration-test",
    ":stories-share-session-runners-test",
    ":story-shell-factory-test",
    ":story-shell-test",
  ]
}
