mirror of https://github.com/markbates/pkger.git
121 lines
2.2 KiB
Go
121 lines
2.2 KiB
Go
package pkgtest
|
|
|
|
import (
|
|
"path/filepath"
|
|
"sort"
|
|
"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)
|
|
|
|
pkg, err := s.Make()
|
|
r.NoError(err)
|
|
|
|
app, err := App()
|
|
r.NoError(err)
|
|
|
|
ip := app.Info.ImportPath
|
|
mould := "/public/index.html"
|
|
|
|
table := []struct {
|
|
in string
|
|
}{
|
|
{in: mould},
|
|
{in: ip + ":" + mould},
|
|
}
|
|
|
|
for _, tt := range table {
|
|
s.Run(t, tt.in, func(st *testing.T) {
|
|
r := require.New(st)
|
|
|
|
r.NoError(pkg.RemoveAll(mould))
|
|
r.NoError(pkg.MkdirAll(filepath.Dir(tt.in), 0755))
|
|
err := pkgutil.WriteFile(pkg, tt.in, []byte(mould), 0644)
|
|
r.NoError(err)
|
|
|
|
f, err := pkg.Open(tt.in)
|
|
r.NoError(err)
|
|
r.Equal(mould, f.Name())
|
|
r.Equal(ip, f.Info().ImportPath)
|
|
r.NoError(f.Close())
|
|
})
|
|
}
|
|
}
|
|
|
|
// func (s Suite) Test_File_Read(t *testing.T) {
|
|
// panic("not implemented")
|
|
// }
|
|
//
|
|
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
|
|
}{
|
|
{in: "/public"},
|
|
{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())
|
|
|
|
dir, err = pkg.Open(tt.in + "/images")
|
|
r.NoError(err)
|
|
|
|
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("img1.png", infos[0].Name())
|
|
r.Equal("img2.png", infos[1].Name())
|
|
|
|
})
|
|
}
|
|
}
|
|
|
|
//
|
|
// 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")
|
|
// }
|