package main import ( "github.com/stretchr/testify/assert" "io/ioutil" "os" "path/filepath" "testing" ) func walker() []string { var list []string _ = filepath.Walk("./pics", func(path string, info os.FileInfo, err error) error { if !info.IsDir() { list = append(list, path) } return nil }) return list } func TestWebpEncoder(t *testing.T) { var webp = "/tmp/test-result.webp" var target = walker() for _, f := range target { //fmt.Println(b, c, webp) runEncoder(t, f, webp) } _ = os.Remove(webp) // test error err := webpEncoder("./pics/empty.jpg", webp, 80) assert.NotNil(t, err) _ = os.Remove(webp) } func TestNonExistImage(t *testing.T) { var webp = "/tmp/test-result.webp" // test error var err = webpEncoder("./pics/empty.jpg", webp, 80) assert.NotNil(t, err) _ = os.Remove(webp) } func TestConvertFail(t *testing.T) { var webp = "/tmp/test-result.webp" var err = webpEncoder("./pics/webp_server.jpg", webp, -1) assert.NotNil(t, t, err) } func runEncoder(t *testing.T, file string, webp string) { //t.Logf("convert from %s to %s", file, webp) var err = webpEncoder(file, webp, 80) if file == "pics/empty.jpg" && err != nil { t.Log("Empty file, that's okay.") } else if err != nil { t.Fatalf("Fatal, convert failed for %s: %v ", file, err) } data, _ := ioutil.ReadFile(webp) types := getFileContentType(data[:512]) if types != "image/webp" { t.Fatal("Fatal, file type is wrong!") } }