blob: 7ede48a6ce5810475d340b2333858bd59affdf3e [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "media/remoting/device_capability_checker.h"
#include "media/base/audio_codecs.h"
#include "media/base/video_codecs.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace media::remoting {
namespace {
constexpr char cc_model_name[] = "Chromecast";
constexpr char cc_ultra_model_name[] = "Chromecast Ultra";
constexpr char cc_dongle_model_name[] = "Eureka Dongle";
} // namespace
TEST(DeviceCapabilityCheckerTest, CheckDeviceCapability) {
EXPECT_TRUE(IsKnownToSupportRemoting(cc_model_name));
EXPECT_TRUE(IsKnownToSupportRemoting(cc_ultra_model_name));
EXPECT_TRUE(IsKnownToSupportRemoting(cc_dongle_model_name));
EXPECT_FALSE(IsKnownToSupportRemoting("Nest"));
}
TEST(DeviceCapabilityCheckerTest, CheckVideoCapability) {
EXPECT_FALSE(IsVideoCodecCompatible(cc_model_name, VideoCodec::kHEVC));
EXPECT_TRUE(IsVideoCodecCompatible(cc_ultra_model_name, VideoCodec::kHEVC));
EXPECT_TRUE(IsVideoCodecCompatible(cc_ultra_model_name, VideoCodec::kVP9));
EXPECT_TRUE(IsVideoCodecCompatible(cc_dongle_model_name, VideoCodec::kVP8));
}
TEST(DeviceCapabilityCheckerTest, CheckAudioCapability) {
EXPECT_FALSE(IsAudioCodecCompatible(cc_ultra_model_name, AudioCodec::kMP3));
EXPECT_TRUE(IsAudioCodecCompatible(cc_model_name, AudioCodec::kAAC));
EXPECT_TRUE(IsAudioCodecCompatible(cc_dongle_model_name, AudioCodec::kOpus));
}
} // namespace media::remoting