| Linux in-mum-web1499.main-hosting.eu 5.14.0-503.40.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Mon May 5 06:06:04 EDT 2025 x86_64 Path : /opt/go/pkg/mod/github.com/mailru/easyjson@v0.7.7/tests/ |
| Current File : //opt/go/pkg/mod/github.com/mailru/easyjson@v0.7.7/tests/escaping_test.go |
package tests
import (
"reflect"
"testing"
"github.com/mailru/easyjson"
)
func TestStrFieldsUnescaping(t *testing.T) {
cases := []struct {
data string
exp EscStringStruct
}{
{
data: `{}`,
exp: EscStringStruct{},
},
{
data: `{"a": "\""}`,
exp: EscStringStruct{A: `"`},
},
{
data: `{"a": "\\"}`,
exp: EscStringStruct{A: `\`},
},
{
data: `{"a": "\\\""}`,
exp: EscStringStruct{A: `\"`},
},
{
data: `{"a": "\\\\'"}`,
exp: EscStringStruct{A: `\\'`},
},
{
data: `{"a": "\t\\\nx\\\""}`,
exp: EscStringStruct{A: "\t\\\nx\\\""},
},
{
data: `{"a": "\r\n"}`,
exp: EscStringStruct{A: "\r\n"},
},
{
data: `{"a": "\r\n\u4e2D\u56fD\\\""}`,
exp: EscStringStruct{A: "\r\n中国\\\""},
},
}
for i, c := range cases {
var val EscStringStruct
err := easyjson.Unmarshal([]byte(c.data), &val)
if err != nil {
t.Error(err)
}
if !reflect.DeepEqual(val, c.exp) {
t.Errorf("[%d] TestStrFieldsUnescaping(): got=%q, exp=%q", i, val, c.exp)
}
}
}
func TestIntFieldsUnescaping(t *testing.T) {
cases := []struct {
data string
exp EscIntStruct
}{
{
data: `{}`,
exp: EscIntStruct{A: 0},
},
{
data: `{"a": "1"}`,
exp: EscIntStruct{A: 1},
},
{
data: `{"a": "\u0032"}`,
exp: EscIntStruct{A: 2},
},
}
for i, c := range cases {
var val EscIntStruct
err := easyjson.Unmarshal([]byte(c.data), &val)
if err != nil {
t.Error(err)
}
if !reflect.DeepEqual(val, c.exp) {
t.Errorf("[%d] TestIntFieldsUnescaping(): got=%v, exp=%v", i, val, c.exp)
}
}
}