1 // Copyright 2022 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "media/remoting/device_capability_checker.h"
7 #include "media/base/audio_codecs.h"
8 #include "media/base/video_codecs.h"
9 #include "testing/gtest/include/gtest/gtest.h"
11 namespace media::remoting {
14 constexpr char cc_model_name[] = "Chromecast";
15 constexpr char cc_ultra_model_name[] = "Chromecast Ultra";
16 constexpr char cc_dongle_model_name[] = "Eureka Dongle";
19 TEST(DeviceCapabilityCheckerTest, CheckDeviceCapability) {
20 EXPECT_TRUE(IsKnownToSupportRemoting(cc_model_name));
21 EXPECT_TRUE(IsKnownToSupportRemoting(cc_ultra_model_name));
22 EXPECT_TRUE(IsKnownToSupportRemoting(cc_dongle_model_name));
23 EXPECT_FALSE(IsKnownToSupportRemoting("Nest"));
26 TEST(DeviceCapabilityCheckerTest, CheckVideoCapability) {
27 EXPECT_FALSE(IsVideoCodecCompatible(cc_model_name, VideoCodec::kHEVC));
28 EXPECT_TRUE(IsVideoCodecCompatible(cc_ultra_model_name, VideoCodec::kHEVC));
29 EXPECT_TRUE(IsVideoCodecCompatible(cc_ultra_model_name, VideoCodec::kVP9));
30 EXPECT_TRUE(IsVideoCodecCompatible(cc_dongle_model_name, VideoCodec::kVP8));
33 TEST(DeviceCapabilityCheckerTest, CheckAudioCapability) {
34 EXPECT_FALSE(IsAudioCodecCompatible(cc_ultra_model_name, AudioCodec::kMP3));
35 EXPECT_TRUE(IsAudioCodecCompatible(cc_model_name, AudioCodec::kAAC));
36 EXPECT_TRUE(IsAudioCodecCompatible(cc_dongle_model_name, AudioCodec::kOpus));
38 } // namespace media::remoting