| @@ -1 +1,30 @@ | |||
| package middleware | |||
| import ( | |||
| "io" | |||
| "net/http" | |||
| "net/http/httptest" | |||
| "testing" | |||
| "github.com/goanywhere/rex" | |||
| . "github.com/smartystreets/goconvey/convey" | |||
| ) | |||
| func TestCompress(t *testing.T) { | |||
| app := rex.New() | |||
| app.Use(Compress) | |||
| app.GET("/", func(w http.ResponseWriter, r *http.Request) { | |||
| io.WriteString(w, "app") | |||
| }) | |||
| Convey("rex.middleware.Compress", t, func() { | |||
| request, _ := http.NewRequest("GET", "/", nil) | |||
| request.Header.Set("Accept-Encoding", "gzip") | |||
| response := httptest.NewRecorder() | |||
| app.ServeHTTP(response, request) | |||
| So(response.Header().Get("Content-Encoding"), ShouldEqual, "gzip") | |||
| }) | |||
| } | |||
| @@ -11,7 +11,7 @@ import ( | |||
| func Static(dir string) func(http.Handler) http.Handler { | |||
| var ( | |||
| fs = http.Dir(dir) | |||
| prefix = path.Join("/", dir) | |||
| prefix = path.Join("/", path.Base(path.Dir(dir))) | |||
| ) | |||
| return func(next http.Handler) http.Handler { | |||
| return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { | |||
| @@ -0,0 +1,34 @@ | |||
| package middleware | |||
| import ( | |||
| "io" | |||
| "net/http" | |||
| "net/http/httptest" | |||
| "os" | |||
| "path" | |||
| "testing" | |||
| "github.com/goanywhere/rex" | |||
| . "github.com/smartystreets/goconvey/convey" | |||
| ) | |||
| func TestStatic(t *testing.T) { | |||
| tempdir := os.TempDir() | |||
| filename := path.Join(tempdir, "favicon.ico") | |||
| app := rex.New() | |||
| app.Use(Static(tempdir)) | |||
| prefix := path.Join("/", path.Base(path.Dir(filename))) | |||
| app.GET(prefix, func(w http.ResponseWriter, r *http.Request) { | |||
| io.WriteString(w, "app") | |||
| }) | |||
| Convey("rex.middleware.Static", t, func() { | |||
| request, _ := http.NewRequest("GET", path.Join(prefix, filename), nil) | |||
| response := httptest.NewRecorder() | |||
| app.ServeHTTP(response, request) | |||
| So(response.Code, ShouldEqual, http.StatusOK) | |||
| }) | |||
| } | |||