aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorUrs Fleisch <ufleisch@users.sourceforge.net>2021-01-10 15:16:45 +0100
committerUrs Fleisch <ufleisch@users.sourceforge.net>2021-01-10 15:19:10 +0100
commitcf6c68bafc3246773a93e2cdeeb01ad5836150f0 (patch)
tree193accd55381c9cda7df397fd1d70ef91d93d549 /tests
parentf7c24930cd9e8a02e542d97d98d9fd64cb6d0d73 (diff)
Support a consistent set of MusicBrainz properties where possible
The support for MusicBrainz properties is enhanced with "ARTISTS", "ASIN", "RELEASECOUNTRY", "RELEASESTATUS", "RELEASETYPE", "MUSICBRAINZ_RELEASETRACKID", "ORIGINALDATE" on APE, ASF, MP4, ID3v2, and Xiph tags.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_ape.cpp52
-rw-r--r--tests/test_asf.cpp79
-rw-r--r--tests/test_flac.cpp55
-rw-r--r--tests/test_mp4.cpp6
-rw-r--r--tests/test_mpeg.cpp4
5 files changed, 196 insertions, 0 deletions
diff --git a/tests/test_ape.cpp b/tests/test_ape.cpp
index 8c120483..81b8510f 100644
--- a/tests/test_ape.cpp
+++ b/tests/test_ape.cpp
@@ -155,6 +155,58 @@ public:
}
}
+ void testProperties()
+ {
+ PropertyMap tags;
+ tags["ALBUM"] = StringList("Album");
+ tags["ALBUMARTIST"] = StringList("Album Artist");
+ tags["ALBUMARTISTSORT"] = StringList("Album Artist Sort");
+ tags["ALBUMSORT"] = StringList("Album Sort");
+ tags["ARTIST"] = StringList("Artist");
+ tags["ARTISTS"] = StringList("Artists");
+ tags["ARTISTSORT"] = StringList("Artist Sort");
+ tags["ASIN"] = StringList("ASIN");
+ tags["BARCODE"] = StringList("Barcode");
+ tags["CATALOGNUMBER"] = StringList("Catalog Number 1").append("Catalog Number 2");
+ tags["COMMENT"] = StringList("Comment");
+ tags["DATE"] = StringList("2021-01-10");
+ tags["DISCNUMBER"] = StringList("3/5");
+ tags["GENRE"] = StringList("Genre");
+ tags["ISRC"] = StringList("UKAAA0500001");
+ tags["LABEL"] = StringList("Label 1").append("Label 2");
+ tags["MEDIA"] = StringList("Media");
+ tags["MUSICBRAINZ_ALBUMARTISTID"] = StringList("MusicBrainz_AlbumartistID");
+ tags["MUSICBRAINZ_ALBUMID"] = StringList("MusicBrainz_AlbumID");
+ tags["MUSICBRAINZ_ARTISTID"] = StringList("MusicBrainz_ArtistID");
+ tags["MUSICBRAINZ_RELEASEGROUPID"] = StringList("MusicBrainz_ReleasegroupID");
+ tags["MUSICBRAINZ_RELEASETRACKID"] = StringList("MusicBrainz_ReleasetrackID");
+ tags["MUSICBRAINZ_TRACKID"] = StringList("MusicBrainz_TrackID");
+ tags["ORIGINALDATE"] = StringList("2021-01-09");
+ tags["RELEASECOUNTRY"] = StringList("Release Country");
+ tags["RELEASESTATUS"] = StringList("Release Status");
+ tags["RELEASETYPE"] = StringList("Release Type");
+ tags["SCRIPT"] = StringList("Script");
+ tags["TITLE"] = StringList("Title");
+ tags["TRACKNUMBER"] = StringList("2/3");
+
+ ScopedFileCopy copy("mac-399", ".ape");
+ {
+ APE::File f(copy.fileName().c_str());
+ PropertyMap properties = f.properties();
+ CPPUNIT_ASSERT(properties.isEmpty());
+ f.setProperties(tags);
+ f.save();
+ }
+ {
+ const APE::File f(copy.fileName().c_str());
+ PropertyMap properties = f.properties();
+ if (tags != properties) {
+ CPPUNIT_ASSERT_EQUAL(tags.toString(), properties.toString());
+ }
+ CPPUNIT_ASSERT(tags == properties);
+ }
+ }
+
void testRepeatedSave()
{
ScopedFileCopy copy("mac-399", ".ape");
diff --git a/tests/test_asf.cpp b/tests/test_asf.cpp
index e9b8dab7..2abe9fe5 100644
--- a/tests/test_asf.cpp
+++ b/tests/test_asf.cpp
@@ -50,6 +50,7 @@ class TestASF : public CppUnit::TestFixture
CPPUNIT_TEST(testSavePicture);
CPPUNIT_TEST(testSaveMultiplePictures);
CPPUNIT_TEST(testProperties);
+ CPPUNIT_TEST(testPropertiesAllSupported);
CPPUNIT_TEST(testRepeatedSave);
CPPUNIT_TEST_SUITE_END();
@@ -302,6 +303,84 @@ public:
CPPUNIT_ASSERT_EQUAL(StringList("3"), tags["DISCNUMBER"]);
}
+ void testPropertiesAllSupported()
+ {
+ PropertyMap tags;
+ tags["ACOUSTID_ID"] = StringList("Acoustid ID");
+ tags["ACOUSTID_FINGERPRINT"] = StringList("Acoustid Fingerprint");
+ tags["ALBUM"] = StringList("Album");
+ tags["ALBUMARTIST"] = StringList("Album Artist");
+ tags["ALBUMARTISTSORT"] = StringList("Album Artist Sort");
+ tags["ALBUMSORT"] = StringList("Album Sort");
+ tags["ARTIST"] = StringList("Artist");
+ tags["ARTISTS"] = StringList("Artists");
+ tags["ARTISTSORT"] = StringList("Artist Sort");
+ tags["ASIN"] = StringList("ASIN");
+ tags["BARCODE"] = StringList("Barcode");
+ tags["BPM"] = StringList("123");
+ tags["CATALOGNUMBER"] = StringList("Catalog Number");
+ tags["COMMENT"] = StringList("Comment");
+ tags["COMPOSER"] = StringList("Composer");
+ tags["CONDUCTOR"] = StringList("Conductor");
+ tags["COPYRIGHT"] = StringList("2021 Copyright");
+ tags["DATE"] = StringList("2021-01-03 12:29:23");
+ tags["DISCNUMBER"] = StringList("3/5");
+ tags["DISCSUBTITLE"] = StringList("Disc Subtitle");
+ tags["ENCODEDBY"] = StringList("Encoded by");
+ tags["GENRE"] = StringList("Genre");
+ tags["GROUPING"] = StringList("Grouping");
+ tags["ISRC"] = StringList("UKAAA0500001");
+ tags["LABEL"] = StringList("Label");
+ tags["LANGUAGE"] = StringList("eng");
+ tags["LYRICIST"] = StringList("Lyricist");
+ tags["LYRICS"] = StringList("Lyrics");
+ tags["MEDIA"] = StringList("Media");
+ tags["MOOD"] = StringList("Mood");
+ tags["MUSICBRAINZ_ALBUMARTISTID"] = StringList("MusicBrainz_AlbumartistID");
+ tags["MUSICBRAINZ_ALBUMID"] = StringList("MusicBrainz_AlbumID");
+ tags["MUSICBRAINZ_ARTISTID"] = StringList("MusicBrainz_ArtistID");
+ tags["MUSICBRAINZ_RELEASEGROUPID"] = StringList("MusicBrainz_ReleasegroupID");
+ tags["MUSICBRAINZ_RELEASETRACKID"] = StringList("MusicBrainz_ReleasetrackID");
+ tags["MUSICBRAINZ_TRACKID"] = StringList("MusicBrainz_TrackID");
+ tags["MUSICBRAINZ_WORKID"] = StringList("MusicBrainz_WorkID");
+ tags["MUSICIP_PUID"] = StringList("MusicIP PUID");
+ tags["ORIGINALDATE"] = StringList("2021-01-03 13:52:19");
+ tags["PRODUCER"] = StringList("Producer");
+ tags["RELEASECOUNTRY"] = StringList("Release Country");
+ tags["RELEASESTATUS"] = StringList("Release Status");
+ tags["RELEASETYPE"] = StringList("Release Type");
+ tags["REMIXER"] = StringList("Remixer");
+ tags["SCRIPT"] = StringList("Script");
+ tags["SUBTITLE"] = StringList("Subtitle");
+ tags["TITLE"] = StringList("Title");
+ tags["TITLESORT"] = StringList("Title Sort");
+ tags["TRACKNUMBER"] = StringList("2/4");
+
+ ScopedFileCopy copy("silence-1", ".wma");
+ {
+ ASF::File f(copy.fileName().c_str());
+ ASF::Tag *asfTag = f.tag();
+ asfTag->setTitle("");
+ asfTag->attributeListMap().clear();
+ f.save();
+ }
+ {
+ ASF::File f(copy.fileName().c_str());
+ PropertyMap properties = f.properties();
+ CPPUNIT_ASSERT(properties.isEmpty());
+ f.setProperties(tags);
+ f.save();
+ }
+ {
+ const ASF::File f(copy.fileName().c_str());
+ PropertyMap properties = f.properties();
+ if (tags != properties) {
+ CPPUNIT_ASSERT_EQUAL(tags.toString(), properties.toString());
+ }
+ CPPUNIT_ASSERT(tags == properties);
+ }
+ }
+
void testRepeatedSave()
{
ScopedFileCopy copy("silence-1", ".wma");
diff --git a/tests/test_flac.cpp b/tests/test_flac.cpp
index 7c25a83b..c83f1e90 100644
--- a/tests/test_flac.cpp
+++ b/tests/test_flac.cpp
@@ -54,6 +54,7 @@ class TestFLAC : public CppUnit::TestFixture
CPPUNIT_TEST(testRepeatedSave3);
CPPUNIT_TEST(testSaveMultipleValues);
CPPUNIT_TEST(testDict);
+ CPPUNIT_TEST(testProperties);
CPPUNIT_TEST(testInvalid);
CPPUNIT_TEST(testAudioProperties);
CPPUNIT_TEST(testZeroSizedPadding1);
@@ -313,6 +314,60 @@ public:
}
}
+ void testProperties()
+ {
+ PropertyMap tags;
+ tags["ALBUM"] = StringList("Album");
+ tags["ALBUMARTIST"] = StringList("Album Artist");
+ tags["ALBUMARTISTSORT"] = StringList("Album Artist Sort");
+ tags["ALBUMSORT"] = StringList("Album Sort");
+ tags["ARTIST"] = StringList("Artist");
+ tags["ARTISTS"] = StringList("Artists");
+ tags["ARTISTSORT"] = StringList("Artist Sort");
+ tags["ASIN"] = StringList("ASIN");
+ tags["BARCODE"] = StringList("Barcode");
+ tags["CATALOGNUMBER"] = StringList("Catalog Number 1").append("Catalog Number 2");
+ tags["COMMENT"] = StringList("Comment");
+ tags["DATE"] = StringList("2021-01-10");
+ tags["DISCNUMBER"] = StringList("3");
+ tags["DISCTOTAL"] = StringList("5");
+ tags["GENRE"] = StringList("Genre");
+ tags["ISRC"] = StringList("UKAAA0500001");
+ tags["LABEL"] = StringList("Label 1").append("Label 2");
+ tags["MEDIA"] = StringList("Media");
+ tags["MUSICBRAINZ_ALBUMARTISTID"] = StringList("MusicBrainz_AlbumartistID");
+ tags["MUSICBRAINZ_ALBUMID"] = StringList("MusicBrainz_AlbumID");
+ tags["MUSICBRAINZ_ARTISTID"] = StringList("MusicBrainz_ArtistID");
+ tags["MUSICBRAINZ_RELEASEGROUPID"] = StringList("MusicBrainz_ReleasegroupID");
+ tags["MUSICBRAINZ_RELEASETRACKID"] = StringList("MusicBrainz_ReleasetrackID");
+ tags["MUSICBRAINZ_TRACKID"] = StringList("MusicBrainz_TrackID");
+ tags["ORIGINALDATE"] = StringList("2021-01-09");
+ tags["RELEASECOUNTRY"] = StringList("Release Country");
+ tags["RELEASESTATUS"] = StringList("Release Status");
+ tags["RELEASETYPE"] = StringList("Release Type");
+ tags["SCRIPT"] = StringList("Script");
+ tags["TITLE"] = StringList("Title");
+ tags["TRACKNUMBER"] = StringList("2");
+ tags["TRACKTOTAL"] = StringList("4");
+
+ ScopedFileCopy copy("no-tags", ".flac");
+ {
+ FLAC::File f(copy.fileName().c_str());
+ PropertyMap properties = f.properties();
+ CPPUNIT_ASSERT(properties.isEmpty());
+ f.setProperties(tags);
+ f.save();
+ }
+ {
+ const FLAC::File f(copy.fileName().c_str());
+ PropertyMap properties = f.properties();
+ if (tags != properties) {
+ CPPUNIT_ASSERT_EQUAL(tags.toString(), properties.toString());
+ }
+ CPPUNIT_ASSERT(tags == properties);
+ }
+ }
+
void testInvalid()
{
ScopedFileCopy copy("silence-44-s", ".flac");
diff --git a/tests/test_mp4.cpp b/tests/test_mp4.cpp
index 71fea15e..5f96c9c0 100644
--- a/tests/test_mp4.cpp
+++ b/tests/test_mp4.cpp
@@ -435,6 +435,7 @@ public:
tags["ALBUMARTISTSORT"] = StringList("Album Artist Sort");
tags["ALBUMSORT"] = StringList("Album Sort");
tags["ARTIST"] = StringList("Artist");
+ tags["ARTISTS"] = StringList("Artists");
tags["ARTISTSORT"] = StringList("Artist Sort");
tags["ASIN"] = StringList("ASIN");
tags["BARCODE"] = StringList("Barcode");
@@ -471,14 +472,19 @@ public:
tags["MUSICBRAINZ_ALBUMID"] = StringList("MusicBrainz_AlbumID");
tags["MUSICBRAINZ_ARTISTID"] = StringList("MusicBrainz_ArtistID");
tags["MUSICBRAINZ_RELEASEGROUPID"] = StringList("MusicBrainz_ReleasegroupID");
+ tags["MUSICBRAINZ_RELEASETRACKID"] = StringList("MusicBrainz_ReleasetrackID");
tags["MUSICBRAINZ_TRACKID"] = StringList("MusicBrainz_TrackID");
tags["MUSICBRAINZ_WORKID"] = StringList("MusicBrainz_WorkID");
+ tags["ORIGINALDATE"] = StringList("2021-01-03 13:52:19");
tags["PODCAST"] = StringList("1");
tags["PODCASTCATEGORY"] = StringList("Podcast Category");
tags["PODCASTDESC"] = StringList("Podcast Description");
tags["PODCASTID"] = StringList("Podcast ID");
tags["PODCASTURL"] = StringList("Podcast URL");
tags["PRODUCER"] = StringList("Producer");
+ tags["RELEASECOUNTRY"] = StringList("Release Country");
+ tags["RELEASESTATUS"] = StringList("Release Status");
+ tags["RELEASETYPE"] = StringList("Release Type");
tags["REMIXER"] = StringList("Remixer");
tags["SCRIPT"] = StringList("Script");
tags["SHOWSORT"] = StringList("Show Sort");
diff --git a/tests/test_mpeg.cpp b/tests/test_mpeg.cpp
index 9df5c861..1db1c9d4 100644
--- a/tests/test_mpeg.cpp
+++ b/tests/test_mpeg.cpp
@@ -347,6 +347,7 @@ public:
tags["MUSICBRAINZ_ALBUMARTISTID"] = StringList("MusicBrainz_AlbumartistID");
tags["MUSICBRAINZ_ARTISTID"] = StringList("MusicBrainz_ArtistID");
tags["MUSICBRAINZ_RELEASEGROUPID"] = StringList("MusicBrainz_ReleasegroupID");
+ tags["MUSICBRAINZ_RELEASETRACKID"] = StringList("MusicBrainz_ReleasetrackID");
tags["MUSICBRAINZ_TRACKID"] = StringList("MusicBrainz_TrackID");
tags["MUSICBRAINZ_WORKID"] = StringList("MusicBrainz_WorkID");
tags["ORIGINALALBUM"] = StringList("Original Album");
@@ -369,6 +370,9 @@ public:
tags["PUBLISHERWEBPAGE"] = StringList("Publisher Web Page");
tags["RADIOSTATION"] = StringList("Radio Station");
tags["RADIOSTATIONOWNER"] = StringList("Radio Station Owner");
+ tags["RELEASECOUNTRY"] = StringList("Release Country");
+ tags["RELEASESTATUS"] = StringList("Release Status");
+ tags["RELEASETYPE"] = StringList("Release Type");
tags["REMIXER"] = StringList("Remixer");
tags["SCRIPT"] = StringList("Script");
tags["SUBTITLE"] = StringList("Subtitle");