pkger/pkging/pkgtest/file.go

121 lines
2.2 KiB
Go
Raw Normal View History

2019-09-03 19:02:55 +03:00
package pkgtest
import (
"path/filepath"
2019-09-21 21:05:59 +03:00
"sort"
2019-09-03 19:02:55 +03:00
"testing"
"github.com/markbates/pkger/pkging/pkgutil"
"github.com/stretchr/testify/require"
)
func (s Suite) Test_File_Info(t *testing.T) {
r := require.New(t)
2019-09-12 04:29:39 +03:00
pkg, err := s.Make()
r.NoError(err)
2019-10-21 23:23:18 +03:00
app, err := App()
2019-09-03 19:02:55 +03:00
r.NoError(err)
2019-10-21 23:23:18 +03:00
ip := app.Info.ImportPath
mould := "/public/index.html"
2019-09-03 19:02:55 +03:00
table := []struct {
in string
}{
{in: mould},
{in: ip + ":" + mould},
}
for _, tt := range table {
2019-09-03 23:45:32 +03:00
s.Run(t, tt.in, func(st *testing.T) {
2019-09-03 19:02:55 +03:00
r := require.New(st)
2019-09-12 04:29:39 +03:00
r.NoError(pkg.RemoveAll(mould))
r.NoError(pkg.MkdirAll(filepath.Dir(tt.in), 0755))
err := pkgutil.WriteFile(pkg, tt.in, []byte(mould), 0644)
2019-09-03 19:02:55 +03:00
r.NoError(err)
2019-09-12 04:29:39 +03:00
f, err := pkg.Open(tt.in)
2019-09-03 19:02:55 +03:00
r.NoError(err)
2019-09-03 19:41:21 +03:00
r.Equal(mould, f.Name())
2019-10-21 23:23:18 +03:00
r.Equal(ip, f.Info().ImportPath)
2019-09-03 19:41:21 +03:00
r.NoError(f.Close())
2019-09-03 19:02:55 +03:00
})
}
}
2019-09-03 22:18:31 +03:00
// func (s Suite) Test_File_Read(t *testing.T) {
// panic("not implemented")
// }
//
2019-09-21 21:05:59 +03:00
func (s Suite) Test_File_Readdir(t *testing.T) {
r := require.New(t)
pkg, err := s.Make()
r.NoError(err)
cur, err := pkg.Current()
r.NoError(err)
ip := cur.ImportPath
table := []struct {
in string
}{
2019-10-21 23:23:18 +03:00
{in: "/public"},
2019-09-21 21:05:59 +03:00
{in: ip + ":/public"},
}
r.NoError(s.LoadFolder(pkg))
for _, tt := range table {
s.Run(t, tt.in, func(st *testing.T) {
r := require.New(st)
dir, err := pkg.Open(tt.in)
r.NoError(err)
defer dir.Close()
infos, err := dir.Readdir(-1)
r.NoError(err)
r.Len(infos, 2)
sort.Slice(infos, func(i, j int) bool {
return infos[i].Name() < infos[j].Name()
})
r.Equal("images", infos[0].Name())
r.Equal("index.html", infos[1].Name())
2019-09-21 21:42:07 +03:00
dir, err = pkg.Open(tt.in + "/images")
r.NoError(err)
infos, err = dir.Readdir(-1)
r.NoError(err)
2019-10-18 19:27:58 +03:00
r.Len(infos, 2)
2019-09-21 21:42:07 +03:00
sort.Slice(infos, func(i, j int) bool {
return infos[i].Name() < infos[j].Name()
})
2019-10-18 19:24:51 +03:00
r.Equal("img1.png", infos[0].Name())
2019-10-18 19:27:58 +03:00
r.Equal("img2.png", infos[1].Name())
2019-09-21 21:42:07 +03:00
2019-09-21 21:05:59 +03:00
})
}
}
2019-09-03 22:18:31 +03:00
//
// func (s Suite) Test_File_Seek(t *testing.T) {
// panic("not implemented")
// }
//
// func (s Suite) Test_File_Stat(t *testing.T) {
// panic("not implemented")
// }
//
// func (s Suite) Test_File_Write(t *testing.T) {
// panic("not implemented")
// }