1
0
mirror of https://github.com/gofiber/fiber.git synced 2025-02-22 09:53:24 +00:00

📝 improve favicon mw test covered

This commit is contained in:
kiyon 2020-07-07 17:00:35 +08:00
parent 76480a4deb
commit 1594e2e8f2
2 changed files with 35 additions and 4 deletions

View File

@ -17,20 +17,51 @@ func Test_Middleware_Favicon(t *testing.T) {
app.Get("/", func(c *fiber.Ctx) {}) app.Get("/", func(c *fiber.Ctx) {})
resp, err := app.Test(httptest.NewRequest("GET", "/favicon.ico", nil)) // Skip Favicon middleware
resp, err := app.Test(httptest.NewRequest("GET", "/", nil))
utils.AssertEqual(t, nil, err, "app.Test(req)") utils.AssertEqual(t, nil, err, "app.Test(req)")
utils.AssertEqual(t, 204, resp.StatusCode, "Status code") utils.AssertEqual(t, fiber.StatusOK, resp.StatusCode, "Status code")
resp, err = app.Test(httptest.NewRequest("GET", "/favicon.ico", nil))
utils.AssertEqual(t, nil, err, "app.Test(req)")
utils.AssertEqual(t, fiber.StatusNoContent, resp.StatusCode, "Status code")
resp, err = app.Test(httptest.NewRequest("OPTIONS", "/favicon.ico", nil)) resp, err = app.Test(httptest.NewRequest("OPTIONS", "/favicon.ico", nil))
utils.AssertEqual(t, nil, 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")
resp, err = app.Test(httptest.NewRequest("PUT", "/favicon.ico", nil)) resp, err = app.Test(httptest.NewRequest("PUT", "/favicon.ico", nil))
utils.AssertEqual(t, nil, err, "app.Test(req)") utils.AssertEqual(t, nil, err, "app.Test(req)")
utils.AssertEqual(t, 405, resp.StatusCode, "Status code") utils.AssertEqual(t, fiber.StatusMethodNotAllowed, resp.StatusCode, "Status code")
utils.AssertEqual(t, "GET, HEAD, OPTIONS", resp.Header.Get(fiber.HeaderAllow)) utils.AssertEqual(t, "GET, HEAD, OPTIONS", resp.Header.Get(fiber.HeaderAllow))
} }
// go test -run Test_Middleware_Favicon_Not_Found
func Test_Middleware_Favicon_Not_Found(t *testing.T) {
defer func() {
if err := recover(); err == nil {
t.Fatal("should cache panic")
}
}()
fiber.New().Use(Favicon("non-exist.ico"))
}
// go test -run Test_Middleware_Favicon_Found
func Test_Middleware_Favicon_Found(t *testing.T) {
app := fiber.New()
app.Use(Favicon("./testdata/favicon.ico"))
app.Get("/", func(c *fiber.Ctx) {})
resp, err := app.Test(httptest.NewRequest("GET", "/favicon.ico", nil))
utils.AssertEqual(t, nil, err, "app.Test(req)")
utils.AssertEqual(t, fiber.StatusOK, resp.StatusCode, "Status code")
utils.AssertEqual(t, "image/x-icon", resp.Header.Get(fiber.HeaderContentType))
}
// go test -v -run=^$ -bench=Benchmark_Middleware_Favicon -benchmem -count=4 // go test -v -run=^$ -bench=Benchmark_Middleware_Favicon -benchmem -count=4
func Benchmark_Middleware_Favicon(b *testing.B) { func Benchmark_Middleware_Favicon(b *testing.B) {
app := fiber.New() app := fiber.New()

BIN
middleware/testdata/favicon.ico vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB