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
|
package keyfile
import (
"strings"
"testing"
)
func TestUnescapeString(t *testing.T) {
goodData := map[string]string{
"": "",
"asdf": "asdf",
"asdf\\\\asdf": "asdf\\asdf",
"\\sasdf": " asdf",
"hello\\nworld": "hello\nworld",
"asdf\\tasdf": "asdf\tasdf",
"asdf\\rasdf": "asdf\rasdf",
}
for input, expected := range goodData {
str, err := unescapeString(input)
if err != nil {
t.Error(err)
}
if str != expected {
t.Errorf("error escapeing '%v'", input)
}
}
badData := map[string]error{
"\\": ErrUnexpectedEndOfString,
"\\p": ErrBadEscapeSequence,
}
for input, expected := range badData {
_, err := unescapeString(input)
if err != expected {
t.Error(err)
}
}
}
func TestBadStringList(t *testing.T) {
const badList = `list=asdf;asdf\`
kf, err := New(strings.NewReader(badList))
if err != nil {
t.Fail()
} else {
_, err = kf.StringList("", "list")
if err != ErrUnexpectedEndOfString {
t.Fail()
}
}
const badStringInList = `list=asdf;as\qasd;`
kf, err = New(strings.NewReader(badStringInList))
if err != nil {
t.Fail()
} else {
_, err = kf.StringList("", "list")
if err != ErrBadEscapeSequence {
t.Fail()
}
}
}
|