diff --git a/tests/data/duplicate_id3v2.mp3 b/tests/data/duplicate_id3v2.mp3 new file mode 100644 index 00000000..34f4f158 Binary files /dev/null and b/tests/data/duplicate_id3v2.mp3 differ diff --git a/tests/test_mpeg.cpp b/tests/test_mpeg.cpp index 44925cac..024da6a0 100644 --- a/tests/test_mpeg.cpp +++ b/tests/test_mpeg.cpp @@ -16,6 +16,7 @@ class TestMPEG : public CppUnit::TestFixture CPPUNIT_TEST(testSaveID3v24); CPPUNIT_TEST(testSaveID3v24WrongParam); CPPUNIT_TEST(testSaveID3v23); + CPPUNIT_TEST(testDuplicateID3v2); CPPUNIT_TEST_SUITE_END(); public: @@ -92,6 +93,19 @@ public: } } + void testDuplicateID3v2() + { + ScopedFileCopy copy("duplicate_id3v2", ".mp3"); + string newname = copy.fileName(); + + MPEG::File f(newname.c_str()); + + // duplicate_id3v2.mp3 has duplicate ID3v2 tags. + // Sample rate will be 32000 if can't skip the second tag. + + CPPUNIT_ASSERT_EQUAL(44100, f.audioProperties()->sampleRate()); + } + }; CPPUNIT_TEST_SUITE_REGISTRATION(TestMPEG);