This repository has been archived by the owner on Oct 27, 2018. It is now read-only.
forked from shazow/go-irckit
-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathmmservice_test.go
106 lines (100 loc) · 2.65 KB
/
mmservice_test.go
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
106
package irckit
import (
"fmt"
"testing"
"github.com/stretchr/testify/assert"
)
type ParseTest struct {
Desc string
Value string
Results []string
IsGood bool
}
var loginTests = []ParseTest{
{
Desc: "base simple case",
Value: "login user password",
Results: []string{"login", "user", "password"},
IsGood: true,
},
{
Desc: "Simple with server",
Value: "login server user password",
Results: []string{"login", "server", "user", "password"},
IsGood: true,
},
{
Desc: "Simple with server and team",
Value: "login server team user password",
Results: []string{"login", "server", "team", "user", "password"},
IsGood: true,
},
{
Desc: "Simple Long Password Login Single Quote",
Value: "login user 'long password'",
Results: []string{"login", "user", "long password"},
IsGood: true,
},
{
Desc: "Long Password Login (server) Single Quote",
Value: "login server user 'long password'",
Results: []string{"login", "server", "user", "long password"},
IsGood: true,
},
{
Desc: "Long Password Login (server & team) Single Quote",
Value: "login server team user 'long password'",
Results: []string{"login", "server", "team", "user", "long password"},
IsGood: true,
},
{
Desc: "Simple Long Password Login Double Quote",
Value: "login user \"long password\"",
Results: []string{"login", "user", "long password"},
IsGood: true,
},
{
Desc: "Long Password Login (server) Double Quote",
Value: "login server user \"long password\"",
Results: []string{"login", "server", "user", "long password"},
IsGood: true,
},
{
Desc: "Long Password Login (server & team) Double Quote",
Value: "login server team user \"long password\"",
Results: []string{"login", "server", "team", "user", "long password"},
IsGood: true,
},
{
Desc: "Test Last Space",
Value: "login user \"long password\" ",
Results: []string{"login", "user", "long password"},
IsGood: true,
},
{
Desc: "Test Escape",
Value: "login user \"\\&long password\"",
Results: []string{"login", "user", "&long password"},
IsGood: true,
},
{
Desc: "Test Escape Quote",
Value: "login user \"\\\"long password\"",
Results: []string{"login", "user", "\"long password"},
IsGood: true,
},
}
func TestParseCommandString(t *testing.T) {
fmt.Println("--------------------")
for _, tc := range loginTests {
results, err := parseCommandString(tc.Value)
if err != nil && tc.IsGood {
t.Fatal(tc.Desc + " should be an error.")
}
fmt.Println(tc.Desc)
for i, r := range tc.Results {
fmt.Printf("Testing [%s] == [%s]\n", results[i], r)
assert.Equal(t, results[i], r)
}
}
}