]> granicus.if.org Git - taglib/commitdiff
Add a test to show a problem with properties() and duplication.
authorMichael Helmling <helmling@mathematik.uni-kl.de>
Mon, 10 Dec 2012 20:22:11 +0000 (21:22 +0100)
committerMichael Helmling <helmling@mathematik.uni-kl.de>
Mon, 10 Dec 2012 20:22:11 +0000 (21:22 +0100)
tests/data/id3v1_neq_v2.mp3 [new file with mode: 0644]
tests/test_id3v2.cpp

diff --git a/tests/data/id3v1_neq_v2.mp3 b/tests/data/id3v1_neq_v2.mp3
new file mode 100644 (file)
index 0000000..984cb1d
Binary files /dev/null and b/tests/data/id3v1_neq_v2.mp3 differ
index 48faf306bd6add2f4e429f1899170612d61c1e69..f2a420a88491f0d385e70d6226418d6ef49ec916 100644 (file)
@@ -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");