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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
package JsonConfigReader
import (
"bytes"
"io"
"strings"
"testing"
)
var tests = map[string]string{
`{
// a
"x": "y", // b
"x": "y", // c
}`: `{
"x": "y",
"x": "y"
}`,
`{
/*
multiline comment
*/
"x": "y", // b
"x": "y", // c
}`: `{
"x": "y",
"x": "y"
}`,
`{
/*
multiline comment with special chars in comment * * /* \* / \\ end
*/
"x": "y", // b
"x": "y", // c
}`: `{
"x": "y",
"x": "y"
}`,
`// serve a directory
"l/test": [
{
"handler": "fs",
"dir": "../",
// "strip_prefix": "",
},
],`: `
"l/test": [
{
"handler": "fs",
"dir": "../"
}
],`,
`[1, 2, 3]`: `[1, 2, 3]`,
`[1, 2, 3, 4,]`: `[1, 2, 3, 4 ]`,
`{"x":1}//[1, 2, 3, 4,]`: `{"x":1} `,
`//////`: ` `,
`{}/ /..`: `{}/ /..`,
`{,}/ /..`: `{ }/ /..`,
`{,}//..`: `{ } `,
`{[],}`: `{[] }`,
`{[,}`: `{[ }`,
`[[",",],]`: `[["," ] ]`,
`[",\"",]`: `[",\"" ]`,
`[",\"\\\",]`: `[",\"\\\",]`,
`[",//"]`: `[",//"]`,
`[]/* missing close at end`: `[] `,
`[]/* missing close at end *`: `[] `,
`[]/*
missing close at end`: `[] `,
`[",//\"
"],`: `[",//\"
"],`,
}
func TestMain(t *testing.T) {
for a, b := range tests {
buf := &bytes.Buffer{}
io.Copy(buf, New(strings.NewReader(a)))
a = buf.String()
if a != b {
a = strings.Replace(a, " ", ".", -1)
b = strings.Replace(b, " ", ".", -1)
t.Errorf("reader failed to clean json: \nexpected: `%s`, \n got `%s`", b, a)
}
}
}
|