mirror of
https://github.com/Oxalide/vsphere-influxdb-go.git
synced 2023-10-10 13:36:51 +02:00
69 lines
982 B
Go
69 lines
982 B
Go
package escape
|
|
|
|
import (
|
|
"bytes"
|
|
"reflect"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestUnescape(t *testing.T) {
|
|
tests := []struct {
|
|
in []byte
|
|
out []byte
|
|
}{
|
|
{
|
|
[]byte(nil),
|
|
[]byte(nil),
|
|
},
|
|
|
|
{
|
|
[]byte(""),
|
|
[]byte(nil),
|
|
},
|
|
|
|
{
|
|
[]byte("\\,\\\"\\ \\="),
|
|
[]byte(",\" ="),
|
|
},
|
|
|
|
{
|
|
[]byte("\\\\"),
|
|
[]byte("\\\\"),
|
|
},
|
|
|
|
{
|
|
[]byte("plain and simple"),
|
|
[]byte("plain and simple"),
|
|
},
|
|
}
|
|
|
|
for ii, tt := range tests {
|
|
got := Unescape(tt.in)
|
|
if !reflect.DeepEqual(got, tt.out) {
|
|
t.Errorf("[%d] Unescape(%#v) = %#v, expected %#v", ii, string(tt.in), string(got), string(tt.out))
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestAppendUnescaped(t *testing.T) {
|
|
cases := strings.Split(strings.TrimSpace(`
|
|
normal
|
|
inv\alid
|
|
goo\"d
|
|
sp\ ace
|
|
\,\"\ \=
|
|
f\\\ x
|
|
`), "\n")
|
|
|
|
for _, c := range cases {
|
|
exp := Unescape([]byte(c))
|
|
got := AppendUnescaped(nil, []byte(c))
|
|
|
|
if !bytes.Equal(got, exp) {
|
|
t.Errorf("AppendUnescaped failed for %#q: got %#q, exp %#q", c, got, exp)
|
|
}
|
|
}
|
|
|
|
}
|