func TestAllowHeaders(t *testing.T) { g := gin.New() g.Use(Middleware(Options{ AllowHeaders: []string{"X-Custom-Header", "X-Auth-Token"}, })) assert := assert.New(t) r := request(g, requestOptions{ Method: "OPTIONS", URL: "/", Headers: map[string]string{ "Origin": "http://maji.moe", }, }) assert.Equal("X-Custom-Header,X-Auth-Token", r.Header().Get("Access-Control-Allow-Headers")) }
func TestMaxAge(t *testing.T) { g := gin.New() g.Use(Middleware(Options{ MaxAge: time.Hour, })) assert := assert.New(t) r := request(g, requestOptions{ Method: "OPTIONS", URL: "/", Headers: map[string]string{ "Origin": "http://maji.moe", }, }) assert.Equal("3600", r.Header().Get("Access-Control-Max-Age")) }
func TestAllowMethods(t *testing.T) { g := gin.New() g.Use(Middleware(Options{ AllowMethods: []string{"GET", "POST", "PUT"}, })) assert := assert.New(t) r := request(g, requestOptions{ Method: "OPTIONS", URL: "/", Headers: map[string]string{ "Origin": "http://maji.moe", }, }) assert.Equal("GET,POST,PUT", r.Header().Get("Access-Control-Allow-Methods")) }
func TestDefault(t *testing.T) { g := newServer() assert := assert.New(t) g.GET("/test", func(c *gin.Context) { c.String(http.StatusOK, "OK") }) r := request(g, requestOptions{ URL: "/test", Headers: map[string]string{ "Origin": "http://maji.moe", }, }) assert.Equal("http://maji.moe", r.Header().Get("Access-Control-Allow-Origin")) assert.Equal("OK", r.Body.String()) }
func TestOptionsRequest(t *testing.T) { g := newServer() assert := assert.New(t) r := request(g, requestOptions{ Method: "OPTIONS", URL: "/", Headers: map[string]string{ "Origin": "http://maji.moe", }, }) assert.Equal("http://maji.moe", r.Header().Get("Access-Control-Allow-Origin")) assert.Equal("GET,POST,PUT,DELETE,PATCH,HEAD", r.Header().Get("Access-Control-Allow-Methods")) assert.Equal("Origin,Accept,Content-Type,Authorization", r.Header().Get("Access-Control-Allow-Headers")) assert.Equal("", r.Body.String()) assert.Equal(200, r.Code) }
func TestAllowCredentials(t *testing.T) { g := gin.New() g.Use(Middleware(Options{ AllowCredentials: true, })) assert := assert.New(t) g.GET("/test", func(c *gin.Context) { c.String(http.StatusOK, "OK") }) r := request(g, requestOptions{ URL: "/test", Headers: map[string]string{ "Origin": "http://maji.moe", }, }) assert.Equal("true", r.Header().Get("Access-Control-Allow-Credentials")) assert.Equal("OK", r.Body.String()) }
func TestExposeHeaders(t *testing.T) { g := gin.New() g.Use(Middleware(Options{ ExposeHeaders: []string{"Foo", "Bar"}, })) assert := assert.New(t) g.GET("/test", func(c *gin.Context) { c.String(http.StatusOK, "OK") }) r := request(g, requestOptions{ URL: "/test", Headers: map[string]string{ "Origin": "http://maji.moe", }, }) assert.Equal("Foo,Bar", r.Header().Get("Access-Control-Expose-Headers")) assert.Equal("OK", r.Body.String()) }
// SetT sets the current *testing.T context. func (suite *Suite) SetT(t *testing.T) { suite.t = t suite.Assertions = assert.New(t) }
// Assert returns an assert context for suite. Normally, you can call // `suite.NoError(expected, actual)`, but for situations where the embedded // methods are overridden (for example, you might want to override // assert.Assertions with require.Assertions), this method is provided so you // can call `suite.Assert().NoError()`. func (suite *Suite) Assert() *assert.Assertions { if suite.Assertions == nil { suite.Assertions = assert.New(suite.T()) } return suite.Assertions }