diff --git a/sequence_test.go b/sequence_test.go index 9e8a484..bc313ad 100644 --- a/sequence_test.go +++ b/sequence_test.go @@ -13,13 +13,18 @@ func TestSequenceCommentFramesUniqueness(t *testing.T) { defer putSequence(s) s.AddFrame(CommentFrame{Language: "A", Description: "A"}) - testSequenceA(t, s) + testSequenceCount(t, s, 1) + testFrameUniqueIdentifier(t, s.Frames()[0], "AA") s.AddFrame(CommentFrame{Language: "B", Description: "B"}) - testSequenceAB(t, s) + testSequenceCount(t, s, 2) + testFrameUniqueIdentifier(t, s.Frames()[0], "AA") + testFrameUniqueIdentifier(t, s.Frames()[1], "BB") s.AddFrame(CommentFrame{Language: "B", Description: "B"}) - testSequenceAB(t, s) + testSequenceCount(t, s, 2) + testFrameUniqueIdentifier(t, s.Frames()[0], "AA") + testFrameUniqueIdentifier(t, s.Frames()[1], "BB") } func TestSequencePictureFramesUniqueness(t *testing.T) { @@ -28,14 +33,27 @@ func TestSequencePictureFramesUniqueness(t *testing.T) { s := getSequence() defer putSequence(s) - s.AddFrame(PictureFrame{Description: "A"}) - testSequenceA(t, s) - - s.AddFrame(PictureFrame{Description: "B"}) - testSequenceAB(t, s) + s.AddFrame(PictureFrame{Description: "A", PictureType: 0x00}) + testSequenceCount(t, s, 1) + testFrameUniqueIdentifier(t, s.Frames()[0], "00A") - s.AddFrame(PictureFrame{Description: "B"}) - testSequenceAB(t, s) + // Test against https://github.com/bogem/id3v2/issues/65 regression. + s.AddFrame(PictureFrame{Description: "A", PictureType: 0x01}) + testSequenceCount(t, s, 2) + testFrameUniqueIdentifier(t, s.Frames()[0], "00A") + testFrameUniqueIdentifier(t, s.Frames()[1], "01A") + + s.AddFrame(PictureFrame{Description: "B", PictureType: 0x00}) + testSequenceCount(t, s, 3) + testFrameUniqueIdentifier(t, s.Frames()[0], "00A") + testFrameUniqueIdentifier(t, s.Frames()[1], "01A") + testFrameUniqueIdentifier(t, s.Frames()[2], "00B") + + s.AddFrame(PictureFrame{Description: "B", PictureType: 0x00}) + testSequenceCount(t, s, 3) + testFrameUniqueIdentifier(t, s.Frames()[0], "00A") + testFrameUniqueIdentifier(t, s.Frames()[1], "01A") + testFrameUniqueIdentifier(t, s.Frames()[2], "00B") } func TestSequenceUSLFsUniqueness(t *testing.T) { @@ -45,13 +63,18 @@ func TestSequenceUSLFsUniqueness(t *testing.T) { defer putSequence(s) s.AddFrame(UnsynchronisedLyricsFrame{Language: "A", ContentDescriptor: "A"}) - testSequenceA(t, s) + testSequenceCount(t, s, 1) + testFrameUniqueIdentifier(t, s.Frames()[0], "AA") s.AddFrame(UnsynchronisedLyricsFrame{Language: "B", ContentDescriptor: "B"}) - testSequenceAB(t, s) + testSequenceCount(t, s, 2) + testFrameUniqueIdentifier(t, s.Frames()[0], "AA") + testFrameUniqueIdentifier(t, s.Frames()[1], "BB") s.AddFrame(UnsynchronisedLyricsFrame{Language: "B", ContentDescriptor: "B"}) - testSequenceAB(t, s) + testSequenceCount(t, s, 2) + testFrameUniqueIdentifier(t, s.Frames()[0], "AA") + testFrameUniqueIdentifier(t, s.Frames()[1], "BB") } func TestSequenceUDTFsUniqueness(t *testing.T) { @@ -96,7 +119,7 @@ func testSequenceCount(t *testing.T, s *sequence, expected int) { } func testFrameUniqueIdentifier(t *testing.T, f Framer, expected string) { - got := f.UniqueIdentifier()[:1] + got := f.UniqueIdentifier() if got != expected { t.Errorf("Expected frame with unique identifier %v, got %v", expected, got) }