From e13411e184fb8b0567b0c8df177c42ee8d1cb314 Mon Sep 17 00:00:00 2001 From: kiyon Date: Wed, 16 Sep 2020 09:44:05 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=B7=20improve=20mw=20test=20cases?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit add Next test case --- middleware/basicauth/basicauth_test.go | 16 ++++++++++++++++ middleware/compress/compress_test.go | 16 ++++++++++++++++ middleware/cors/cors_test.go | 17 +++++++++++++++++ middleware/csrf/csrf_test.go | 17 +++++++++++++++++ middleware/favicon/favicon_test.go | 16 ++++++++++++++++ middleware/filesystem/filesystem.go | 5 ++--- middleware/filesystem/filesystem_test.go | 18 ++++++++++++++++++ middleware/limiter/limiter_test.go | 16 ++++++++++++++++ middleware/logger/logger__test.go | 16 ++++++++++++++++ middleware/recover/recover.go | 5 ----- middleware/recover/recover_test.go | 16 ++++++++++++++++ middleware/requestid/requestid.go | 3 --- middleware/requestid/requestid_test.go | 16 ++++++++++++++++ 13 files changed, 166 insertions(+), 11 deletions(-) diff --git a/middleware/basicauth/basicauth_test.go b/middleware/basicauth/basicauth_test.go index 2becceae..00c00567 100644 --- a/middleware/basicauth/basicauth_test.go +++ b/middleware/basicauth/basicauth_test.go @@ -12,6 +12,22 @@ import ( "github.com/gofiber/fiber/v2/utils" ) +// go test -run Test_BasicAuth_Next +func Test_BasicAuth_Next(t *testing.T) { + app := fiber.New(fiber.Config{ + DisableStartupMessage: true, + }) + app.Use(New(Config{ + Next: func(_ *fiber.Ctx) bool { + return true + }, + })) + + resp, err := app.Test(httptest.NewRequest("GET", "/", nil)) + utils.AssertEqual(t, nil, err) + utils.AssertEqual(t, fiber.StatusNotFound, resp.StatusCode) +} + func Test_Middleware_BasicAuth(t *testing.T) { app := fiber.New() diff --git a/middleware/compress/compress_test.go b/middleware/compress/compress_test.go index 66aa64f5..74cee7da 100644 --- a/middleware/compress/compress_test.go +++ b/middleware/compress/compress_test.go @@ -95,3 +95,19 @@ func Test_Compress_Brotli(t *testing.T) { } utils.AssertEqual(t, true, len(body) < len(filedata)) } + +// go test -run Test_Compress_Next +func Test_Compress_Next(t *testing.T) { + app := fiber.New(fiber.Config{ + DisableStartupMessage: true, + }) + app.Use(New(Config{ + Next: func(_ *fiber.Ctx) bool { + return true + }, + })) + + resp, err := app.Test(httptest.NewRequest("GET", "/", nil)) + utils.AssertEqual(t, nil, err) + utils.AssertEqual(t, fiber.StatusNotFound, resp.StatusCode) +} diff --git a/middleware/cors/cors_test.go b/middleware/cors/cors_test.go index 1f7081b1..d6708bd2 100644 --- a/middleware/cors/cors_test.go +++ b/middleware/cors/cors_test.go @@ -1,6 +1,7 @@ package cors import ( + "net/http/httptest" "testing" "github.com/gofiber/fiber/v2" @@ -193,3 +194,19 @@ func Test_CORS_AllowOriginScheme(t *testing.T) { } } } + +// go test -run Test_CORS_Next +func Test_CORS_Next(t *testing.T) { + app := fiber.New(fiber.Config{ + DisableStartupMessage: true, + }) + app.Use(New(Config{ + Next: func(_ *fiber.Ctx) bool { + return true + }, + })) + + resp, err := app.Test(httptest.NewRequest("GET", "/", nil)) + utils.AssertEqual(t, nil, err) + utils.AssertEqual(t, fiber.StatusNotFound, resp.StatusCode) +} diff --git a/middleware/csrf/csrf_test.go b/middleware/csrf/csrf_test.go index 79b6a085..fab7fa32 100644 --- a/middleware/csrf/csrf_test.go +++ b/middleware/csrf/csrf_test.go @@ -1,6 +1,7 @@ package csrf import ( + "net/http/httptest" "strings" "testing" @@ -51,3 +52,19 @@ func Test_CSRF(t *testing.T) { h(ctx) utils.AssertEqual(t, 200, ctx.Response.StatusCode()) } + +// go test -run Test_CSRF_Next +func Test_CSRF_Next(t *testing.T) { + app := fiber.New(fiber.Config{ + DisableStartupMessage: true, + }) + app.Use(New(Config{ + Next: func(_ *fiber.Ctx) bool { + return true + }, + })) + + resp, err := app.Test(httptest.NewRequest("GET", "/", nil)) + utils.AssertEqual(t, nil, err) + utils.AssertEqual(t, fiber.StatusNotFound, resp.StatusCode) +} diff --git a/middleware/favicon/favicon_test.go b/middleware/favicon/favicon_test.go index 78cf63a4..6803593c 100644 --- a/middleware/favicon/favicon_test.go +++ b/middleware/favicon/favicon_test.go @@ -88,3 +88,19 @@ func Benchmark_Middleware_Favicon(b *testing.B) { handler(c) } } + +// go test -run Test_Favicon_Next +func Test_Favicon_Next(t *testing.T) { + app := fiber.New(fiber.Config{ + DisableStartupMessage: true, + }) + app.Use(New(Config{ + Next: func(_ *fiber.Ctx) bool { + return true + }, + })) + + resp, err := app.Test(httptest.NewRequest("GET", "/", nil)) + utils.AssertEqual(t, nil, err) + utils.AssertEqual(t, fiber.StatusNotFound, resp.StatusCode) +} diff --git a/middleware/filesystem/filesystem.go b/middleware/filesystem/filesystem.go index 87c23c96..3c1414d6 100644 --- a/middleware/filesystem/filesystem.go +++ b/middleware/filesystem/filesystem.go @@ -1,7 +1,6 @@ package filesystem import ( - "log" "net/http" "os" "strings" @@ -62,11 +61,11 @@ func New(config Config) fiber.Handler { if !strings.HasPrefix(cfg.Index, "/") { cfg.Index = "/" + cfg.Index } - if cfg.NotFoundFile != "" && !strings.HasPrefix(cfg.NotFoundFile, "/") { + if cfg.NotFoundFile != "" && !strings.HasPrefix(cfg.NotFoundFile, "/") { cfg.NotFoundFile = "/" + cfg.NotFoundFile } if cfg.Root == nil { - log.Fatal("filesystem: Root cannot be nil") + panic("filesystem: Root cannot be nil") } var once sync.Once diff --git a/middleware/filesystem/filesystem_test.go b/middleware/filesystem/filesystem_test.go index 7c0661a4..bda939a1 100644 --- a/middleware/filesystem/filesystem_test.go +++ b/middleware/filesystem/filesystem_test.go @@ -2,6 +2,7 @@ package filesystem import ( "net/http" + "net/http/httptest" "testing" "github.com/gofiber/fiber/v2" @@ -110,3 +111,20 @@ func Test_FileSystem(t *testing.T) { }) } } + +// go test -run Test_FileSystem_Next +func Test_FileSystem_Next(t *testing.T) { + app := fiber.New(fiber.Config{ + DisableStartupMessage: true, + }) + app.Use(New(Config{ + Root: http.Dir("../../.github/testdata/fs"), + Next: func(_ *fiber.Ctx) bool { + return true + }, + })) + + resp, err := app.Test(httptest.NewRequest("GET", "/", nil)) + utils.AssertEqual(t, nil, err) + utils.AssertEqual(t, fiber.StatusNotFound, resp.StatusCode) +} diff --git a/middleware/limiter/limiter_test.go b/middleware/limiter/limiter_test.go index fe336aa3..ebb2fe35 100644 --- a/middleware/limiter/limiter_test.go +++ b/middleware/limiter/limiter_test.go @@ -88,3 +88,19 @@ func Benchmark_Limiter(b *testing.B) { utils.AssertEqual(b, "100", string(fctx.Response.Header.Peek("X-RateLimit-Limit"))) } + +// go test -run Test_Limiter_Next +func Test_Limiter_Next(t *testing.T) { + app := fiber.New(fiber.Config{ + DisableStartupMessage: true, + }) + app.Use(New(Config{ + Next: func(_ *fiber.Ctx) bool { + return true + }, + })) + + resp, err := app.Test(httptest.NewRequest("GET", "/", nil)) + utils.AssertEqual(t, nil, err) + utils.AssertEqual(t, fiber.StatusNotFound, resp.StatusCode) +} diff --git a/middleware/logger/logger__test.go b/middleware/logger/logger__test.go index 1bb797c8..7c3052f7 100644 --- a/middleware/logger/logger__test.go +++ b/middleware/logger/logger__test.go @@ -31,3 +31,19 @@ func Test_Logger(t *testing.T) { utils.AssertEqual(t, fiber.StatusInternalServerError, resp.StatusCode) utils.AssertEqual(t, "some random error", buf.String()) } + +// go test -run Test_Logger_Next +func Test_Logger_Next(t *testing.T) { + app := fiber.New(fiber.Config{ + DisableStartupMessage: true, + }) + app.Use(New(Config{ + Next: func(_ *fiber.Ctx) bool { + return true + }, + })) + + resp, err := app.Test(httptest.NewRequest("GET", "/", nil)) + utils.AssertEqual(t, nil, err) + utils.AssertEqual(t, fiber.StatusNotFound, resp.StatusCode) +} diff --git a/middleware/recover/recover.go b/middleware/recover/recover.go index fe3ea5e2..8ee4b30f 100644 --- a/middleware/recover/recover.go +++ b/middleware/recover/recover.go @@ -27,11 +27,6 @@ func New(config ...Config) fiber.Handler { // Override config if provided if len(config) > 0 { cfg = config[0] - - // Set default values - if cfg.Next == nil { - cfg.Next = ConfigDefault.Next - } } // Return new handler diff --git a/middleware/recover/recover_test.go b/middleware/recover/recover_test.go index 05e7c34a..dd76573a 100644 --- a/middleware/recover/recover_test.go +++ b/middleware/recover/recover_test.go @@ -27,3 +27,19 @@ func Test_Recover(t *testing.T) { utils.AssertEqual(t, nil, err) utils.AssertEqual(t, fiber.StatusTeapot, resp.StatusCode) } + +// go test -run Test_Recover_Next +func Test_Recover_Next(t *testing.T) { + app := fiber.New(fiber.Config{ + DisableStartupMessage: true, + }) + app.Use(New(Config{ + Next: func(_ *fiber.Ctx) bool { + return true + }, + })) + + resp, err := app.Test(httptest.NewRequest("GET", "/", nil)) + utils.AssertEqual(t, nil, err) + utils.AssertEqual(t, fiber.StatusNotFound, resp.StatusCode) +} diff --git a/middleware/requestid/requestid.go b/middleware/requestid/requestid.go index 68f6faff..fbee5203 100644 --- a/middleware/requestid/requestid.go +++ b/middleware/requestid/requestid.go @@ -44,9 +44,6 @@ func New(config ...Config) fiber.Handler { cfg = config[0] // Set default values - if cfg.Next == nil { - cfg.Next = ConfigDefault.Next - } if cfg.Header == "" { cfg.Header = ConfigDefault.Header } diff --git a/middleware/requestid/requestid_test.go b/middleware/requestid/requestid_test.go index 84db2d19..a01c161f 100644 --- a/middleware/requestid/requestid_test.go +++ b/middleware/requestid/requestid_test.go @@ -33,3 +33,19 @@ func Test_RequestID(t *testing.T) { utils.AssertEqual(t, fiber.StatusOK, resp.StatusCode) utils.AssertEqual(t, reqid, resp.Header.Get(fiber.HeaderXRequestID)) } + +// go test -run Test_RequestID_Next +func Test_RequestID_Next(t *testing.T) { + app := fiber.New(fiber.Config{ + DisableStartupMessage: true, + }) + app.Use(New(Config{ + Next: func(_ *fiber.Ctx) bool { + return true + }, + })) + + resp, err := app.Test(httptest.NewRequest("GET", "/", nil)) + utils.AssertEqual(t, nil, err) + utils.AssertEqual(t, fiber.StatusNotFound, resp.StatusCode) +}