diff options
Diffstat (limited to '')
| -rw-r--r-- | internal/image/image_test.go | 42 |
1 files changed, 35 insertions, 7 deletions
diff --git a/internal/image/image_test.go b/internal/image/image_test.go index 4a1aea9..3425213 100644 --- a/internal/image/image_test.go +++ b/internal/image/image_test.go @@ -4,6 +4,7 @@ import ( "bytes" "fmt" "io/ioutil" + "log" "mime/multipart" "net/http" "net/http/httptest" @@ -11,6 +12,7 @@ import ( "os" "path" "path/filepath" + "runtime" "strings" "testing" @@ -20,8 +22,22 @@ import ( db "git.ofmax.li/iserv/internal/db/redis" "git.ofmax.li/iserv/internal/image" + "go.ofmax.li/tmpl" ) +var ( + projectRoot string +) + +func init() { + _, filename, _, _ := runtime.Caller(0) + projectRoot := path.Join(path.Dir(filename), "../..") + err := os.Chdir(projectRoot) + if err != nil { + panic(err) + } +} + // from go lang src https://golang.org/src/mime/multipart/writer.go // there seems to be no way to set the content type. var quoteEscaper = strings.NewReplacer("\\", "\\\\", `"`, "\\\"") @@ -67,7 +83,7 @@ func prepareRequest(t *testing.T, filename, mimeType string) (*multipart.Writer, return writer, body, err } -func TestImage(t *testing.T) { +func TestPostImage(t *testing.T) { // setup redis for tests conn := redigomock.NewConn() pool := &redis.Pool{ @@ -75,7 +91,7 @@ func TestImage(t *testing.T) { Dial: func() (redis.Conn, error) { return conn, nil }, MaxIdle: 10, } - conn.Command("HMSET", redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData()) + conn.Command("HMSET", redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData(), redigomock.NewAnyData()) repo := db.NewRedisImageRepo(pool) // setup image package @@ -83,13 +99,20 @@ func TestImage(t *testing.T) { if err != nil { t.Fatal(err) } + cwd, _ := os.Getwd() + base := filepath.Join(cwd, "templates") + renderer, err := tmpl.NewHTMLTmpl(base) + if err != nil { + log.Fatal(err) + } defer os.RemoveAll(imageBuildDir) - imageService := image.NewService(repo, imageBuildDir) + imageService := image.NewService(repo, imageBuildDir, renderer) imageHandler := image.NewHandler(imageService) handler := http.HandlerFunc(imageHandler.PostImage) // prep test with png - writer, body, err := prepareRequest(t, "t.png", "image/png") + testImagePath := filepath.Join(projectRoot, "internal/image/t.png") + writer, body, err := prepareRequest(t, testImagePath, "image/png") if err != nil { t.Fatal(err) } @@ -107,7 +130,8 @@ func TestImage(t *testing.T) { } // incorrect mime - writer, body, err = prepareRequest(t, "t.pdf", "application/pdf") + testImagePDF := filepath.Join(projectRoot, "internal/image/t.pdf") + writer, body, err = prepareRequest(t, testImagePDF, "application/pdf") if err != nil { t.Fatal(err) } @@ -124,7 +148,7 @@ func TestImage(t *testing.T) { } // sneaky mimetype check - writer, body, err = prepareRequest(t, "t.png", "image/jpeg") + writer, body, err = prepareRequest(t, testImagePath, "image/jpeg") if err != nil { t.Fatal(err) } @@ -141,7 +165,6 @@ func TestImage(t *testing.T) { } // test image write path && ext - // TODO pngs, err := filepath.Glob(filepath.Join(imageBuildDir)) if err != nil { t.Fatal(err) @@ -149,4 +172,9 @@ func TestImage(t *testing.T) { if len(pngs) != 1 { t.Error("expected only 1 image to be found") } + +} + +func TestGetImage(t *testing.T) { + } |