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:
		| @ -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)) | ||||||
|  |  | ||||||
|  | |||||||
| @ -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, | ||||||
| /**/ | /**/ | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user