blob: 2e5600f646d530ececfc3faf7c18b2247c24c074 [file] [log] [blame]
// Copyright 2016 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 "peridot/tests/maxwell_integration/context_engine_test_base.h"
#include "peridot/lib/testing/wait_until_idle.h"
namespace {
constexpr char kContextEngineUrl[] =
"fuchsia-pkg://fuchsia.com/context_engine#meta/context_engine.cmx";
}
namespace maxwell {
void ContextEngineTestBase::SetUp() {
context_engine_ =
ConnectToService<fuchsia::modular::ContextEngine>(kContextEngineUrl);
context_engine_->GetContextDebug(debug_.NewRequest());
}
void ContextEngineTestBase::StartContextAgent(const std::string& url) {
auto agent_bridge =
std::make_unique<MaxwellServiceProviderBridge>(root_environment());
agent_bridge->AddService<fuchsia::modular::ContextWriter>(
[this,
url](fidl::InterfaceRequest<fuchsia::modular::ContextWriter> request) {
fuchsia::modular::ComponentScope scope;
fuchsia::modular::AgentScope agent_scope;
agent_scope.url = url;
scope.set_agent_scope(std::move(agent_scope));
context_engine_->GetWriter(std::move(scope), std::move(request));
});
agent_bridge->AddService<fuchsia::modular::ContextReader>(
[this,
url](fidl::InterfaceRequest<fuchsia::modular::ContextReader> request) {
fuchsia::modular::ComponentScope scope;
fuchsia::modular::AgentScope agent_scope;
agent_scope.url = url;
scope.set_agent_scope(std::move(agent_scope));
context_engine_->GetReader(std::move(scope), std::move(request));
});
StartAgent(url, std::move(agent_bridge));
}
void ContextEngineTestBase::WaitUntilIdle() {
util::WaitUntilIdle(&debug_, &loop_);
}
} // namespace maxwell