mirror of
https://github.com/taglib/taglib.git
synced 2025-07-18 21:14:23 -04:00
Unify File::save(...) APIs between file formats that support ID3v2
Closes #922
This commit is contained in:
@ -40,6 +40,7 @@ class TestAIFF : public CppUnit::TestFixture
|
||||
CPPUNIT_TEST(testAiffProperties);
|
||||
CPPUNIT_TEST(testAiffCProperties);
|
||||
CPPUNIT_TEST(testSaveID3v2);
|
||||
CPPUNIT_TEST(testSaveID3v23);
|
||||
CPPUNIT_TEST(testDuplicateID3v2);
|
||||
CPPUNIT_TEST(testFuzzedFile1);
|
||||
CPPUNIT_TEST(testFuzzedFile2);
|
||||
@ -105,6 +106,29 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void testSaveID3v23()
|
||||
{
|
||||
ScopedFileCopy copy("empty", ".aiff");
|
||||
string newname = copy.fileName();
|
||||
|
||||
String xxx = ByteVector(254, 'X');
|
||||
{
|
||||
RIFF::AIFF::File f(newname.c_str());
|
||||
CPPUNIT_ASSERT_EQUAL(false, f.hasID3v2Tag());
|
||||
|
||||
f.tag()->setTitle(xxx);
|
||||
f.tag()->setArtist("Artist A");
|
||||
f.save(ID3v2::v3);
|
||||
CPPUNIT_ASSERT_EQUAL(true, f.hasID3v2Tag());
|
||||
}
|
||||
{
|
||||
RIFF::AIFF::File f2(newname.c_str());
|
||||
CPPUNIT_ASSERT_EQUAL((unsigned int)3, f2.tag()->header()->majorVersion());
|
||||
CPPUNIT_ASSERT_EQUAL(String("Artist A"), f2.tag()->artist());
|
||||
CPPUNIT_ASSERT_EQUAL(xxx, f2.tag()->title());
|
||||
}
|
||||
}
|
||||
|
||||
void testDuplicateID3v2()
|
||||
{
|
||||
ScopedFileCopy copy("duplicate_id3v2", ".aiff");
|
||||
|
@ -44,6 +44,7 @@ class TestWAV : public CppUnit::TestFixture
|
||||
CPPUNIT_TEST(testFloatProperties);
|
||||
CPPUNIT_TEST(testZeroSizeDataChunk);
|
||||
CPPUNIT_TEST(testID3v2Tag);
|
||||
CPPUNIT_TEST(testSaveID3v23);
|
||||
CPPUNIT_TEST(testInfoTag);
|
||||
CPPUNIT_TEST(testStripTags);
|
||||
CPPUNIT_TEST(testDuplicateTags);
|
||||
@ -139,6 +140,29 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void testSaveID3v23()
|
||||
{
|
||||
ScopedFileCopy copy("empty", ".wav");
|
||||
string newname = copy.fileName();
|
||||
|
||||
String xxx = ByteVector(254, 'X');
|
||||
{
|
||||
RIFF::WAV::File f(newname.c_str());
|
||||
CPPUNIT_ASSERT_EQUAL(false, f.hasID3v2Tag());
|
||||
|
||||
f.tag()->setTitle(xxx);
|
||||
f.tag()->setArtist("Artist A");
|
||||
f.save(RIFF::WAV::File::AllTags, File::StripOthers, ID3v2::v3);
|
||||
CPPUNIT_ASSERT_EQUAL(true, f.hasID3v2Tag());
|
||||
}
|
||||
{
|
||||
RIFF::WAV::File f2(newname.c_str());
|
||||
CPPUNIT_ASSERT_EQUAL((unsigned int)3, f2.ID3v2Tag()->header()->majorVersion());
|
||||
CPPUNIT_ASSERT_EQUAL(String("Artist A"), f2.tag()->artist());
|
||||
CPPUNIT_ASSERT_EQUAL(xxx, f2.tag()->title());
|
||||
}
|
||||
}
|
||||
|
||||
void testInfoTag()
|
||||
{
|
||||
ScopedFileCopy copy("empty", ".wav");
|
||||
@ -191,7 +215,7 @@ public:
|
||||
RIFF::WAV::File f(filename.c_str());
|
||||
CPPUNIT_ASSERT(f.hasID3v2Tag());
|
||||
CPPUNIT_ASSERT(f.hasInfoTag());
|
||||
f.save(RIFF::WAV::File::ID3v2, true);
|
||||
f.save(RIFF::WAV::File::ID3v2, File::StripOthers);
|
||||
}
|
||||
{
|
||||
RIFF::WAV::File f(filename.c_str());
|
||||
@ -205,7 +229,7 @@ public:
|
||||
RIFF::WAV::File f(filename.c_str());
|
||||
CPPUNIT_ASSERT(f.hasID3v2Tag());
|
||||
CPPUNIT_ASSERT(f.hasInfoTag());
|
||||
f.save(RIFF::WAV::File::Info, true);
|
||||
f.save(RIFF::WAV::File::Info, File::StripOthers);
|
||||
}
|
||||
{
|
||||
RIFF::WAV::File f(filename.c_str());
|
||||
|
Reference in New Issue
Block a user