hid: port IRC tests from liberty, fix tag parsing
This commit is contained in:
parent
62418ebb54
commit
f32e2f1483
|
@ -420,7 +420,7 @@ func ircFnmatch(pattern string, s string) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
var reMsg = regexp.MustCompile(
|
var reMsg = regexp.MustCompile(
|
||||||
`^(@[^ ]* +)?(?::([^! ]*)(?:!([^@]*)@([^ ]*))? +)?([^ ]+)(.*)?$`)
|
`^(?:@([^ ]*) +)?(?::([^! ]*)(?:!([^@]*)@([^ ]*))? +)?([^ ]+)(.*)?$`)
|
||||||
var reArgs = regexp.MustCompile(`:.*| [^: ][^ ]*`)
|
var reArgs = regexp.MustCompile(`:.*| [^: ][^ ]*`)
|
||||||
|
|
||||||
type message struct {
|
type message struct {
|
||||||
|
|
|
@ -137,3 +137,32 @@ func TestDetectTLS(t *testing.T) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestIRC(t *testing.T) {
|
||||||
|
msg := ircParseMessage(
|
||||||
|
`@first=a\:\s\r\n\\;2nd :srv hi there :good m8 :how are you?`)
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(msg.tags, map[string]string{
|
||||||
|
"first": "a; \r\n\\",
|
||||||
|
"2nd": "",
|
||||||
|
}) {
|
||||||
|
t.Error("tags parsed incorrectly")
|
||||||
|
}
|
||||||
|
|
||||||
|
if msg.nick != "srv" || msg.user != "" || msg.host != "" {
|
||||||
|
t.Error("server name parsed incorrectly")
|
||||||
|
}
|
||||||
|
if msg.command != "hi" {
|
||||||
|
t.Error("command name parsed incorrectly")
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(msg.params,
|
||||||
|
[]string{"there", "good m8 :how are you?"}) {
|
||||||
|
t.Error("params parsed incorrectly")
|
||||||
|
}
|
||||||
|
|
||||||
|
if !ircEqual("[fag]^", "{FAG}~") {
|
||||||
|
t.Error("string case comparison not according to RFC 2812")
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: More tests.
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue