tests/test_json.c

changeset 1157
3565ae61a5a2
parent 1156
96f16b5a0029
equal deleted inserted replaced
1156:96f16b5a0029 1157:3565ae61a5a2
143 CX_TEST_ASSERT(cxJsonIsString(ctrl)); 143 CX_TEST_ASSERT(cxJsonIsString(ctrl));
144 CX_TEST_ASSERT(0 == cx_strcmp( 144 CX_TEST_ASSERT(0 == cx_strcmp(
145 cxJsonAsCxString(ctrl), 145 cxJsonAsCxString(ctrl),
146 CX_STR("\\foo\r\nbar\f*ring/ring*\b")) 146 CX_STR("\\foo\r\nbar\f*ring/ring*\b"))
147 ); 147 );
148 cxJsonValueFree(ctrl); 148 cxJsonValueFree(obj);
149 } 149 }
150 cxJsonDestroy(&json); 150 cxJsonDestroy(&json);
151 } 151 }
152 152
153 CX_TEST(test_json_escaped_unicode_strings) { 153 CX_TEST(test_json_escaped_unicode_strings) {
238 CX_TEST_ASSERT(cxJsonIsString(obj)); 238 CX_TEST_ASSERT(cxJsonIsString(obj));
239 CX_TEST_ASSERT(0 == cx_strcmp( 239 CX_TEST_ASSERT(0 == cx_strcmp(
240 cxJsonAsCxString(obj), 240 cxJsonAsCxString(obj),
241 CX_STR("too few \\u123 digits") 241 CX_STR("too few \\u123 digits")
242 )); 242 ));
243 cxJsonValueFree(obj);
243 cxJsonFill(&json, "\"too many \\u00E456 digits\""); 244 cxJsonFill(&json, "\"too many \\u00E456 digits\"");
244 result = cxJsonNext(&json, &obj); 245 result = cxJsonNext(&json, &obj);
245 CX_TEST_ASSERT(result == CX_JSON_NO_ERROR); 246 CX_TEST_ASSERT(result == CX_JSON_NO_ERROR);
246 CX_TEST_ASSERT(cxJsonIsString(obj)); 247 CX_TEST_ASSERT(cxJsonIsString(obj));
247 CX_TEST_ASSERT(0 == cx_strcmp( 248 CX_TEST_ASSERT(0 == cx_strcmp(
248 cxJsonAsCxString(obj), 249 cxJsonAsCxString(obj),
249 CX_STR("too many ä56 digits") 250 CX_STR("too many ä56 digits")
250 )); 251 ));
252 cxJsonValueFree(obj);
251 cxJsonFill(&json, "\"only high \\uD800 surrogate\""); 253 cxJsonFill(&json, "\"only high \\uD800 surrogate\"");
252 result = cxJsonNext(&json, &obj); 254 result = cxJsonNext(&json, &obj);
253 CX_TEST_ASSERT(result == CX_JSON_NO_ERROR); 255 CX_TEST_ASSERT(result == CX_JSON_NO_ERROR);
254 CX_TEST_ASSERT(cxJsonIsString(obj)); 256 CX_TEST_ASSERT(cxJsonIsString(obj));
255 CX_TEST_ASSERT(0 == cx_strcmp( 257 CX_TEST_ASSERT(0 == cx_strcmp(
256 cxJsonAsCxString(obj), 258 cxJsonAsCxString(obj),
257 CX_STR("only high \\uD800 surrogate") 259 CX_STR("only high \\uD800 surrogate")
258 )); 260 ));
261 cxJsonValueFree(obj);
259 cxJsonFill(&json, "\"only low \\uDC00 surrogate\""); 262 cxJsonFill(&json, "\"only low \\uDC00 surrogate\"");
260 result = cxJsonNext(&json, &obj); 263 result = cxJsonNext(&json, &obj);
261 CX_TEST_ASSERT(result == CX_JSON_NO_ERROR); 264 CX_TEST_ASSERT(result == CX_JSON_NO_ERROR);
262 CX_TEST_ASSERT(cxJsonIsString(obj)); 265 CX_TEST_ASSERT(cxJsonIsString(obj));
263 CX_TEST_ASSERT(0 == cx_strcmp( 266 CX_TEST_ASSERT(0 == cx_strcmp(
264 cxJsonAsCxString(obj), 267 cxJsonAsCxString(obj),
265 CX_STR("only low \\uDC00 surrogate") 268 CX_STR("only low \\uDC00 surrogate")
266 )); 269 ));
270 cxJsonValueFree(obj);
267 cxJsonFill(&json, "\"two high \\uD800\\uD800 surrogates\""); 271 cxJsonFill(&json, "\"two high \\uD800\\uD800 surrogates\"");
268 result = cxJsonNext(&json, &obj); 272 result = cxJsonNext(&json, &obj);
269 CX_TEST_ASSERT(result == CX_JSON_NO_ERROR); 273 CX_TEST_ASSERT(result == CX_JSON_NO_ERROR);
270 CX_TEST_ASSERT(cxJsonIsString(obj)); 274 CX_TEST_ASSERT(cxJsonIsString(obj));
271 CX_TEST_ASSERT(0 == cx_strcmp( 275 CX_TEST_ASSERT(0 == cx_strcmp(
272 cxJsonAsCxString(obj), 276 cxJsonAsCxString(obj),
273 CX_STR("two high \\uD800\\uD800 surrogates") 277 CX_STR("two high \\uD800\\uD800 surrogates")
274 )); 278 ));
279 cxJsonValueFree(obj);
275 cxJsonFill(&json, "\"high plus bullshit \\uD800\\u567 foo\""); 280 cxJsonFill(&json, "\"high plus bullshit \\uD800\\u567 foo\"");
276 result = cxJsonNext(&json, &obj); 281 result = cxJsonNext(&json, &obj);
277 CX_TEST_ASSERT(result == CX_JSON_NO_ERROR); 282 CX_TEST_ASSERT(result == CX_JSON_NO_ERROR);
278 CX_TEST_ASSERT(cxJsonIsString(obj)); 283 CX_TEST_ASSERT(cxJsonIsString(obj));
279 CX_TEST_ASSERT(0 == cx_strcmp( 284 CX_TEST_ASSERT(0 == cx_strcmp(
280 cxJsonAsCxString(obj), 285 cxJsonAsCxString(obj),
281 CX_STR("high plus bullshit \\uD800\\u567 foo") 286 CX_STR("high plus bullshit \\uD800\\u567 foo")
282 )); 287 ));
288 cxJsonValueFree(obj);
283 } 289 }
284 cxJsonDestroy(&json); 290 cxJsonDestroy(&json);
285 } 291 }
286 292
287 CX_TEST(test_json_escaped_end_of_string) { 293 CX_TEST(test_json_escaped_end_of_string) {

mercurial