kopia lustrzana https://github.com/jcs/id3-go
Fixes #14 Add tag to tagless file if dirtied
rodzic
85a5c67234
commit
15ff69e561
7
id3.go
7
id3.go
|
@ -10,6 +10,10 @@ import (
|
|||
"os"
|
||||
)
|
||||
|
||||
const (
|
||||
LatestVersion = 3
|
||||
)
|
||||
|
||||
// Tagger represents the metadata of a tag
|
||||
type Tagger interface {
|
||||
Title() string
|
||||
|
@ -57,7 +61,8 @@ func Open(name string) (*File, error) {
|
|||
} else if v1Tag := v1.ParseTag(fi); v1Tag != nil {
|
||||
file.Tagger = v1Tag
|
||||
} else {
|
||||
return nil, errors.New("Open: unknown tag format")
|
||||
// Add a new tag if none exists
|
||||
file.Tagger = v2.NewTag(LatestVersion)
|
||||
}
|
||||
|
||||
return file, nil
|
||||
|
|
35
id3_test.go
35
id3_test.go
|
@ -125,6 +125,41 @@ func TestReadonly(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestAddTag(t *testing.T) {
|
||||
tempFile, err := ioutil.TempFile("", "notag")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
file, err := Open(tempFile.Name())
|
||||
if err != nil {
|
||||
t.Errorf("AddTag: unable to open empty file")
|
||||
}
|
||||
|
||||
tag := file.Tagger
|
||||
|
||||
if tag == nil {
|
||||
t.Errorf("AddTag: no tag added to file")
|
||||
}
|
||||
|
||||
file.SetArtist("Michael")
|
||||
|
||||
err = file.Close()
|
||||
if err != nil {
|
||||
t.Errorf("AddTag: error closing new file")
|
||||
}
|
||||
|
||||
reopenBytes, err := ioutil.ReadFile(tempFile.Name())
|
||||
if err != nil {
|
||||
t.Errorf("AddTag: error reopening file")
|
||||
}
|
||||
|
||||
expectedBytes := tag.Bytes()
|
||||
if !bytes.Equal(expectedBytes, reopenBytes) {
|
||||
t.Errorf("AddTag: tag not written correctly: %v", reopenBytes)
|
||||
}
|
||||
}
|
||||
|
||||
func TestUnsynchTextFrame_RoundTrip(t *testing.T) {
|
||||
var (
|
||||
err error
|
||||
|
|
Ładowanie…
Reference in New Issue