Skip to content

Commit

Permalink
Fixes gin.Routes() tests
Browse files Browse the repository at this point in the history
  • Loading branch information
manucorporat committed Jun 18, 2015
1 parent 451f3b9 commit 1a7ab6e
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 28 deletions.
7 changes: 4 additions & 3 deletions gin.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@ type (
ForwardedByClientIP bool
}

RouteInfo struct {
RoutesInfo []RouteInfo
RouteInfo struct {
Method string
Path string
Handler string
Expand Down Expand Up @@ -195,14 +196,14 @@ func (engine *Engine) addRoute(method, path string, handlers HandlersChain) {
root.addRoute(path, handlers)
}

func (engine *Engine) Routes() (routes []RouteInfo) {
func (engine *Engine) Routes() (routes RoutesInfo) {
for _, tree := range engine.trees {
routes = iterate("", tree.method, routes, tree.root)
}
return routes
}

func iterate(path, method string, routes []RouteInfo, root *node) []RouteInfo {
func iterate(path, method string, routes RoutesInfo, root *node) RoutesInfo {
path += root.path
if len(root.handlers) > 0 {
routes = append(routes, RouteInfo{
Expand Down
48 changes: 23 additions & 25 deletions gin_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -181,48 +181,46 @@ func compareFunc(t *testing.T, a, b interface{}) {
}

func TestListOfRoutes(t *testing.T) {
handler := func(c *Context) {}
router := New()
router.GET("/favicon.ico", handler)
router.GET("/", handler)
router.GET("/favicon.ico", handler_test1)
router.GET("/", handler_test1)
group := router.Group("/users")
{
group.GET("/", handler)
group.GET("/:id", handler)
group.POST("/:id", handler)
group.GET("/", handler_test2)
group.GET("/:id", handler_test1)
group.POST("/:id", handler_test2)
}
router.Static("/static", ".")

list := router.Routes()

assert.Len(t, list, 7)
assert.Contains(t, list, RouteInfo{
Method: "GET",
Path: "/favicon.ico",
Method: "GET",
Path: "/favicon.ico",
Handler: "github.com/gin-gonic/gin.handler_test1",
})
assert.Contains(t, list, RouteInfo{
Method: "GET",
Path: "/",
Method: "GET",
Path: "/",
Handler: "github.com/gin-gonic/gin.handler_test1",
})
assert.Contains(t, list, RouteInfo{
Method: "GET",
Path: "/users/",
Method: "GET",
Path: "/users/",
Handler: "github.com/gin-gonic/gin.handler_test2",
})
assert.Contains(t, list, RouteInfo{
Method: "GET",
Path: "/users/:id",
Method: "GET",
Path: "/users/:id",
Handler: "github.com/gin-gonic/gin.handler_test1",
})
assert.Contains(t, list, RouteInfo{
Method: "POST",
Path: "/users/:id",
Method: "POST",
Path: "/users/:id",
Handler: "github.com/gin-gonic/gin.handler_test2",
})
assert.Contains(t, list, RouteInfo{
Method: "GET",
Path: "/static/*filepath",
})
assert.Contains(t, list, RouteInfo{
Method: "HEAD",
Path: "/static/*filepath",
})

}

func handler_test1(c *Context) {}
func handler_test2(c *Context) {}

0 comments on commit 1a7ab6e

Please sign in to comment.