blob: 585d7bd3d7beb56d38ed8a47062f3ab33225f0e1 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "services/service_manager/tests/service_manager/test_manifests.h"
#include "base/no_destructor.h"
#include "services/service_manager/public/cpp/manifest_builder.h"
#include "services/service_manager/public/mojom/constants.mojom.h"
#include "services/service_manager/public/mojom/service_factory.mojom.h"
#include "services/service_manager/tests/service_manager/service_manager.test-mojom.h"
namespace service_manager {
const char kTestServiceName[] = "service_manager_unittest";
const char kTestTargetName[] = "service_manager_unittest_target";
const char kTestEmbedderName[] = "service_manager_unittest_embedder";
const char kTestRegularServiceName[] = "service_manager_unittest_regular";
const char kTestSharedServiceName[] =
"service_manager_unittest_shared_across_groups";
const char kTestSingletonServiceName[] = "service_manager_unittest_singleton";
const char kCreateInstanceTestCapability[] = "create_instance_test";
const std::vector<Manifest>& GetTestManifests() {
static base::NoDestructor<std::vector<Manifest>> manifests{
{ManifestBuilder()
.WithServiceName(kTestEmbedderName)
.WithOptions(ManifestOptionsBuilder()
.WithInstanceSharingPolicy(
Manifest::InstanceSharingPolicy::kSingleton)
.Build())
.ExposeCapability("service_manager:service_factory",
Manifest::InterfaceList<mojom::ServiceFactory>())
.RequireCapability(kTestTargetName, "")
.PackageService(ManifestBuilder()
.WithServiceName(kTestRegularServiceName)
.RequireCapability(kTestTargetName, "")
.RequireCapability(mojom::kServiceName, "")
.Build())
.PackageService(
ManifestBuilder()
.WithServiceName(kTestSharedServiceName)
.WithOptions(ManifestOptionsBuilder()
.WithInstanceSharingPolicy(
Manifest::InstanceSharingPolicy::
kSharedAcrossGroups)
.Build())
.Build())
.PackageService(
ManifestBuilder()
.WithServiceName(kTestSingletonServiceName)
.WithOptions(
ManifestOptionsBuilder()
.WithInstanceSharingPolicy(
Manifest::InstanceSharingPolicy::kSingleton)
.Build())
.RequireCapability(kTestTargetName, "")
.Build())
.Build(),
ManifestBuilder()
.WithServiceName("service_manager_unittest")
.WithOptions(ManifestOptionsBuilder()
.WithInstanceSharingPolicy(
Manifest::InstanceSharingPolicy::kSingleton)
.CanConnectToInstancesWithAnyId(true)
.CanRegisterOtherServiceInstances(true)
.Build())
.ExposeCapability(
kCreateInstanceTestCapability,
Manifest::InterfaceList<test::mojom::CreateInstanceTest>())
.RequireCapability(kTestTargetName, "")
.RequireCapability(kTestEmbedderName, "")
.RequireCapability(kTestSharedServiceName, "")
.RequireCapability(kTestSingletonServiceName, "")
.RequireCapability(kTestRegularServiceName, "")
.RequireCapability(mojom::kServiceName,
"service_manager:service_manager")
.Build(),
ManifestBuilder()
.WithServiceName(kTestTargetName)
.RequireCapability(kTestTargetName, "")
.RequireCapability(kTestServiceName, kCreateInstanceTestCapability)
.Build()}};
return *manifests;
}
} // namespace service_manager