76 lines
1.2 KiB
Go
76 lines
1.2 KiB
Go
|
package ircfmt
|
||
|
|
||
|
import "testing"
|
||
|
|
||
|
type testcase struct {
|
||
|
escaped string
|
||
|
unescaped string
|
||
|
}
|
||
|
|
||
|
var tests = []testcase{
|
||
|
{"te$bst", "te\x02st"},
|
||
|
{"te$c[green]st", "te\x033st"},
|
||
|
{"te$c[red,green]st", "te\x034,3st"},
|
||
|
{"te$c[green]4st", "te\x03034st"},
|
||
|
{"te$c[red,green]9st", "te\x034,039st"},
|
||
|
}
|
||
|
|
||
|
var escapetests = []testcase{
|
||
|
{"te$c[]st", "te\x03st"},
|
||
|
{"test$c[]", "test\x03"},
|
||
|
}
|
||
|
|
||
|
var unescapetests = []testcase{
|
||
|
{"te$st", "test"},
|
||
|
}
|
||
|
|
||
|
func TestEscape(t *testing.T) {
|
||
|
for _, pair := range tests {
|
||
|
val := Escape(pair.unescaped)
|
||
|
|
||
|
if val != pair.escaped {
|
||
|
t.Error(
|
||
|
"For", pair.unescaped,
|
||
|
"expected", pair.escaped,
|
||
|
"got", val,
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
for _, pair := range escapetests {
|
||
|
val := Escape(pair.unescaped)
|
||
|
|
||
|
if val != pair.escaped {
|
||
|
t.Error(
|
||
|
"For", pair.unescaped,
|
||
|
"expected", pair.escaped,
|
||
|
"got", val,
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestUnescape(t *testing.T) {
|
||
|
for _, pair := range tests {
|
||
|
val := Unescape(pair.escaped)
|
||
|
|
||
|
if val != pair.unescaped {
|
||
|
t.Error(
|
||
|
"For", pair.escaped,
|
||
|
"expected", pair.unescaped,
|
||
|
"got", val,
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
for _, pair := range unescapetests {
|
||
|
val := Unescape(pair.escaped)
|
||
|
|
||
|
if val != pair.unescaped {
|
||
|
t.Error(
|
||
|
"For", pair.escaped,
|
||
|
"expected", pair.unescaped,
|
||
|
"got", val,
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
}
|