mirror of
https://github.com/gofiber/fiber.git
synced 2025-02-22 09:53:24 +00:00
📝 improve compress mw test covered
This commit is contained in:
parent
1c43d57499
commit
76480a4deb
@ -1,8 +1,10 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http/httptest"
|
||||
"os"
|
||||
"strconv"
|
||||
"testing"
|
||||
|
||||
"github.com/gofiber/fiber"
|
||||
@ -17,7 +19,7 @@ func Test_Middleware_Compress(t *testing.T) {
|
||||
app.Use(Compress())
|
||||
|
||||
app.Get("/", func(c *fiber.Ctx) {
|
||||
c.SendFile("../ctx.go", true)
|
||||
c.SendFile(compressFilePath(CompressLevelDefault), true)
|
||||
})
|
||||
|
||||
req := httptest.NewRequest("GET", "/", nil)
|
||||
@ -25,10 +27,10 @@ func Test_Middleware_Compress(t *testing.T) {
|
||||
|
||||
resp, err := app.Test(req)
|
||||
utils.AssertEqual(t, nil, err, "app.Test(req)")
|
||||
utils.AssertEqual(t, 200, resp.StatusCode, "Status code")
|
||||
utils.AssertEqual(t, fiber.StatusOK, resp.StatusCode, "Status code")
|
||||
utils.AssertEqual(t, "gzip", resp.Header.Get(fiber.HeaderContentEncoding))
|
||||
utils.AssertEqual(t, fiber.MIMETextPlainCharsetUTF8, resp.Header.Get(fiber.HeaderContentType))
|
||||
os.Remove("../ctx.go.fiber.gz")
|
||||
os.Remove(compressFilePath(CompressLevelDefault, true))
|
||||
}
|
||||
|
||||
// go test -run Test_Middleware_Compress_Config
|
||||
@ -40,7 +42,7 @@ func Test_Middleware_Compress_Config(t *testing.T) {
|
||||
}))
|
||||
|
||||
app.Get("/", func(c *fiber.Ctx) {
|
||||
c.SendFile("../ctx.go", true)
|
||||
c.SendFile(compressFilePath(CompressLevelDefault), true)
|
||||
})
|
||||
|
||||
req := httptest.NewRequest("GET", "/", nil)
|
||||
@ -51,17 +53,74 @@ func Test_Middleware_Compress_Config(t *testing.T) {
|
||||
utils.AssertEqual(t, 200, resp.StatusCode, "Status code")
|
||||
utils.AssertEqual(t, "gzip", resp.Header.Get(fiber.HeaderContentEncoding))
|
||||
utils.AssertEqual(t, fiber.MIMETextPlainCharsetUTF8, resp.Header.Get(fiber.HeaderContentType))
|
||||
os.Remove("../ctx.go.fiber.gz")
|
||||
os.Remove(compressFilePath(CompressLevelDefault, true))
|
||||
}
|
||||
|
||||
// go test -run Test_Middleware_Compress_With_Config
|
||||
func Test_Middleware_Compress_With_Config(t *testing.T) {
|
||||
app := fiber.New()
|
||||
|
||||
app.Use(CompressWithConfig(CompressConfig{}))
|
||||
|
||||
app.Get("/", func(c *fiber.Ctx) {
|
||||
c.SendFile(compressFilePath(CompressLevelDefault), true)
|
||||
})
|
||||
|
||||
req := httptest.NewRequest("GET", "/", nil)
|
||||
req.Header.Set(fiber.HeaderAcceptEncoding, "gzip")
|
||||
|
||||
resp, err := app.Test(req)
|
||||
utils.AssertEqual(t, nil, err, "app.Test(req)")
|
||||
utils.AssertEqual(t, fiber.StatusOK, resp.StatusCode, "Status code")
|
||||
utils.AssertEqual(t, "gzip", resp.Header.Get(fiber.HeaderContentEncoding))
|
||||
utils.AssertEqual(t, fiber.MIMETextPlainCharsetUTF8, resp.Header.Get(fiber.HeaderContentType))
|
||||
os.Remove(compressFilePath(CompressLevelDefault, true))
|
||||
}
|
||||
|
||||
// go test -run Test_Middleware_Compress_Level
|
||||
func Test_Middleware_Compress_Level(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
levels := []int{
|
||||
CompressLevelDisabled,
|
||||
CompressLevelDefault,
|
||||
CompressLevelBestSpeed,
|
||||
CompressLevelBestCompression,
|
||||
}
|
||||
|
||||
app := fiber.New()
|
||||
for _, level := range levels {
|
||||
app.Get("/:level", Compress(level), func(c *fiber.Ctx) {
|
||||
c.SendFile(compressFilePath(c.Params("level")), true)
|
||||
})
|
||||
}
|
||||
|
||||
for _, level := range levels {
|
||||
name := strconv.FormatInt(int64(level), 10)
|
||||
t.Run(name, func(t *testing.T) {
|
||||
target := fmt.Sprintf("/%d", level)
|
||||
req := httptest.NewRequest("GET", target, nil)
|
||||
req.Header.Set(fiber.HeaderAcceptEncoding, "br")
|
||||
|
||||
resp, err := app.Test(req, 3000)
|
||||
utils.AssertEqual(t, nil, err, "app.Test(req)")
|
||||
utils.AssertEqual(t, fiber.StatusOK, resp.StatusCode, "Status code")
|
||||
utils.AssertEqual(t, "br", resp.Header.Get(fiber.HeaderContentEncoding))
|
||||
utils.AssertEqual(t, fiber.MIMETextPlainCharsetUTF8, resp.Header.Get(fiber.HeaderContentType))
|
||||
|
||||
os.Remove(compressFilePath(level, true))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// go test -run Test_Middleware_Compress_Skip
|
||||
func Test_Middleware_Compress_Skip(t *testing.T) {
|
||||
app := fiber.New()
|
||||
|
||||
app.Use(Compress(2))
|
||||
app.Use(Compress(func(c *fiber.Ctx) bool { return true }))
|
||||
|
||||
app.Get("/", func(c *fiber.Ctx) {
|
||||
c.SendFile("../ctx.go", true)
|
||||
c.SendFile(compressFilePath(CompressLevelDefault), true)
|
||||
})
|
||||
|
||||
req := httptest.NewRequest("GET", "/", nil)
|
||||
@ -69,10 +128,9 @@ func Test_Middleware_Compress_Level(t *testing.T) {
|
||||
|
||||
resp, err := app.Test(req, 3000)
|
||||
utils.AssertEqual(t, nil, err, "app.Test(req)")
|
||||
utils.AssertEqual(t, 200, resp.StatusCode, "Status code")
|
||||
utils.AssertEqual(t, "br", resp.Header.Get(fiber.HeaderContentEncoding))
|
||||
utils.AssertEqual(t, fiber.StatusOK, resp.StatusCode, "Status code")
|
||||
utils.AssertEqual(t, "", resp.Header.Get(fiber.HeaderContentEncoding))
|
||||
utils.AssertEqual(t, fiber.MIMETextPlainCharsetUTF8, resp.Header.Get(fiber.HeaderContentType))
|
||||
os.Remove("../ctx.go.fiber.gz")
|
||||
}
|
||||
|
||||
// go test -v -run=^$ -bench=Benchmark_Middleware_Compress -benchmem -count=4
|
||||
@ -80,7 +138,7 @@ func Benchmark_Middleware_Compress(b *testing.B) {
|
||||
app := fiber.New()
|
||||
app.Use(Compress())
|
||||
app.Get("/", func(c *fiber.Ctx) {
|
||||
c.SendFile("../ctx.go", true)
|
||||
c.SendFile(compressFilePath(CompressLevelDefault), true)
|
||||
})
|
||||
handler := app.Handler()
|
||||
|
||||
@ -93,3 +151,11 @@ func Benchmark_Middleware_Compress(b *testing.B) {
|
||||
handler(c)
|
||||
}
|
||||
}
|
||||
|
||||
func compressFilePath(level interface{}, gz ...bool) string {
|
||||
filePath := fmt.Sprintf("./testdata/compress_level_%v.txt", level)
|
||||
if len(gz) > 0 && gz[0] {
|
||||
filePath += ".fiber.gz"
|
||||
}
|
||||
return filePath
|
||||
}
|
||||
|
20
middleware/testdata/compress_level_-1.txt
vendored
Normal file
20
middleware/testdata/compress_level_-1.txt
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
||||
compress_level_-1.txt
|
20
middleware/testdata/compress_level_0.txt
vendored
Normal file
20
middleware/testdata/compress_level_0.txt
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
||||
compress_level_0.txt
|
20
middleware/testdata/compress_level_1.txt
vendored
Normal file
20
middleware/testdata/compress_level_1.txt
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
||||
compress_level_1.txt
|
20
middleware/testdata/compress_level_2.txt
vendored
Normal file
20
middleware/testdata/compress_level_2.txt
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
||||
compress_level_2.txt
|
Loading…
x
Reference in New Issue
Block a user