-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsocketio_server_test.go
More file actions
92 lines (84 loc) · 2.44 KB
/
socketio_server_test.go
File metadata and controls
92 lines (84 loc) · 2.44 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
90
91
92
package main
import (
"log"
"socketio_server/router"
"testing"
)
func init() {
log.SetFlags(log.LstdFlags | log.Lshortfile)
}
func TestRouter(t *testing.T) {
r := router.GetRouter()
ctx := &router.Context{
nil,
map[string]string{},
}
rh := r.AddRouter("/:name-:tel", func(ctx *router.Context) {
if ctx.Params["name"] != "tom" || ctx.Params["tel"] != "123" {
t.Errorf("add router: tom-123 failed, %s\n", ctx.Params)
} else {
t.Log("sucess:", ctx.Params)
}
})
log.Printf("add /:name-:tel | %v", rh)
rh = r.AddRouterMethod("/", "Get", func(ctx *router.Context) {
t.Log("sucess: /", ctx.Params)
})
log.Printf("add /| %v", rh)
rh = r.AddRouterMethod("/:name/:addr", "Post", func(ctx *router.Context) {
if ctx.Params["name"] != "Jame" || ctx.Params["addr"] != "yufei" {
t.Errorf("add router: Jame/yufei failed, %s\n", ctx.Params)
} else {
t.Log("sucess:", ctx.Params)
}
})
log.Printf("add /:name/:addr | %v", rh)
rh = r.AddRouter("/chat_room/:room.:user", func(ctx *router.Context) {
if ctx.Params["room"] != "1" || ctx.Params["user"] != "2" {
t.Errorf("add router: /:room.:user failed, %s\n", ctx.Params)
} else {
t.Log("sucess:", ctx.Params)
}
})
log.Printf("add /:room.:user | %v", rh)
rh = r.AddRouterMethod("/javascript/:subpath", "get", func(ctx *router.Context) {
if ctx.Params["subpath"] != "a" {
t.Errorf("add router: /javascript/:subpath failed, %s\n", ctx.Params)
} else {
t.Log("sucess:", ctx.Params)
}
})
log.Printf("add /javascript/:subpath | %v", rh)
err := r.Dispatch(ctx, "/tom-123", "")
if err != nil {
t.Errorf("Dispatch tom-123 failed: %v\n", err)
}
err = r.Dispatch(ctx, "/", "get")
if err != nil {
t.Errorf("Dispatch / failed: %v\n", err)
}
err = r.Dispatch(ctx, "/", "post")
if err == nil {
t.Errorf("Dispatch post / should failed \n")
} else {
t.Log("success: Dispatch post / should failed:", err)
}
err = r.Dispatch(ctx, "/Jame/yufei", "post")
if err != nil {
t.Errorf("Dispatch Jame/yufei failed: %v\n", err)
}
err = r.Dispatch(ctx, "/chat_room/1.2", "")
if err != nil {
t.Errorf("Dispatch /chat_room/1.2 failed: %v\n", err)
}
err = r.Dispatch(ctx, "/javascript/a/b", "get")
if err != nil {
t.Errorf("Dispatch /javascript/a/b failed: %v\n", err)
}
err = r.Dispatch(ctx, "/someelse/javascript/a/b", "get")
if err == nil {
t.Errorf("Dispatch /someelse/javascript/a/b should failed\n")
} else {
t.Log("sucess: /someelse/javascript/a/b should failed:", err)
}
}