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
93
94
95
96
97
98
99
100
101
102
103
104
105
|
package config
import "testing"
func TestActionValidate(t *testing.T) {
// Empty action
menuEntry := MenuEntry{Key: "l", Label: "label", Action: ""}
if err := menuEntry.validate(); err == nil {
t.Fatal("An action cannot be empty")
}
// Invalid action
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "invalid"}
if err := menuEntry.validate(); err == nil {
t.Fatal("An action must be valid")
}
// chmail
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "chmail a"}
if err := menuEntry.validate(); err == nil {
t.Fatal("chmail action does not take arguments")
}
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "chmail"}
if err := menuEntry.validate(); err != nil {
t.Fatalf("chmail action without arguments is valid\nerror: +%v", err)
}
// login
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "login a"}
if err := menuEntry.validate(); err == nil {
t.Fatal("login action does not take arguments")
}
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "login"}
if err := menuEntry.validate(); err != nil {
t.Fatalf("login action without arguments is valid\nerror: +%v", err)
}
// menu
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "menu"}
if err := menuEntry.validate(); err == nil {
t.Fatal("menu action takes exactly one argument")
}
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "menu test plop"}
if err := menuEntry.validate(); err == nil {
t.Fatal("menu action takes exactly one argument")
}
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "menu test"}
if err := menuEntry.validate(); err != nil {
t.Fatalf("menu action with one argument is valid\nerror: +%v", err)
}
// passwd
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "passwd a"}
if err := menuEntry.validate(); err == nil {
t.Fatal("passwd action does not take arguments")
}
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "passwd"}
if err := menuEntry.validate(); err != nil {
t.Fatalf("passwd action without arguments is valid\nerror: +%v", err)
}
// play
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "play"}
if err := menuEntry.validate(); err == nil {
t.Fatal("play action takes exactly one argument")
}
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "play test plop"}
if err := menuEntry.validate(); err == nil {
t.Fatal("play action takes exactly one argument")
}
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "play test"}
if err := menuEntry.validate(); err != nil {
t.Fatalf("play action with one argument is valid\nerror: +%v", err)
}
// register
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "register a"}
if err := menuEntry.validate(); err == nil {
t.Fatal("register action does not take arguments")
}
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "register"}
if err := menuEntry.validate(); err != nil {
t.Fatalf("register action without arguments is valid\nerror: +%v", err)
}
// replay
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "replay a"}
if err := menuEntry.validate(); err == nil {
t.Fatal("replay action does not take arguments")
}
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "replay"}
if err := menuEntry.validate(); err != nil {
t.Fatalf("replay action without arguments is valid\nerror: +%v", err)
}
// watch
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "watch a"}
if err := menuEntry.validate(); err == nil {
t.Fatal("watch action does not take arguments")
}
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "watch"}
if err := menuEntry.validate(); err != nil {
t.Fatalf("watch action without arguments is valid\nerror: +%v", err)
}
// quit
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "quit a"}
if err := menuEntry.validate(); err == nil {
t.Fatal("quit action does not take arguments")
}
menuEntry = MenuEntry{Key: "l", Label: "label", Action: "quit"}
if err := menuEntry.validate(); err != nil {
t.Fatalf("quit action without arguments is valid\nerror: +%v", err)
}
}
|