blob: 79a725879b69251d11fcb20f337b8ad6b627d97a [file] [log] [blame]
// 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.
#include "src/modular/lib/modular_test_harness/cpp/fake_session_shell.h"
#include <fuchsia/modular/cpp/fidl.h>
namespace modular_testing {
FakeSessionShell::FakeSessionShell(FakeComponent::Args args) : FakeComponent(std::move(args)) {}
FakeSessionShell::~FakeSessionShell() = default;
// static
std::unique_ptr<FakeSessionShell> FakeSessionShell::CreateWithDefaultOptions() {
return std::make_unique<FakeSessionShell>(modular_testing::FakeComponent::Args{
.url = modular_testing::TestHarnessBuilder::GenerateFakeUrl(),
.sandbox_services = FakeSessionShell::GetDefaultSandboxServices()});
}
// static
std::vector<std::string> FakeSessionShell::GetDefaultSandboxServices() {
return {fuchsia::modular::ComponentContext::Name_, fuchsia::modular::SessionShellContext::Name_,
fuchsia::modular::PuppetMaster::Name_};
}
void FakeSessionShell::OnCreate(fuchsia::sys::StartupInfo startup_info) {
component_context()->svc()->Connect(session_shell_context_.NewRequest());
session_shell_context_->GetStoryProvider(story_provider_.NewRequest());
component_context()->outgoing()->AddPublicService(session_shell_impl_.GetHandler());
}
} // namespace modular_testing