rename ngin to rest
This commit is contained in:
66
rest/handler/gunziphandler_test.go
Normal file
66
rest/handler/gunziphandler_test.go
Normal file
@@ -0,0 +1,66 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"strings"
|
||||
"sync"
|
||||
"testing"
|
||||
|
||||
"zero/core/codec"
|
||||
"zero/rest/httpx"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestGunzipHandler(t *testing.T) {
|
||||
const message = "hello world"
|
||||
var wg sync.WaitGroup
|
||||
wg.Add(1)
|
||||
handler := GunzipHandler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
body, err := ioutil.ReadAll(r.Body)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, string(body), message)
|
||||
wg.Done()
|
||||
}))
|
||||
|
||||
req := httptest.NewRequest(http.MethodPost, "http://localhost",
|
||||
bytes.NewReader(codec.Gzip([]byte(message))))
|
||||
req.Header.Set(httpx.ContentEncoding, gzipEncoding)
|
||||
resp := httptest.NewRecorder()
|
||||
handler.ServeHTTP(resp, req)
|
||||
assert.Equal(t, http.StatusOK, resp.Code)
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
func TestGunzipHandler_NoGzip(t *testing.T) {
|
||||
const message = "hello world"
|
||||
var wg sync.WaitGroup
|
||||
wg.Add(1)
|
||||
handler := GunzipHandler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
body, err := ioutil.ReadAll(r.Body)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, string(body), message)
|
||||
wg.Done()
|
||||
}))
|
||||
|
||||
req := httptest.NewRequest(http.MethodPost, "http://localhost",
|
||||
strings.NewReader(message))
|
||||
resp := httptest.NewRecorder()
|
||||
handler.ServeHTTP(resp, req)
|
||||
assert.Equal(t, http.StatusOK, resp.Code)
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
func TestGunzipHandler_NoGzipButTelling(t *testing.T) {
|
||||
const message = "hello world"
|
||||
handler := GunzipHandler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {}))
|
||||
req := httptest.NewRequest(http.MethodPost, "http://localhost",
|
||||
strings.NewReader(message))
|
||||
req.Header.Set(httpx.ContentEncoding, gzipEncoding)
|
||||
resp := httptest.NewRecorder()
|
||||
handler.ServeHTTP(resp, req)
|
||||
assert.Equal(t, http.StatusBadRequest, resp.Code)
|
||||
}
|
||||
Reference in New Issue
Block a user