@@ -16,6 +16,10 @@ var testNewCases = []struct {
16
16
{`/foo~1bar` , []Token {`foo/bar` }, `` },
17
17
{`/foo/bar` , []Token {`foo` , `bar` }, `` },
18
18
{`/foo/0/bar` , []Token {`foo` , `0` , `bar` }, `` },
19
+ {`/foo ` , []Token {`foo ` }, `` },
20
+ {`/ foo` , []Token {` foo` }, `` },
21
+ {`/ foo ` , []Token {` foo ` }, `` },
22
+ {`/foo / bar ` , []Token {`foo ` , ` bar ` }, `` },
19
23
{`/` , []Token {"" }, `` }, // empty string key
20
24
{`//` , []Token {"" , "" }, `` }, // empty string key
21
25
{`` , []Token {}, `` }, // whole content (root)
@@ -70,6 +74,11 @@ var testAppendCases = []struct {
70
74
{`/foo~1bar` , `append` , `/foo~1bar/append` },
71
75
{`/foo/bar` , `append` , `/foo/bar/append` },
72
76
{`/foo/0/bar` , `append` , `/foo/0/bar/append` },
77
+ {`/foo` , `append ` , `/foo/append ` },
78
+ {`/foo` , ` append` , `/foo/ append` },
79
+ {`/foo` , ` append ` , `/foo/ append ` },
80
+ {`/foo ` , `append` , `/foo /append` },
81
+ {`/ foo` , `append` , `/ foo/append` },
73
82
{`/` , `append` , `//append` },
74
83
{`//` , `append` , `///append` },
75
84
{`` , `append` , `/append` },
@@ -99,6 +108,9 @@ var testPopCases = []struct {
99
108
{`/foo~1bar` , `foo/bar` , `` },
100
109
{`/foo/bar` , `bar` , `/foo` },
101
110
{`/foo/0/bar` , `bar` , `/foo/0` },
111
+ {`/ foo ` , ` foo ` , `` },
112
+ {`/foo/ bar ` , ` bar ` , `/foo` },
113
+ {`/ foo / bar ` , ` bar ` , `/ foo ` },
102
114
{`/` , `` , `` },
103
115
{`//` , `` , `/` },
104
116
{`` , `` , `` },
@@ -150,6 +162,8 @@ var testStringsCases = []struct {
150
162
{`/foo~1bar` , []string {`foo/bar` }},
151
163
{`/foo/bar` , []string {`foo` , `bar` }},
152
164
{`/foo/0/bar` , []string {`foo` , `0` , `bar` }},
165
+ {`/ foo ` , []string {` foo ` }},
166
+ {`/ foo / bar ` , []string {` foo ` , ` bar ` }},
153
167
{`/` , []string {"" }}, // empty string key
154
168
{`//` , []string {"" , "" }}, // empty string key
155
169
{`` , []string {}}, // whole content (root)
@@ -177,6 +191,8 @@ var testEscapedStringsCases = []struct {
177
191
{`/foo~1bar` , []string {`foo~1bar` }},
178
192
{`/foo/bar` , []string {`foo` , `bar` }},
179
193
{`/foo/0/bar` , []string {`foo` , `0` , `bar` }},
194
+ {`/ foo ` , []string {` foo ` }},
195
+ {`/ foo / bar ` , []string {` foo ` , ` bar ` }},
180
196
{`/` , []string {"" }}, // empty string key
181
197
{`//` , []string {"" , "" }}, // empty string key
182
198
{`` , []string {}}, // whole content (root)
@@ -204,6 +220,8 @@ var testStringCases = []struct {
204
220
{`/foo~1bar` , `/foo~1bar` },
205
221
{`/foo/bar` , `/foo/bar` },
206
222
{`/foo/0/bar` , `/foo/0/bar` },
223
+ {`/ foo ` , `/ foo ` },
224
+ {`/ foo / bar ` , `/ foo / bar ` },
207
225
{`/` , `/` }, // empty string key
208
226
{`//` , `//` }, // empty string key
209
227
{`` , `` }, // whole content (root)
@@ -232,6 +250,9 @@ var testDotNotationCases = []struct {
232
250
{`/foo~1bar` , `foo/bar` , `foo/bar` },
233
251
{`/foo/bar` , `foo.bar` , `foo.bar` },
234
252
{`/foo/0/bar` , `foo.0.bar` , `foo[0].bar` },
253
+ {`/ foo ` , ` foo ` , ` foo ` },
254
+ {`/ foo / bar ` , ` foo . bar ` , ` foo . bar ` },
255
+ {`/ foo /0/ bar ` , ` foo .0. bar ` , ` foo [0]. bar ` },
235
256
{`/` , `` , `` }, // empty string key
236
257
{`//` , `.` , `.` }, // empty string key
237
258
{`` , `` , `` }, // whole content (root)
@@ -263,7 +284,10 @@ var testGetJSON = `{
263
284
},
264
285
"foo/bar": 1.23,
265
286
"bar": true,
266
- "baz": null
287
+ "baz": null,
288
+ " foo ": {
289
+ " bar ": 456
290
+ }
267
291
}`
268
292
var testGetCases = []struct {
269
293
pointer string
@@ -278,6 +302,7 @@ var testGetCases = []struct {
278
302
{`/bar` , true , `` },
279
303
{`/baz` , nil , `` },
280
304
{`/boo` , nil , `Invalid JSON Pointer "/boo"` },
305
+ {`/ foo / bar ` , 456.0 , `` },
281
306
}
282
307
283
308
func TestGet (t * testing.T ) {
0 commit comments