1
0
mirror of https://github.com/astaxie/beego.git synced 2024-11-22 23:20:54 +00:00

Merge pull request #1680 from ysqi/fix-router-error

fix #1595
This commit is contained in:
astaxie 2016-02-26 16:17:53 +08:00
commit 67fbafb380
2 changed files with 16 additions and 5 deletions

View File

@ -265,15 +265,14 @@ func (t *Tree) addseg(segments []string, route interface{}, wildcards []string,
} }
t.wildcard.addseg(segments[1:], route, append(wildcards, params...), reg+regexpStr) t.wildcard.addseg(segments[1:], route, append(wildcards, params...), reg+regexpStr)
} else { } else {
var ok bool
var subTree *Tree var subTree *Tree
for _, subTree = range t.fixrouters { for _, sub := range t.fixrouters {
if t.prefix == seg { if sub.prefix == seg {
ok = true subTree = sub
break break
} }
} }
if !ok { if subTree == nil {
subTree = NewTree() subTree = NewTree()
subTree.prefix = seg subTree.prefix = seg
t.fixrouters = append(t.fixrouters, subTree) t.fixrouters = append(t.fixrouters, subTree)

View File

@ -221,6 +221,18 @@ func TestAddTree4(t *testing.T) {
} }
} }
// Test for issue #1595
func TestAddTree5(t *testing.T) {
tr := NewTree()
tr.AddRouter("/v1/shop/:id", "shopdetail")
tr.AddRouter("/v1/shop/", "shophome")
ctx := context.NewContext()
obj := tr.Match("/v1/shop/", ctx)
if obj == nil || obj.(string) != "shophome" {
t.Fatal("url /v1/shop/ need match router /v1/shop/ ")
}
}
func TestSplitPath(t *testing.T) { func TestSplitPath(t *testing.T) {
a := splitPath("") a := splitPath("")
if len(a) != 0 { if len(a) != 0 {