|
package context |
|
|
|
import ( |
|
"fmt" |
|
"testing" |
|
|
|
"github.com/magiconair/properties/assert" |
|
) |
|
|
|
func TestSlash(t *testing.T) { |
|
assert.Equal(t, "/abc", slash("/abc")) |
|
assert.Equal(t, "/", slash("")) |
|
assert.Equal(t, "/abc", slash("abc/")) |
|
assert.Equal(t, "/", slash("/")) |
|
assert.Equal(t, "/abc", slash("/abc/")) |
|
assert.Equal(t, "/", slash("//")) |
|
} |
|
|
|
func TestJoin(t *testing.T) { |
|
assert.Equal(t, "/abc/abc", join(slash("/abc"), slash("/abc"))) |
|
assert.Equal(t, "/", join(slash("/"), slash("/"))) |
|
assert.Equal(t, "/abc", join(slash("/"), slash("/abc"))) |
|
assert.Equal(t, "/abc", join(slash("abc/"), slash("/"))) |
|
assert.Equal(t, "/abc", join(slash("/abc/"), slash("/"))) |
|
} |
|
|
|
func TestTree(t *testing.T) { |
|
tree := tree() |
|
tree.addPath(stringToArr("/adm"), "GET", []Handler{func(ctx *Context) { fmt.Println(1) }}) |
|
tree.addPath(stringToArr("/admi"), "GET", []Handler{func(ctx *Context) { fmt.Println(1) }}) |
|
tree.addPath(stringToArr("/admin"), "GET", []Handler{func(ctx *Context) { fmt.Println(1) }}) |
|
tree.addPath(stringToArr("/admin/menu/new"), "POST", []Handler{func(ctx *Context) { fmt.Println(1) }}) |
|
tree.addPath(stringToArr("/admin/menu/new"), "GET", []Handler{func(ctx *Context) { fmt.Println(1) }}) |
|
tree.addPath(stringToArr("/admin/info/:__prefix"), "GET", []Handler{ |
|
func(ctx *Context) { fmt.Println("auth") }, |
|
func(ctx *Context) { fmt.Println("init") }, |
|
func(ctx *Context) { fmt.Println("info") }, |
|
}) |
|
tree.addPath(stringToArr("/admin/info/:__prefix/detail"), "GET", []Handler{ |
|
func(ctx *Context) { fmt.Println("auth") }, |
|
func(ctx *Context) { fmt.Println("detail") }, |
|
}) |
|
|
|
fmt.Println("/admin/menu/new", "GET") |
|
h := tree.findPath(stringToArr("/admin/menu/new"), "GET") |
|
assert.Equal(t, h != nil, true) |
|
printHandler(h) |
|
fmt.Println("/admin/menu/new", "POST") |
|
h = tree.findPath(stringToArr("/admin/menu/new"), "POST") |
|
assert.Equal(t, h != nil, true) |
|
printHandler(h) |
|
fmt.Println("/admin/me/new", "POST") |
|
h = tree.findPath(stringToArr("/admin/me/new"), "POST") |
|
assert.Equal(t, h == nil, true) |
|
printHandler(h) |
|
fmt.Println("/admin/info/user", "GET") |
|
h = tree.findPath(stringToArr("/admin/info/user"), "GET") |
|
assert.Equal(t, h != nil, true) |
|
printHandler(h) |
|
fmt.Println("/admin/info/user/detail", "GET") |
|
h = tree.findPath(stringToArr("/admin/info/user/detail"), "GET") |
|
assert.Equal(t, h != nil, true) |
|
printHandler(h) |
|
fmt.Println("=========== printChildren ===========") |
|
tree.printChildren() |
|
} |
|
|
|
func printHandler(h []Handler) { |
|
for _, value := range h { |
|
value(&Context{}) |
|
} |
|
} |
|
|