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  }