#include <memory>
#include "base/test/scoped_feature_list.h"
#include "base/test/task_environment.h"
#include "chromecast/media/api/test/mock_cma_backend_factory.h"
#include "chromecast/media/service/create_mojo_media_client.h"
#include "chromecast/media/service/video_geometry_setter_service.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace chromecast {
namespace media {
namespace {
using ::testing::NotNull;
TEST(CreateMojoMediaClientStarboardTest, CreatesStarboardClientWhenFlagIsSet) {
base::test::TaskEnvironment task_environment;
base::test::ScopedFeatureList features;
features.InitFromCommandLine("enable_starboard_renderer",
"");
MockCmaBackendFactory cma_factory;
CreateCdmFactoryCB factory_cb = base::BindRepeating(
+[](::media::mojom::FrameInterfaceFactory*)
-> std::unique_ptr<::media::CdmFactory> { return nullptr; });
VideoGeometrySetterService geometry_setter_service;
EnableBufferingCB enable_buffering_cb =
base::BindRepeating(+[]() { return true; });
EXPECT_THAT(CreateMojoMediaClientForCast(&cma_factory, std::move(factory_cb),
nullptr,
nullptr,
&geometry_setter_service,
std::move(enable_buffering_cb)),
NotNull());
}
TEST(CreateMojoMediaClientStarboardTest, CreatesCmaClientWhenFlagIsNotSet) {
base::test::TaskEnvironment task_environment;
base::test::ScopedFeatureList features;
features.InitFromCommandLine(
"",
"enable_starboard_renderer");
MockCmaBackendFactory cma_factory;
CreateCdmFactoryCB factory_cb = base::BindRepeating(
+[](::media::mojom::FrameInterfaceFactory*)
-> std::unique_ptr<::media::CdmFactory> { return nullptr; });
VideoGeometrySetterService geometry_setter_service;
EnableBufferingCB enable_buffering_cb =
base::BindRepeating(+[]() { return true; });
EXPECT_THAT(CreateMojoMediaClientForCast(&cma_factory, std::move(factory_cb),
nullptr,
nullptr,
&geometry_setter_service,
std::move(enable_buffering_cb)),
NotNull());
}
}
}
}