From 6e3391a846655d898280c60aa52f6b27164412c9 Mon Sep 17 00:00:00 2001 From: Michael Helmling Date: Mon, 10 Dec 2012 21:22:11 +0100 Subject: [PATCH] Add a test to show a problem with properties() and duplication. --- tests/data/id3v1_neq_v2.mp3 | Bin 0 -> 7825 bytes tests/test_id3v2.cpp | 17 +++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 tests/data/id3v1_neq_v2.mp3 diff --git a/tests/data/id3v1_neq_v2.mp3 b/tests/data/id3v1_neq_v2.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..984cb1d46aff7b3027c661e67816022e575cb9ce GIT binary patch literal 7825 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 KGWma>u>S+ug!-cZ literal 0 HcmV?d00001 diff --git a/tests/test_id3v2.cpp b/tests/test_id3v2.cpp index 48faf306..f2a420a8 100644 --- a/tests/test_id3v2.cpp +++ b/tests/test_id3v2.cpp @@ -75,6 +75,7 @@ class TestID3v2 : public CppUnit::TestFixture CPPUNIT_TEST(testW000); CPPUNIT_TEST(testPropertyInterface); CPPUNIT_TEST(testPropertyInterface2); + CPPUNIT_TEST(testBothID3Versions); CPPUNIT_TEST(testDeleteFrame); CPPUNIT_TEST(testSaveAndStripID3v1ShouldNotAddFrameFromID3v1ToId3v2); CPPUNIT_TEST_SUITE_END(); @@ -696,6 +697,22 @@ public: CPPUNIT_ASSERT_EQUAL(frame6, ID3v2::UniqueFileIdentifierFrame::findByOwner(&tag, "http://musicbrainz.org")); } +void testBothID3Versions() + { + ScopedFileCopy copy("id3v1_neq_v2", ".mp3"); + string newname = copy.fileName(); + MPEG::File f(newname.c_str()); + PropertyMap dict = f.properties(); + CPPUNIT_ASSERT(!dict.contains("ALBUM")); + CPPUNIT_ASSERT(dict.contains("ARTIST")); + + f.save(); + MPEG::File f2(newname.c_str()); + PropertyMap dict2 = f.properties(); + CPPUNIT_ASSERT(!dict2.contains("ALBUM")); + CPPUNIT_ASSERT(dict2.contains("ARTIST")); + } + void testDeleteFrame() { ScopedFileCopy copy("rare_frames", ".mp3");