|
@@ -0,0 +1,40 @@
|
|
|
+package util
|
|
|
+
|
|
|
+import (
|
|
|
+ "compress/gzip"
|
|
|
+ "github.com/stretchr/testify/require"
|
|
|
+ "io"
|
|
|
+ "net/http"
|
|
|
+ "net/http/httptest"
|
|
|
+ "testing"
|
|
|
+)
|
|
|
+
|
|
|
+func TestGzipHandler(t *testing.T) {
|
|
|
+ s := Gzip(http.FileServer(http.FS(testFs)))
|
|
|
+
|
|
|
+ rr := httptest.NewRecorder()
|
|
|
+ req, _ := http.NewRequest("GET", "/embedfs/test.txt", nil)
|
|
|
+ req.Header.Set("Accept-Encoding", "gzip, deflate")
|
|
|
+ s.ServeHTTP(rr, req)
|
|
|
+ require.Equal(t, 200, rr.Code)
|
|
|
+ require.Equal(t, "gzip", rr.Header().Get("Content-Encoding"))
|
|
|
+ require.Equal(t, "", rr.Header().Get("Content-Length"))
|
|
|
+
|
|
|
+ gz, _ := gzip.NewReader(rr.Body)
|
|
|
+ b, _ := io.ReadAll(gz)
|
|
|
+ require.Equal(t, "This is a test file for embedfs_test.go\n", string(b))
|
|
|
+}
|
|
|
+
|
|
|
+func TestGzipHandler_NoGzip(t *testing.T) {
|
|
|
+ s := Gzip(http.FileServer(http.FS(testFs)))
|
|
|
+
|
|
|
+ rr := httptest.NewRecorder()
|
|
|
+ req, _ := http.NewRequest("GET", "/embedfs/test.txt", nil)
|
|
|
+ s.ServeHTTP(rr, req)
|
|
|
+ require.Equal(t, 200, rr.Code)
|
|
|
+ require.Equal(t, "", rr.Header().Get("Content-Encoding"))
|
|
|
+ require.Equal(t, "40", rr.Header().Get("Content-Length"))
|
|
|
+
|
|
|
+ b, _ := io.ReadAll(rr.Body)
|
|
|
+ require.Equal(t, "This is a test file for embedfs_test.go\n", string(b))
|
|
|
+}
|