1
0
mirror of https://github.com/json-iterator/go.git synced 2025-06-24 23:16:47 +02:00

#53 support escapeHtml

This commit is contained in:
Tao Wen
2017-06-15 23:54:43 +08:00
parent d867c8ba5c
commit 5f22e50c89
30 changed files with 590 additions and 249 deletions

View File

@ -7,56 +7,56 @@ import (
)
func Test_string_end(t *testing.T) {
end, escaped := ParseString(DEFAULT_CONFIG, `abc"`).findStringEnd()
end, escaped := ParseString(ConfigOfDefault, `abc"`).findStringEnd()
if end != 4 {
t.Fatal(end)
}
if escaped != false {
t.Fatal(escaped)
}
end, escaped = ParseString(DEFAULT_CONFIG, `abc\\"`).findStringEnd()
end, escaped = ParseString(ConfigOfDefault, `abc\\"`).findStringEnd()
if end != 6 {
t.Fatal(end)
}
if escaped != true {
t.Fatal(escaped)
}
end, escaped = ParseString(DEFAULT_CONFIG, `abc\\\\"`).findStringEnd()
end, escaped = ParseString(ConfigOfDefault, `abc\\\\"`).findStringEnd()
if end != 8 {
t.Fatal(end)
}
if escaped != true {
t.Fatal(escaped)
}
end, escaped = ParseString(DEFAULT_CONFIG, `abc\"`).findStringEnd()
end, escaped = ParseString(ConfigOfDefault, `abc\"`).findStringEnd()
if end != -1 {
t.Fatal(end)
}
if escaped != false {
t.Fatal(escaped)
}
end, escaped = ParseString(DEFAULT_CONFIG, `abc\`).findStringEnd()
end, escaped = ParseString(ConfigOfDefault, `abc\`).findStringEnd()
if end != -1 {
t.Fatal(end)
}
if escaped != true {
t.Fatal(escaped)
}
end, escaped = ParseString(DEFAULT_CONFIG, `abc\\`).findStringEnd()
end, escaped = ParseString(ConfigOfDefault, `abc\\`).findStringEnd()
if end != -1 {
t.Fatal(end)
}
if escaped != false {
t.Fatal(escaped)
}
end, escaped = ParseString(DEFAULT_CONFIG, `\\`).findStringEnd()
end, escaped = ParseString(ConfigOfDefault, `\\`).findStringEnd()
if end != -1 {
t.Fatal(end)
}
if escaped != false {
t.Fatal(escaped)
}
end, escaped = ParseString(DEFAULT_CONFIG, `\`).findStringEnd()
end, escaped = ParseString(ConfigOfDefault, `\`).findStringEnd()
if end != -1 {
t.Fatal(end)
}
@ -91,54 +91,54 @@ func (reader *StagedReader) Read(p []byte) (n int, err error) {
func Test_skip_string(t *testing.T) {
should := require.New(t)
iter := ParseString(DEFAULT_CONFIG, `"abc`)
iter := ParseString(ConfigOfDefault, `"abc`)
iter.skipString()
should.Equal(1, iter.head)
iter = ParseString(DEFAULT_CONFIG, `\""abc`)
iter = ParseString(ConfigOfDefault, `\""abc`)
iter.skipString()
should.Equal(3, iter.head)
reader := &StagedReader{
r1: `abc`,
r2: `"`,
}
iter = Parse(DEFAULT_CONFIG, reader, 4096)
iter = Parse(ConfigOfDefault, reader, 4096)
iter.skipString()
should.Equal(1, iter.head)
reader = &StagedReader{
r1: `abc`,
r2: `1"`,
}
iter = Parse(DEFAULT_CONFIG, reader, 4096)
iter = Parse(ConfigOfDefault, reader, 4096)
iter.skipString()
should.Equal(2, iter.head)
reader = &StagedReader{
r1: `abc\`,
r2: `"`,
}
iter = Parse(DEFAULT_CONFIG, reader, 4096)
iter = Parse(ConfigOfDefault, reader, 4096)
iter.skipString()
should.NotNil(iter.Error)
reader = &StagedReader{
r1: `abc\`,
r2: `""`,
}
iter = Parse(DEFAULT_CONFIG, reader, 4096)
iter = Parse(ConfigOfDefault, reader, 4096)
iter.skipString()
should.Equal(2, iter.head)
}
func Test_skip_object(t *testing.T) {
iter := ParseString(DEFAULT_CONFIG, `}`)
iter := ParseString(ConfigOfDefault, `}`)
iter.skipObject()
if iter.head != 1 {
t.Fatal(iter.head)
}
iter = ParseString(DEFAULT_CONFIG, `a}`)
iter = ParseString(ConfigOfDefault, `a}`)
iter.skipObject()
if iter.head != 2 {
t.Fatal(iter.head)
}
iter = ParseString(DEFAULT_CONFIG, `{}}a`)
iter = ParseString(ConfigOfDefault, `{}}a`)
iter.skipObject()
if iter.head != 3 {
t.Fatal(iter.head)
@ -147,12 +147,12 @@ func Test_skip_object(t *testing.T) {
r1: `{`,
r2: `}}a`,
}
iter = Parse(DEFAULT_CONFIG, reader, 4096)
iter = Parse(ConfigOfDefault, reader, 4096)
iter.skipObject()
if iter.head != 2 {
t.Fatal(iter.head)
}
iter = ParseString(DEFAULT_CONFIG, `"}"}a`)
iter = ParseString(ConfigOfDefault, `"}"}a`)
iter.skipObject()
if iter.head != 4 {
t.Fatal(iter.head)