⬥ 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.

70 lines
1.5 KiB

package id3ed
import (
"path/filepath"
"testing"
v1 "github.com/Unbewohnte/id3ed/v1"
v2 "github.com/Unbewohnte/id3ed/v2"
)
var TESTDATAPATH string = "testData"
func TestOpen(t *testing.T) {
file, err := Open(filepath.Join(TESTDATAPATH, "testreadv2.mp3"))
if err != nil {
t.Errorf("Open failed: %s", err)
}
if file.ContainsID3v1 {
t.Error("Open failed: expected testing file to not contain ID3v1")
}
// if file.ID3v1Tag
if !file.ContainsID3v2 {
t.Error("Open failed: expected testing file to contain ID3v2")
}
if file.ID3v2Tag.Header.Version() != v2.V2_4 {
t.Errorf("Open failed: id3v2tag: header: expected version to be %s; got %s",
v2.V2_4, file.ID3v2Tag.Header.Version())
}
}
func TestWriteID3v1(t *testing.T) {
file, err := Open(filepath.Join(TESTDATAPATH, "testwritev1.mp3"))
if err != nil {
t.Errorf("Open failed: %s", err)
}
v1tag := &v1.ID3v1Tag{
SongName: "testsong",
Artist: "testartist",
Album: "testalbum",
Year: 727,
Comment: "testcomment",
Genre: "Blues",
}
err = file.WriteID3v1(v1tag)
if err != nil {
t.Errorf("WriteID3v1 failed: %s", err)
}
}
func TestWriteID3v2(t *testing.T) {
file, err := Open(filepath.Join(TESTDATAPATH, "testwritev2.mp3"))
if err != nil {
t.Errorf("Open failed: %s", err)
}
frame1, _ := v2.NewFrame("COMM", []byte("Very Cool Song"), true)
frame2, _ := v2.NewFrame("TXXX", []byte("\n\n\n\n\n\n\nF\n\n\n\n"), true)
v2tag := v2.NewTAG([]v2.Frame{*frame1, *frame2})
err = file.WriteID3v2(v2tag)
if err != nil {
t.Errorf("WriteID3v2 failed: %s", err)
}
}