string newname = copy.fileName();
ID3v2::TextIdentificationFrame *tf;
- MPEG::File foo(newname.c_str());
- tf = new ID3v2::TextIdentificationFrame("TDOR", String::Latin1);
- tf->setText("2011-03-16");
- foo.ID3v2Tag()->addFrame(tf);
- tf = new ID3v2::TextIdentificationFrame("TDRC", String::Latin1);
- tf->setText("2012-04-17T12:01");
- foo.ID3v2Tag()->addFrame(tf);
- tf = new ID3v2::TextIdentificationFrame("TMCL", String::Latin1);
- tf->setText(StringList().append("Guitar").append("Artist 1").append("Drums").append("Artist 2"));
- foo.ID3v2Tag()->addFrame(tf);
- tf = new ID3v2::TextIdentificationFrame("TIPL", String::Latin1);
- tf->setText(StringList().append("Producer").append("Artist 3").append("Mastering").append("Artist 4"));
- foo.ID3v2Tag()->addFrame(tf);
- foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TDRL", String::Latin1));
- foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TDTG", String::Latin1));
- foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TMOO", String::Latin1));
- foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TPRO", String::Latin1));
- foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TSOA", String::Latin1));
- foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TSOT", String::Latin1));
- foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TSST", String::Latin1));
- foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TSOP", String::Latin1));
- foo.save(MPEG::File::AllTags, true, 3);
-
- MPEG::File bar(newname.c_str());
- tf = static_cast<ID3v2::TextIdentificationFrame *>(bar.ID3v2Tag()->frameList("TDOR").front());
- CPPUNIT_ASSERT(tf);
- CPPUNIT_ASSERT_EQUAL(TagLib::uint(1), tf->fieldList().size());
- CPPUNIT_ASSERT_EQUAL(String("2011"), tf->fieldList().front());
- tf = static_cast<ID3v2::TextIdentificationFrame *>(bar.ID3v2Tag()->frameList("TDRC").front());
- CPPUNIT_ASSERT(tf);
- CPPUNIT_ASSERT_EQUAL(TagLib::uint(1), tf->fieldList().size());
- CPPUNIT_ASSERT_EQUAL(String("2012"), tf->fieldList().front());
- tf = dynamic_cast<ID3v2::TextIdentificationFrame *>(bar.ID3v2Tag()->frameList("TIPL").front());
- CPPUNIT_ASSERT(tf);
- CPPUNIT_ASSERT_EQUAL(TagLib::uint(8), tf->fieldList().size());
- CPPUNIT_ASSERT_EQUAL(String("Guitar"), tf->fieldList()[0]);
- CPPUNIT_ASSERT_EQUAL(String("Artist 1"), tf->fieldList()[1]);
- CPPUNIT_ASSERT_EQUAL(String("Drums"), tf->fieldList()[2]);
- CPPUNIT_ASSERT_EQUAL(String("Artist 2"), tf->fieldList()[3]);
- CPPUNIT_ASSERT_EQUAL(String("Producer"), tf->fieldList()[4]);
- CPPUNIT_ASSERT_EQUAL(String("Artist 3"), tf->fieldList()[5]);
- CPPUNIT_ASSERT_EQUAL(String("Mastering"), tf->fieldList()[6]);
- CPPUNIT_ASSERT_EQUAL(String("Artist 4"), tf->fieldList()[7]);
- CPPUNIT_ASSERT(!bar.ID3v2Tag()->frameListMap().contains("TDRL"));
- CPPUNIT_ASSERT(!bar.ID3v2Tag()->frameListMap().contains("TDTG"));
- CPPUNIT_ASSERT(!bar.ID3v2Tag()->frameListMap().contains("TMOO"));
- CPPUNIT_ASSERT(!bar.ID3v2Tag()->frameListMap().contains("TPRO"));
-#ifdef NO_ITUNES_HACKS
- CPPUNIT_ASSERT(!bar.ID3v2Tag()->frameListMap().contains("TSOA"));
- CPPUNIT_ASSERT(!bar.ID3v2Tag()->frameListMap().contains("TSOT"));
- CPPUNIT_ASSERT(!bar.ID3v2Tag()->frameListMap().contains("TSOP"));
+ {
+ MPEG::File foo(newname.c_str());
+ tf = new ID3v2::TextIdentificationFrame("TDOR", String::Latin1);
+ tf->setText("2011-03-16");
+ foo.ID3v2Tag()->addFrame(tf);
+ tf = new ID3v2::TextIdentificationFrame("TDRC", String::Latin1);
+ tf->setText("2012-04-17T12:01");
+ foo.ID3v2Tag()->addFrame(tf);
+ tf = new ID3v2::TextIdentificationFrame("TMCL", String::Latin1);
+ tf->setText(StringList().append("Guitar").append("Artist 1").append("Drums").append("Artist 2"));
+ foo.ID3v2Tag()->addFrame(tf);
+ tf = new ID3v2::TextIdentificationFrame("TIPL", String::Latin1);
+ tf->setText(StringList().append("Producer").append("Artist 3").append("Mastering").append("Artist 4"));
+ foo.ID3v2Tag()->addFrame(tf);
+ foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TDRL", String::Latin1));
+ foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TDTG", String::Latin1));
+ foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TMOO", String::Latin1));
+ foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TPRO", String::Latin1));
+ foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TSOA", String::Latin1));
+ foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TSOT", String::Latin1));
+ foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TSST", String::Latin1));
+ foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TSOP", String::Latin1));
+ foo.save(MPEG::File::AllTags, true, 3);
+ }
+ {
+ MPEG::File bar(newname.c_str());
+ tf = static_cast<ID3v2::TextIdentificationFrame *>(bar.ID3v2Tag()->frameList("TDOR").front());
+ CPPUNIT_ASSERT(tf);
+ CPPUNIT_ASSERT_EQUAL((unsigned int)1, tf->fieldList().size());
+ CPPUNIT_ASSERT_EQUAL(String("2011"), tf->fieldList().front());
+ tf = static_cast<ID3v2::TextIdentificationFrame *>(bar.ID3v2Tag()->frameList("TDRC").front());
+ CPPUNIT_ASSERT(tf);
+ CPPUNIT_ASSERT_EQUAL((unsigned int)1, tf->fieldList().size());
+ CPPUNIT_ASSERT_EQUAL(String("2012-04-17T12:01"), tf->fieldList().front());
+ tf = dynamic_cast<ID3v2::TextIdentificationFrame *>(bar.ID3v2Tag()->frameList("TIPL").front());
+ CPPUNIT_ASSERT(tf);
+ CPPUNIT_ASSERT_EQUAL((unsigned int)8, tf->fieldList().size());
+ CPPUNIT_ASSERT_EQUAL(String("Guitar"), tf->fieldList()[0]);
+ CPPUNIT_ASSERT_EQUAL(String("Artist 1"), tf->fieldList()[1]);
+ CPPUNIT_ASSERT_EQUAL(String("Drums"), tf->fieldList()[2]);
+ CPPUNIT_ASSERT_EQUAL(String("Artist 2"), tf->fieldList()[3]);
+ CPPUNIT_ASSERT_EQUAL(String("Producer"), tf->fieldList()[4]);
+ CPPUNIT_ASSERT_EQUAL(String("Artist 3"), tf->fieldList()[5]);
+ CPPUNIT_ASSERT_EQUAL(String("Mastering"), tf->fieldList()[6]);
+ CPPUNIT_ASSERT_EQUAL(String("Artist 4"), tf->fieldList()[7]);
+ CPPUNIT_ASSERT(!bar.ID3v2Tag()->frameListMap().contains("TDRL"));
+ CPPUNIT_ASSERT(!bar.ID3v2Tag()->frameListMap().contains("TDTG"));
+ CPPUNIT_ASSERT(!bar.ID3v2Tag()->frameListMap().contains("TMOO"));
+ CPPUNIT_ASSERT(!bar.ID3v2Tag()->frameListMap().contains("TPRO"));
++#ifdef NO_ITUNES_HACKS
+ CPPUNIT_ASSERT(!bar.ID3v2Tag()->frameListMap().contains("TSOA"));
+ CPPUNIT_ASSERT(!bar.ID3v2Tag()->frameListMap().contains("TSOT"));
- CPPUNIT_ASSERT(!bar.ID3v2Tag()->frameListMap().contains("TSST"));
+ CPPUNIT_ASSERT(!bar.ID3v2Tag()->frameListMap().contains("TSOP"));
- }
+ #endif
- CPPUNIT_ASSERT(!bar.ID3v2Tag()->frameListMap().contains("TSST"));
++ CPPUNIT_ASSERT(!bar.ID3v2Tag()->frameListMap().contains("TSST"));
++}
}
void testCompressedFrameWithBrokenLength()