⬥ ID3 encoding/decoding library in Go ⬥
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
1.7 KiB

package id3ed
import (
"fmt"
"os"
"testing"
)
var TESTV11TAGS = &ID3v11Tags{
SongName: "testsong",
Artist: "testartist",
Album: "testalbum",
Year: 727,
Comment: "testcomment",
Track: 5,
Genre: "Blues",
}
func TestGetID3v11Tags(t *testing.T) {
testfile, err := os.Open("./testData/testreadv1.mp3")
if err != nil {
t.Errorf("could not open file for testing: %s", err)
}
mp3tags, err := GetID3v11Tags(testfile)
if err != nil {
t.Errorf("GetID3v11Tags failed: %s", err)
}
if mp3tags.Artist != "Artist" {
fmt.Printf("%v", mp3tags.Artist)
t.Errorf("GetID3v11Tags failed: expected %s; got %s", "Artist", mp3tags.Artist)
}
if mp3tags.Track != 4 {
t.Errorf("GetID3v11Tags failed: expected %d; got %d", 4, mp3tags.Track)
}
}
func TestWriteID3v11Tags(t *testing.T) {
os.Remove("./testData/testwritev1.mp3")
f, err := os.Create("./testData/testwritev1.mp3")
if err != nil {
t.Errorf("%s", err)
}
defer f.Close()
tags := TESTV11TAGS
err = WriteID3v11Tags(f, tags)
if err != nil {
t.Errorf("WriteID3v1Tags failed: %s", err)
}
readTags, err := GetID3v11Tags(f)
if err != nil {
t.Errorf("%s", err)
}
if readTags.Album != "testalbum" {
t.Errorf("WriteID3v11Tags failed: expected %s; got %s", "testalbum", readTags.Album)
}
if readTags.Year != 727 {
t.Errorf("WriteID3v11Tags failed: expected %d; got %d", 727, readTags.Year)
}
if readTags.Track != 5 {
t.Errorf("WriteID3v11Tags failed: expected %d; got %d", 5, readTags.Track)
}
}
func TestWriteID3v11ToFile(t *testing.T) {
f, err := os.Open("./testData/testwritev1.mp3")
if err != nil {
t.Errorf("%s", err)
}
tags := TESTV11TAGS
err = WriteID3v11ToFile(f, tags)
if err != nil {
t.Errorf("WriteID3v1ToFile failed: %s", err)
}
}