147 cxstring text = cx_str( |
147 cxstring text = cx_str( |
148 "{\n" |
148 "{\n" |
149 "\"ascii\":\"\\u0041\\u0053\\u0043\\u0049\\u0049\",\n" |
149 "\"ascii\":\"\\u0041\\u0053\\u0043\\u0049\\u0049\",\n" |
150 "\"unicode\":\"\\u00df\\u00DF\",\n" |
150 "\"unicode\":\"\\u00df\\u00DF\",\n" |
151 "\"mixed\":\"mixed ä ö \\u00e4 \\u00f6\",\n" |
151 "\"mixed\":\"mixed ä ö \\u00e4 \\u00f6\",\n" |
152 "\"wide\":\"\\u03a3\\u29b0\"" |
152 "\"wide\":\"\\u03a3\\u29b0\",\n" |
|
153 "\"surrogatepair1\":\"\\ud83e\\udff5\",\n" |
|
154 "\"surrogatepair2\":\"test\\ud83e\\udff1AA\"\n," |
|
155 "\"mixed2\":\"123\\u03a3\\ud83e\\udfc5\\u00df\"" |
153 "}" |
156 "}" |
154 ); |
157 ); |
155 |
158 |
156 CxJson json; |
159 CxJson json; |
157 cxJsonInit(&json, NULL); |
160 cxJsonInit(&json, NULL); |
186 CxJsonValue *wide = cxJsonObjGet(obj, "wide"); |
189 CxJsonValue *wide = cxJsonObjGet(obj, "wide"); |
187 CX_TEST_ASSERT(cxJsonIsString(wide)); |
190 CX_TEST_ASSERT(cxJsonIsString(wide)); |
188 CX_TEST_ASSERT(0 == cx_strcmp( |
191 CX_TEST_ASSERT(0 == cx_strcmp( |
189 cxJsonAsCxString(wide), |
192 cxJsonAsCxString(wide), |
190 CX_STR("\u03a3\u29b0")) |
193 CX_STR("\u03a3\u29b0")) |
|
194 ); |
|
195 |
|
196 CxJsonValue *surrogatepair1 = cxJsonObjGet(obj, "surrogatepair1"); |
|
197 CX_TEST_ASSERT(cxJsonIsString(surrogatepair1)); |
|
198 CX_TEST_ASSERT(0 == cx_strcmp( |
|
199 cxJsonAsCxString(surrogatepair1), |
|
200 CX_STR("\xf0\x9f\xaf\xb5")) |
|
201 ); |
|
202 |
|
203 CxJsonValue *surrogatepair2 = cxJsonObjGet(obj, "surrogatepair2"); |
|
204 CX_TEST_ASSERT(cxJsonIsString(surrogatepair2)); |
|
205 CX_TEST_ASSERT(0 == cx_strcmp( |
|
206 cxJsonAsCxString(surrogatepair2), |
|
207 CX_STR("test\xf0\x9f\xaf\xb1" "AA")) |
|
208 ); |
|
209 |
|
210 CxJsonValue *mixed2 = cxJsonObjGet(obj, "mixed2"); |
|
211 CX_TEST_ASSERT(cxJsonIsString(mixed2)); |
|
212 CX_TEST_ASSERT(0 == cx_strcmp( |
|
213 cxJsonAsCxString(mixed2), |
|
214 CX_STR("123\u03a3\xf0\x9f\xaf\x85ß")) |
191 ); |
215 ); |
192 |
216 |
193 cxJsonValueFree(obj); |
217 cxJsonValueFree(obj); |
194 } |
218 } |
195 cxJsonDestroy(&json); |
219 cxJsonDestroy(&json); |