-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathpages_test.go
More file actions
89 lines (72 loc) · 2.08 KB
/
Copy pathpages_test.go
File metadata and controls
89 lines (72 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package xmux
import (
"testing"
)
func G2() *RouteGroup {
g2 := NewRouteGroup().AddPageKeys("g2")
g2.Get("/g2", nil)
return g2
}
func G3() *RouteGroup {
g3 := NewRouteGroup()
g3.Get("/g3", nil).AddPageKeys("g3")
return g3
}
func G4() *RouteGroup {
g4 := NewRouteGroup().DelPageKeys("g4")
g4.Get("/g4", nil)
g4.Get("/g4_1", nil).AddPageKeys("g4_1")
return g4
}
func G5() *RouteGroup {
g5 := NewRouteGroup().AddPageKeys("g5")
g5.Get("/g5", nil).AddPageKeys("g2")
return g5
}
func G6() *RouteGroup {
g6 := NewRouteGroup().AddPageKeys("g6")
g6.Get("/g6", nil).DelPageKeys("g3")
g6.Get("/g6_1", nil).DelPageKeys("g1")
return g6
}
func G1() *RouteGroup {
g1 := NewRouteGroup().AddPageKeys("g1")
g1.AddGroup(G2())
return g1
}
// 嵌套带中间件的组路由,组路由的中间件覆盖最外层的router的中间件
func TestGroupPagesCoveredRouterPages(t *testing.T) {
router := NewRouter()
router.AddGroup(G2())
router.DebugAssignRoute("/g2")
}
// 路由的中间件覆盖路由组的中间件
func TestRoutePagesCoveredGroupPages(t *testing.T) {
router := NewRouter()
router.AddGroup(G5())
router.DebugAssignRoute("/g5")
}
// 组路由删除中间,此组的中间件都将删除,但是外层的没影响
func TestDeleteGroupPagesWillDeleteRouterPages(t *testing.T) {
router := NewRouter().AddPageKeys("g1")
router.Get("/r1", nil)
router.AddGroup(G4())
router.Get("/r2", nil)
// router.DebugAssignRoute("/r1")
// router.DebugAssignRoute("/r2")
router.DebugAssignRoute("/g4")
// router.DebugAssignRoute("/g4_1")
}
// router和组里面都带了中间件,组里面的中间件会覆盖最外层
// 删除的话,只有删除组里面的才会删除
// 路由删除中间件,将会删除对应Router或者组的中间件, 如果外层的的不一样
func TestOnlyOnePagesBeStayRouteDelPagesWillDeleteTheLastestPages(t *testing.T) {
router := NewRouter()
router.AddGroup(G6())
}
// router里面挂载了全局的中间件, 测试下面的url是否都挂载了
func TestOnlyRouter(t *testing.T) {
router := NewRouter()
router.Get("/r1", nil)
router.Get("/r2", nil)
}