9cffc45f03
Since the minimum required version of Go has been bumped to 1.16, the deprecation of io/ioutil can now be acted upon. This Commit removes the remaining dependencies on ioutil and replaces them with their io or os counterparts. Signed-off-by: Moritz Poldrack <git@moritz.sh> Acked-by: Robin Jarry <robin@jarry.cc>
83 lines
1.6 KiB
Go
83 lines
1.6 KiB
Go
package lib
|
|
|
|
import (
|
|
"io"
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"git.sr.ht/~rjarry/aerc/models"
|
|
)
|
|
|
|
func TestMessageInfoParser(t *testing.T) {
|
|
rootDir := "testdata/message/valid"
|
|
msgFiles, err := os.ReadDir(rootDir)
|
|
die(err)
|
|
|
|
for _, fi := range msgFiles {
|
|
if fi.IsDir() {
|
|
continue
|
|
}
|
|
|
|
p := fi.Name()
|
|
t.Run(p, func(t *testing.T) {
|
|
m := newMockRawMessageFromPath(filepath.Join(rootDir, p))
|
|
mi, err := MessageInfo(m)
|
|
if err != nil {
|
|
t.Fatal("Failed to create MessageInfo with:", err)
|
|
}
|
|
|
|
if perr := mi.Error; perr != nil {
|
|
t.Fatal("Expected no parsing error, but got:", mi.Error)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestMessageInfoHandledError(t *testing.T) {
|
|
rootDir := "testdata/message/invalid"
|
|
msgFiles, err := os.ReadDir(rootDir)
|
|
die(err)
|
|
|
|
for _, fi := range msgFiles {
|
|
if fi.IsDir() {
|
|
continue
|
|
}
|
|
|
|
p := fi.Name()
|
|
t.Run(p, func(t *testing.T) {
|
|
m := newMockRawMessageFromPath(filepath.Join(rootDir, p))
|
|
mi, err := MessageInfo(m)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if perr := mi.Error; perr == nil {
|
|
t.Fatal("Expected MessageInfo.Error, got none")
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
type mockRawMessage struct {
|
|
path string
|
|
}
|
|
|
|
func newMockRawMessageFromPath(p string) *mockRawMessage {
|
|
return &mockRawMessage{
|
|
path: p,
|
|
}
|
|
}
|
|
|
|
func (m *mockRawMessage) NewReader() (io.ReadCloser, error) {
|
|
return os.Open(m.path)
|
|
}
|
|
func (m *mockRawMessage) ModelFlags() ([]models.Flag, error) { return nil, nil }
|
|
func (m *mockRawMessage) Labels() ([]string, error) { return nil, nil }
|
|
func (m *mockRawMessage) UID() uint32 { return 0 }
|
|
|
|
func die(err error) {
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|