mpd/test/tag/TestMixRampParser.cxx
2023-03-06 14:59:48 +01:00

74 lines
2.1 KiB
C++

// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright The Music Player Daemon Project
#include "tag/MixRampParser.cxx"
#include "tag/MixRampInfo.hxx"
#include <gtest/gtest.h>
TEST(MixRamp, Parser)
{
MixRampInfo info;
EXPECT_FALSE(info.IsDefined());
EXPECT_EQ(info.GetStart(), nullptr);
EXPECT_EQ(info.GetEnd(), nullptr);
EXPECT_FALSE(ParseMixRampTag(info, "foo", "bar"));
EXPECT_FALSE(info.IsDefined());
EXPECT_EQ(info.GetStart(), nullptr);
EXPECT_EQ(info.GetEnd(), nullptr);
EXPECT_TRUE(ParseMixRampTag(info, "mixramp_start", "foo"));
EXPECT_TRUE(info.IsDefined());
EXPECT_STREQ(info.GetStart(), "foo");
EXPECT_EQ(info.GetEnd(), nullptr);
EXPECT_TRUE(ParseMixRampTag(info, "MIXRAMP_START", "bar"));
EXPECT_TRUE(info.IsDefined());
EXPECT_STREQ(info.GetStart(), "bar");
EXPECT_EQ(info.GetEnd(), nullptr);
EXPECT_TRUE(ParseMixRampTag(info, "mixramp_end", "abc"));
EXPECT_TRUE(info.IsDefined());
EXPECT_STREQ(info.GetStart(), "bar");
EXPECT_STREQ(info.GetEnd(), "abc");
EXPECT_TRUE(ParseMixRampTag(info, "MIXRAMP_END", "def"));
EXPECT_TRUE(info.IsDefined());
EXPECT_STREQ(info.GetStart(), "bar");
EXPECT_STREQ(info.GetEnd(), "def");
}
TEST(MixRamp, VorbisParser)
{
MixRampInfo info;
EXPECT_FALSE(info.IsDefined());
EXPECT_EQ(info.GetStart(), nullptr);
EXPECT_EQ(info.GetEnd(), nullptr);
EXPECT_FALSE(ParseMixRampVorbis(info, "foo=bar"));
EXPECT_FALSE(info.IsDefined());
EXPECT_EQ(info.GetStart(), nullptr);
EXPECT_EQ(info.GetEnd(), nullptr);
EXPECT_TRUE(ParseMixRampVorbis(info, "mixramp_start=foo"));
EXPECT_TRUE(info.IsDefined());
EXPECT_STREQ(info.GetStart(), "foo");
EXPECT_EQ(info.GetEnd(), nullptr);
EXPECT_TRUE(ParseMixRampVorbis(info, "MIXRAMP_START=bar"));
EXPECT_TRUE(info.IsDefined());
EXPECT_STREQ(info.GetStart(), "bar");
EXPECT_EQ(info.GetEnd(), nullptr);
EXPECT_TRUE(ParseMixRampVorbis(info, "mixramp_end=abc"));
EXPECT_TRUE(info.IsDefined());
EXPECT_STREQ(info.GetStart(), "bar");
EXPECT_STREQ(info.GetEnd(), "abc");
EXPECT_TRUE(ParseMixRampVorbis(info, "MIXRAMP_END=def"));
EXPECT_TRUE(info.IsDefined());
EXPECT_STREQ(info.GetStart(), "bar");
EXPECT_STREQ(info.GetEnd(), "def");
}