Mercurial > vim
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)) |