File: reader_test.go

package info (click to toggle)
golang-github-disposaboy-jsonconfigreader 0.0~git20171218.5ea4d0d-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, bullseye-backports, buster, buster-backports, forky, sid, trixie
  • size: 80 kB
  • sloc: makefile: 2
file content (92 lines) | stat: -rw-r--r-- 1,956 bytes parent folder | download
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)
		}
	}
}