From ac24661f044a673f65cfeb6b88ab9cf6f3f5d99a Mon Sep 17 00:00:00 2001 From: Eason Lin Date: Sun, 25 Jun 2017 17:23:11 +0800 Subject: [PATCH] add tests --- swagger.go | 11 +++-------- swagger_test.go | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 8 deletions(-) create mode 100644 swagger_test.go diff --git a/swagger.go b/swagger.go index d828722..80edf79 100644 --- a/swagger.go +++ b/swagger.go @@ -2,7 +2,6 @@ package ginSwagger import ( "github.com/gin-gonic/gin" - "github.com/labstack/gommon/log" "github.com/swag-gonic/swag/swagger" "golang.org/x/net/webdav" "html/template" @@ -19,7 +18,7 @@ func WrapHandler(h *webdav.Handler) gin.HandlerFunc { Host string } - var re = regexp.MustCompile(`(.*)(/|index\.html|doc\.json|favicon-16x16\.png|favicon-32x32\.png|/oauth2-redirect\.html|swagger-ui\.css|swagger-ui\.css\.map|swagger-ui\.js|swagger-ui\.js\.map|swagger-ui-bundle\.js|swagger-ui-bundle\.js\.map|swagger-ui-standalone-preset\.js|swagger-ui-standalone-preset\.js\.map)[\?|.]*`) + var re = regexp.MustCompile(`(.*)(index\.html|doc\.json|favicon-16x16\.png|favicon-32x32\.png|/oauth2-redirect\.html|swagger-ui\.css|swagger-ui\.css\.map|swagger-ui\.js|swagger-ui\.js\.map|swagger-ui-bundle\.js|swagger-ui-bundle\.js\.map|swagger-ui-standalone-preset\.js|swagger-ui-standalone-preset\.js\.map)[\?|.]*`) return func(c *gin.Context) { var matches []string @@ -33,15 +32,11 @@ func WrapHandler(h *webdav.Handler) gin.HandlerFunc { h.Prefix = prefix switch path { - case "/", "index.html": + case "index.html": s := &pro{ Host: "doc.json", //TODO: provide to customs? } - - if err := index.Execute(c.Writer, s); err != nil { - log.Fatal("Execute:", err) - return - } + index.Execute(c.Writer, s) case "doc.json": c.Writer.Write([]byte(swagger.ReadDoc())) return diff --git a/swagger_test.go b/swagger_test.go new file mode 100644 index 0000000..214444d --- /dev/null +++ b/swagger_test.go @@ -0,0 +1,38 @@ +package ginSwagger + +import ( + "github.com/gin-gonic/gin" + "github.com/stretchr/testify/assert" + "github.com/swag-gonic/gin-swagger/swaggerFiles" + "net/http/httptest" + "testing" + + _ "github.com/swag-gonic/gin-swagger/example/docs" +) + +func TestWrapHandler(t *testing.T) { + gin.SetMode(gin.TestMode) + router := gin.New() + + router.GET("/*any", WrapHandler(swaggerFiles.Handler)) + + w1 := performRequest("GET", "/index.html", router) + assert.Equal(t, 200, w1.Code) + + w2 := performRequest("GET", "/doc.json", router) + assert.Equal(t, 200, w2.Code) + + w3 := performRequest("GET", "/favicon-16x16.png", router) + assert.Equal(t, 200, w3.Code) + + w4 := performRequest("GET", "/notfound", router) + assert.Equal(t, 404, w4.Code) + +} + +func performRequest(method, target string, router *gin.Engine) *httptest.ResponseRecorder { + r := httptest.NewRequest(method, target, nil) + w := httptest.NewRecorder() + router.ServeHTTP(w, r) + return w +}