comparison src/testdir/test_json.vim @ 8283:b8a56d4d83e0 v7.4.1434

commit https://github.com/vim/vim/commit/b6ff81188d27fae774d9ad2dfb498f596d697d4b Author: Bram Moolenaar <Bram@vim.org> Date: Sat Feb 27 18:41:27 2016 +0100 patch 7.4.1434 Problem: JSON encoding doesn't hanel surrogate pair. Solution: Improve multi-byte handling of JSON. (Yasuhiro Matsumoto)
author Christian Brabandt <cb@256bit.org>
date Sat, 27 Feb 2016 18:45:03 +0100
parents ff900e499f79
children 1001ec135d6e
comparison
equal deleted inserted replaced
8282:979b6b144d70 8283:b8a56d4d83e0
9 let s:var3 = "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" 9 let s:var3 = "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
10 let s:json4 = '"\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017"' 10 let s:json4 = '"\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017"'
11 let s:var4 = "\x10\x11\x12\x13\x14\x15\x16\x17" 11 let s:var4 = "\x10\x11\x12\x13\x14\x15\x16\x17"
12 let s:json5 = '"\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f"' 12 let s:json5 = '"\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f"'
13 let s:var5 = "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" 13 let s:var5 = "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
14
15 " surrogate pair
16 let s:jsonsp1 = '"\ud83c\udf63"'
17 let s:varsp1 = "\xf0\x9f\x8d\xa3"
18 let s:jsonsp2 = '"\ud83c\u00a0"'
19 let s:varsp2 = "\ud83c\u00a0"
14 20
15 let s:jsonmb = '"s¢cĴgё"' 21 let s:jsonmb = '"s¢cĴgё"'
16 let s:varmb = "s¢cĴgё" 22 let s:varmb = "s¢cĴgё"
17 let s:jsonnr = '1234' 23 let s:jsonnr = '1234'
18 let s:varnr = 1234 24 let s:varnr = 1234
67 call assert_equal(s:json4, json_encode(s:var4)) 73 call assert_equal(s:json4, json_encode(s:var4))
68 call assert_equal(s:json5, json_encode(s:var5)) 74 call assert_equal(s:json5, json_encode(s:var5))
69 75
70 if has('multi_byte') 76 if has('multi_byte')
71 call assert_equal(s:jsonmb, json_encode(s:varmb)) 77 call assert_equal(s:jsonmb, json_encode(s:varmb))
78 call assert_equal(s:varsp1, json_decode(s:jsonsp1))
79 call assert_equal(s:varsp2, json_decode(s:jsonsp2))
72 endif 80 endif
73 81
74 call assert_equal(s:jsonnr, json_encode(s:varnr)) 82 call assert_equal(s:jsonnr, json_encode(s:varnr))
75 if has('float') 83 if has('float')
76 call assert_equal(s:jsonfl, json_encode(s:varfl)) 84 call assert_equal(s:jsonfl, json_encode(s:varfl))
103 call assert_equal(s:var4, json_decode(s:json4)) 111 call assert_equal(s:var4, json_decode(s:json4))
104 call assert_equal(s:var5, json_decode(s:json5)) 112 call assert_equal(s:var5, json_decode(s:json5))
105 113
106 if has('multi_byte') 114 if has('multi_byte')
107 call assert_equal(s:varmb, json_decode(s:jsonmb)) 115 call assert_equal(s:varmb, json_decode(s:jsonmb))
116 call assert_equal(s:varsp1, js_decode(s:jsonsp1))
117 call assert_equal(s:varsp2, js_decode(s:jsonsp2))
108 endif 118 endif
109 119
110 call assert_equal(s:varnr, json_decode(s:jsonnr)) 120 call assert_equal(s:varnr, json_decode(s:jsonnr))
111 if has('float') 121 if has('float')
112 call assert_equal(s:varfl, json_decode(s:jsonfl)) 122 call assert_equal(s:varfl, json_decode(s:jsonfl))