github.com/kotovmak/go-admin@v1.1.1/context/context_test.go (about) 1 package context 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/magiconair/properties/assert" 8 ) 9 10 func TestSlash(t *testing.T) { 11 assert.Equal(t, "/abc", slash("/abc")) 12 assert.Equal(t, "/", slash("")) 13 assert.Equal(t, "/abc", slash("abc/")) 14 assert.Equal(t, "/", slash("/")) 15 assert.Equal(t, "/abc", slash("/abc/")) 16 assert.Equal(t, "/", slash("//")) 17 } 18 19 func TestJoin(t *testing.T) { 20 assert.Equal(t, "/abc/abc", join(slash("/abc"), slash("/abc"))) 21 assert.Equal(t, "/", join(slash("/"), slash("/"))) 22 assert.Equal(t, "/abc", join(slash("/"), slash("/abc"))) 23 assert.Equal(t, "/abc", join(slash("abc/"), slash("/"))) 24 assert.Equal(t, "/abc", join(slash("/abc/"), slash("/"))) 25 } 26 27 func TestTree(t *testing.T) { 28 tree := tree() 29 tree.addPath(stringToArr("/adm"), "GET", []Handler{func(ctx *Context) { fmt.Println(1) }}) 30 tree.addPath(stringToArr("/admi"), "GET", []Handler{func(ctx *Context) { fmt.Println(1) }}) 31 tree.addPath(stringToArr("/admin"), "GET", []Handler{func(ctx *Context) { fmt.Println(1) }}) 32 tree.addPath(stringToArr("/admin/menu/new"), "POST", []Handler{func(ctx *Context) { fmt.Println(1) }}) 33 tree.addPath(stringToArr("/admin/menu/new"), "GET", []Handler{func(ctx *Context) { fmt.Println(1) }}) 34 tree.addPath(stringToArr("/admin/info/:__prefix"), "GET", []Handler{ 35 func(ctx *Context) { fmt.Println("auth") }, 36 func(ctx *Context) { fmt.Println("init") }, 37 func(ctx *Context) { fmt.Println("info") }, 38 }) 39 tree.addPath(stringToArr("/admin/info/:__prefix/detail"), "GET", []Handler{ 40 func(ctx *Context) { fmt.Println("auth") }, 41 func(ctx *Context) { fmt.Println("detail") }, 42 }) 43 44 fmt.Println("/admin/menu/new", "GET") 45 h := tree.findPath(stringToArr("/admin/menu/new"), "GET") 46 assert.Equal(t, h != nil, true) 47 printHandler(h) 48 fmt.Println("/admin/menu/new", "POST") 49 h = tree.findPath(stringToArr("/admin/menu/new"), "POST") 50 assert.Equal(t, h != nil, true) 51 printHandler(h) 52 fmt.Println("/admin/me/new", "POST") 53 h = tree.findPath(stringToArr("/admin/me/new"), "POST") 54 assert.Equal(t, h == nil, true) 55 printHandler(h) 56 fmt.Println("/admin/info/user", "GET") 57 h = tree.findPath(stringToArr("/admin/info/user"), "GET") 58 assert.Equal(t, h != nil, true) 59 printHandler(h) 60 fmt.Println("/admin/info/user/detail", "GET") 61 h = tree.findPath(stringToArr("/admin/info/user/detail"), "GET") 62 assert.Equal(t, h != nil, true) 63 printHandler(h) 64 fmt.Println("=========== printChildren ===========") 65 tree.printChildren() 66 } 67 68 func printHandler(h []Handler) { 69 for _, value := range h { 70 value(&Context{}) 71 } 72 }