fix maxParams bug (#2166)

This commit is contained in:
thinkerou 2019-12-04 07:56:01 +08:00 committed by GitHub
parent 77b8344169
commit 7c21e04f62
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 0 deletions

View File

@ -357,6 +357,10 @@ func (n *node) insertChild(numParams uint8, path string, fullPath string, handle
maxParams: 1, maxParams: 1,
fullPath: fullPath, fullPath: fullPath,
} }
// update maxParams of the parent node
if n.maxParams < 1 {
n.maxParams = 1
}
n.children = []*node{child} n.children = []*node{child}
n.indices = string(path[i]) n.indices = string(path[i])
n = child n = child

View File

@ -368,6 +368,13 @@ func TestTreeCatchAllConflictRoot(t *testing.T) {
testRoutes(t, routes) testRoutes(t, routes)
} }
func TestTreeCatchMaxParams(t *testing.T) {
tree := &node{}
var route = "/cmd/*filepath"
tree.addRoute(route, fakeHandler(route))
checkMaxParams(t, tree)
}
func TestTreeDoubleWildcard(t *testing.T) { func TestTreeDoubleWildcard(t *testing.T) {
const panicMsg = "only one wildcard per path segment is allowed" const panicMsg = "only one wildcard per path segment is allowed"