aboutsummaryrefslogtreecommitdiff
path: root/internal/image/image_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/image/image_test.go')
-rw-r--r--internal/image/image_test.go42
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) {
+
}