Added unit tests for custom ALBUMARTISTSSORT tag support, ref #734
This commit is contained in:
@@ -160,10 +160,10 @@ namespace lms::metadata::tests
|
||||
EXPECT_EQ(release.artistDisplayName, "MyAlbumArtist1 & MyAlbumArtist2");
|
||||
ASSERT_EQ(release.artists.size(), 2);
|
||||
EXPECT_EQ(release.artists[0].name, "MyAlbumArtist1");
|
||||
EXPECT_EQ(release.artists[0].sortName, "MyAlbumArtist1SortName");
|
||||
EXPECT_EQ(release.artists[0].sortName, "MyAlbumArtists1SortName");
|
||||
EXPECT_EQ(release.artists[0].mbid, core::UUID::fromString("6fbf097c-1487-43e8-874b-50dd074398a7"));
|
||||
EXPECT_EQ(release.artists[1].name, "MyAlbumArtist2");
|
||||
EXPECT_EQ(release.artists[1].sortName, "MyAlbumArtist2SortName");
|
||||
EXPECT_EQ(release.artists[1].sortName, "MyAlbumArtists2SortName");
|
||||
EXPECT_EQ(release.artists[1].mbid, core::UUID::fromString("5ed3d6b3-2aed-4a03-828c-3c4d4f7406e1"));
|
||||
EXPECT_TRUE(release.isCompilation);
|
||||
EXPECT_EQ(release.barcode, "MyBarcode");
|
||||
@@ -797,6 +797,68 @@ namespace lms::metadata::tests
|
||||
}
|
||||
}
|
||||
|
||||
TEST(AudioFileParser, albumartist_sortNameFallback)
|
||||
{
|
||||
{
|
||||
const TestTagReader testTags{
|
||||
{
|
||||
{ TagType::Album, { "MyAlbum" } },
|
||||
{ TagType::AlbumArtist, { "MyArtist" } },
|
||||
{ TagType::AlbumArtistSortOrder, { "MyArtistSortName" } },
|
||||
// No ArtistSortOrder
|
||||
}
|
||||
};
|
||||
std::unique_ptr<Track> track{ TestAudioFileParser{}.parseMetaData(testTags) };
|
||||
|
||||
ASSERT_TRUE(track->medium.has_value());
|
||||
ASSERT_TRUE(track->medium->release.has_value());
|
||||
|
||||
const auto& artists{ track->medium->release->artists };
|
||||
ASSERT_EQ(artists.size(), 1);
|
||||
EXPECT_EQ(artists[0].sortName, "MyArtistSortName");
|
||||
}
|
||||
|
||||
{
|
||||
const TestTagReader testTags{
|
||||
{
|
||||
{ TagType::Album, { "MyAlbum" } },
|
||||
{ TagType::AlbumArtist, { "MyArtist" } },
|
||||
{ TagType::AlbumArtistsSortOrder, { "MyArtistSortName" } },
|
||||
// No ArtistSortOrder
|
||||
}
|
||||
};
|
||||
std::unique_ptr<Track> track{ TestAudioFileParser{}.parseMetaData(testTags) };
|
||||
|
||||
ASSERT_TRUE(track->medium.has_value());
|
||||
ASSERT_TRUE(track->medium->release.has_value());
|
||||
|
||||
const auto& artists{ track->medium->release->artists };
|
||||
ASSERT_EQ(artists.size(), 1);
|
||||
EXPECT_EQ(artists[0].sortName, "MyArtistSortName");
|
||||
}
|
||||
|
||||
{
|
||||
const TestTagReader testTags{
|
||||
{
|
||||
{ TagType::Album, { "MyAlbum" } },
|
||||
|
||||
{ TagType::AlbumArtist, { "MyArtist" } },
|
||||
{ TagType::AlbumArtistSortOrder, { "MyArtistSortNameNotUsed" } },
|
||||
{ TagType::AlbumArtistsSortOrder, { "MyArtistSortName" } },
|
||||
// No ArtistSortOrder
|
||||
}
|
||||
};
|
||||
std::unique_ptr<Track> track{ TestAudioFileParser{}.parseMetaData(testTags) };
|
||||
|
||||
ASSERT_TRUE(track->medium.has_value());
|
||||
ASSERT_TRUE(track->medium->release.has_value());
|
||||
|
||||
const auto& artists{ track->medium->release->artists };
|
||||
ASSERT_EQ(artists.size(), 1);
|
||||
EXPECT_EQ(artists[0].sortName, "MyArtistSortName");
|
||||
}
|
||||
}
|
||||
|
||||
TEST(AudioFileParser, advisory)
|
||||
{
|
||||
auto doTest = [](std::string_view value, std::optional<Track::Advisory> expectedValue) {
|
||||
|
||||
@@ -120,7 +120,8 @@ namespace lms::metadata::tests
|
||||
{ TagType::ArtistsSortOrder, { "MyArtists1SortName", "MyArtists2SortName" } },
|
||||
{ TagType::AlbumArtist, { "MyAlbumArtist1 & MyAlbumArtist2" } },
|
||||
{ TagType::AlbumArtists, { "MyAlbumArtist1", "MyAlbumArtist2" } },
|
||||
{ TagType::AlbumArtistsSortOrder, { "MyAlbumArtist1SortName", "MyAlbumArtist2SortName" } },
|
||||
{ TagType::AlbumArtistSortOrder, { "MyAlbumArtist1SortName", "MyAlbumArtist2SortName" } },
|
||||
{ TagType::AlbumArtistsSortOrder, { "MyAlbumArtists1SortName", "MyAlbumArtists2SortName" } },
|
||||
{ TagType::AlbumComment, { "MyAlbumComment" } },
|
||||
{ TagType::Barcode, { "MyBarcode" } },
|
||||
{ TagType::Comment, { "Comment1", "Comment2" } },
|
||||
|
||||
Reference in New Issue
Block a user