patch 8.2.1863: json code not sufficiently tested

Problem:    Json code not sufficiently tested.
Solution:   Add more test cases. (Dominique Pellé, closes #7166)
This commit is contained in:
Bram Moolenaar
2020-10-19 13:12:33 +02:00
parent 2ea79ad835
commit e3c65ce4e5
2 changed files with 13 additions and 1 deletions

View File

@ -62,7 +62,11 @@ let s:jsd3 = '{x:{a:1,b:2},y:{a:1,b:2}}'
let s:vard4 = {"key": v:none} let s:vard4 = {"key": v:none}
let s:vard4x = {"key": v:null} let s:vard4x = {"key": v:null}
let s:jsond4 = '{"key":null}' let s:jsond4 = '{"key":null}'
let s:jsd4 = '{key:null}' let s:jsd4 = '{key:null}' " js_encode puts no quotes around simple key.
let s:vard5 = {"key!": v:none}
let s:vard5x = {"key!": v:null}
let s:jsond5 = '{"key!":null}'
let s:jsd5 = '{"key!":null}' " js_encode puts quotes around non-simple key.
let s:jsonvals = '[true,false,null,null]' let s:jsonvals = '[true,false,null,null]'
let s:varvals = [v:true, v:false, v:null, v:null] let s:varvals = [v:true, v:false, v:null, v:null]
@ -93,6 +97,7 @@ func Test_json_encode()
call assert_equal(s:jsond2, json_encode(s:vard2)) call assert_equal(s:jsond2, json_encode(s:vard2))
call assert_equal(s:jsond3, json_encode(s:vard3)) call assert_equal(s:jsond3, json_encode(s:vard3))
call assert_equal(s:jsond4, json_encode(s:vard4)) call assert_equal(s:jsond4, json_encode(s:vard4))
call assert_equal(s:jsond5, json_encode(s:vard5))
call assert_equal(s:jsonvals, json_encode(s:varvals)) call assert_equal(s:jsonvals, json_encode(s:varvals))
@ -139,6 +144,7 @@ func Test_json_decode()
call assert_equal(s:vard2x, json_decode(s:jsond2s)) call assert_equal(s:vard2x, json_decode(s:jsond2s))
call assert_equal(s:vard3, json_decode(s:jsond3)) call assert_equal(s:vard3, json_decode(s:jsond3))
call assert_equal(s:vard4x, json_decode(s:jsond4)) call assert_equal(s:vard4x, json_decode(s:jsond4))
call assert_equal(s:vard5x, json_decode(s:jsond5))
call assert_equal(s:varvals, json_decode(s:jsonvals)) call assert_equal(s:varvals, json_decode(s:jsonvals))
@ -194,6 +200,7 @@ func Test_json_decode()
call assert_fails('call json_decode("{{}:42}")', "E491:") call assert_fails('call json_decode("{{}:42}")', "E491:")
call assert_fails('call json_decode("{[]:42}")', "E491:") call assert_fails('call json_decode("{[]:42}")', "E491:")
call assert_fails('call json_decode("{1:1{")', "E491:")
call assert_fails('call json_decode("-")', "E491:") call assert_fails('call json_decode("-")', "E491:")
call assert_fails('call json_decode("-1x")', "E491:") call assert_fails('call json_decode("-1x")', "E491:")
@ -235,6 +242,7 @@ func Test_js_encode()
call assert_equal(s:jsd2, js_encode(s:vard2)) call assert_equal(s:jsd2, js_encode(s:vard2))
call assert_equal(s:jsd3, js_encode(s:vard3)) call assert_equal(s:jsd3, js_encode(s:vard3))
call assert_equal(s:jsd4, js_encode(s:vard4)) call assert_equal(s:jsd4, js_encode(s:vard4))
call assert_equal(s:jsd5, js_encode(s:vard5))
call assert_equal(s:jsonvals, js_encode(s:varvals)) call assert_equal(s:jsonvals, js_encode(s:varvals))
@ -281,6 +289,8 @@ func Test_js_decode()
call assert_equal(s:vard3, js_decode(s:jsd3)) call assert_equal(s:vard3, js_decode(s:jsd3))
call assert_equal(s:vard4x, js_decode(s:jsond4)) call assert_equal(s:vard4x, js_decode(s:jsond4))
call assert_equal(s:vard4x, js_decode(s:jsd4)) call assert_equal(s:vard4x, js_decode(s:jsd4))
call assert_equal(s:vard5x, js_decode(s:jsond5))
call assert_equal(s:vard5x, js_decode(s:jsd5))
call assert_equal(s:varvals, js_decode(s:jsonvals)) call assert_equal(s:varvals, js_decode(s:jsonvals))

View File

@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1863,
/**/ /**/
1862, 1862,
/**/ /**/