blob: 2153db994ffb04c009f2e02da6ecdff8668507f1 [file] [log] [blame]
// Copyright 2021 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/ui/lib/display/get_hardware_display_controller.h"
#include <lib/fpromise/promise.h>
#include <lib/fpromise/single_threaded_executor.h>
#include <lib/gtest/real_loop_fixture.h>
#include <lib/sys/cpp/component_context.h>
#include <gtest/gtest.h>
#include "src/ui/lib/display/hardware_display_controller_provider_impl.h"
namespace ui_display {
namespace test {
struct fake_context : fpromise::context {
fpromise::executor* executor() const override { return nullptr; }
fpromise::suspended_task suspend_task() override { return fpromise::suspended_task(); }
};
class GetHardwareDisplayControllerTest : public gtest::RealLoopFixture {};
TEST_F(GetHardwareDisplayControllerTest, ErrorCase) {
auto promise = GetHardwareDisplayController();
fake_context context;
EXPECT_TRUE(promise(context).is_error());
}
TEST_F(GetHardwareDisplayControllerTest, WithHardwareDisplayControllerProviderImpl) {
std::unique_ptr<sys::ComponentContext> app_context = sys::ComponentContext::Create();
ui_display::HardwareDisplayControllerProviderImpl hdcp_service_impl(app_context.get());
auto promise = GetHardwareDisplayController(&hdcp_service_impl);
fake_context context;
EXPECT_FALSE(promise(context).is_error());
}
} // namespace test
} // namespace ui_display