Add test_tag and some sample data

This commit is contained in:
jo
2018-09-02 15:16:59 +02:00
parent 8244084007
commit 43725ee9b6
13 changed files with 121 additions and 0 deletions
+118
View File
@@ -0,0 +1,118 @@
// Copyright 2015, David Howden
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package tag
import (
"os"
"testing"
)
type testMetadata struct {
Album string
AlbumArtist string
Artist string
Comment string
Composer string
Disc int
DiscTotal int
Genre string
Lyrics string
Title string
Track int
TrackTotal int
Year int
}
var emptyMetadata = testMetadata{}
var fullMetadata = testMetadata{
Album: "Test Album",
AlbumArtist: "Test AlbumArtist",
Artist: "Test Artist",
Composer: "Test Composer",
Disc: 2,
DiscTotal: 0,
Genre: "Jazz",
Lyrics: "",
Title: "Test Title",
Track: 3,
TrackTotal: 6,
Year: 2000,
}
var mp3id3v11Metadata = testMetadata{
Album: "Test Album",
Artist: "Test Artist",
Genre: "Jazz",
Lyrics: "",
Title: "Test Title",
Track: 3,
Year: 2000,
}
func TestReadFrom(t *testing.T) {
testdata := map[string]testMetadata{
"with_tags/sample.flac": fullMetadata,
"with_tags/sample.id3v11.mp3": mp3id3v11Metadata,
"with_tags/sample.id3v22.mp3": fullMetadata,
"with_tags/sample.id3v23.mp3": fullMetadata,
"with_tags/sample.id3v24.mp3": fullMetadata,
"with_tags/sample.m4a": fullMetadata,
"with_tags/sample.mp4": fullMetadata,
"without_tags/sample.flac": emptyMetadata,
"without_tags/sample.m4a": emptyMetadata,
"without_tags/sample.mp3": emptyMetadata,
"without_tags/sample.mp4": emptyMetadata,
}
for path, metadata := range testdata {
if err := test(t, path, metadata); err != nil {
// mp3 id3v11 returns an err if it doesn't find any tags
if err != ErrNoTagsFound && path != "without_tags/sample.mp3" {
t.Error(err)
}
}
}
}
func test(t *testing.T, path string, metadata testMetadata) error {
f, err := os.Open("testdata/" + path)
if err != nil {
return err
}
defer f.Close()
m, err := ReadFrom(f)
if err != nil {
return err
}
compareMetadata(t, m, metadata)
return nil
}
func compareMetadata(t *testing.T, m Metadata, tt testMetadata) {
testValue(t, tt.Album, m.Album())
testValue(t, tt.AlbumArtist, m.AlbumArtist())
testValue(t, tt.Artist, m.Artist())
testValue(t, tt.Composer, m.Composer())
testValue(t, tt.Genre, m.Genre())
testValue(t, tt.Lyrics, m.Lyrics())
testValue(t, tt.Title, m.Title())
testValue(t, tt.Year, m.Year())
disc, discTotal := m.Disc()
testValue(t, tt.Disc, disc)
testValue(t, tt.DiscTotal, discTotal)
track, trackTotal := m.Track()
testValue(t, tt.Track, track)
testValue(t, tt.TrackTotal, trackTotal)
}
func testValue(t *testing.T, expected interface{}, found interface{}) {
if expected != found {
t.Errorf("expected '%v', found '%v'", expected, found)
}
}
+3
View File
@@ -0,0 +1,3 @@
# testdata
Samples files come from [here](http://techslides.com/sample-files-for-development)
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.