moves escaping tests to general test lib, minor refactoring of test runner to facilitate

This commit is contained in:
alisdair sullivan 2011-07-26 19:58:48 -07:00
parent 2720b2e0fb
commit b153ce3685
14 changed files with 28 additions and 26 deletions

View file

@ -248,33 +248,11 @@ incremental_decode_loop({jsx, incomplete, Next}, <<C:1/binary, Rest/binary>>, Ac
incremental_decode_loop({jsx, end_json, _Next}, _Rest, Acc) ->
lists:reverse([end_json] ++ Acc);
incremental_decode_loop({jsx, Event, Next}, Rest, Acc) ->
incremental_decode_loop(Next(), Rest, [Event] ++ Acc).
incremental_decode_loop(Next(), Rest, [Event] ++ Acc);
incremental_decode_loop({error, {badjson, _Error}}, _Rest, _Acc) ->
{error, badjson}.
bad_escapes_test_() ->
[
{"null byte",
?_assertEqual({error, badjson}, decode(<<"\"\\u0000\"">>, []))
},
{"escaped noncharacter",
?_assertEqual({error, badjson}, decode(<<"\"\\ud83f\\udfff\"">>, []))
},
{"noncharacter",
?_assertEqual({error, badjson}, decode(<<"\"\\uffff\"">>, []))
},
{"more noncharacters",
?_assertEqual({error, badjson}, decode(<<"\"\\ufdd0\"">>, []))
},
{"last noncharacter",
?_assertEqual({error, badjson}, decode(<<"\"\\ufdef\"">>, []))
},
{"ok character",
?_assertEqual([{string, <<239, 183, 176>>}, end_json],
decode(<<"\"\\ufdf0\"">>, [])
)
}
].
multi_decode_test_() ->
[

View file

@ -1,3 +1,3 @@
{name, "deep_array"}.
{name, "deep array"}.
{jsx, [start_array,start_array,start_array,end_array,end_array,end_array,end_json]}.
{json, "deep_array.json"}.

View file

@ -0,0 +1 @@
"\uffff"

View file

@ -0,0 +1,3 @@
{name, "escaped noncharacter"}.
{jsx, {error, badjson}}.
{json, "escaped_noncharacter.json"}.

View file

@ -0,0 +1 @@
"\ud83f\udfff"

View file

@ -0,0 +1,3 @@
{name, "escaped noncharacter (extended)"}.
{jsx, {error, badjson}}.
{json, "escaped_noncharacter_ext.json"}.

View file

@ -0,0 +1 @@
"\ufdd0"

View file

@ -0,0 +1,3 @@
{name, "escaped reserved a"}.
{jsx, {error, badjson}}.
{json, "escaped_reserved_a.json"}.

View file

@ -0,0 +1 @@
"\ufdef"

View file

@ -0,0 +1,3 @@
{name, "escaped reserved b"}.
{jsx, {error, badjson}}.
{json, "escaped_reserved_b.json"}.

View file

@ -0,0 +1 @@
"\u0000"

View file

@ -0,0 +1,3 @@
{name, "nullbyte forbidden"}.
{jsx, {error, badjson}}.
{json, "nullbyte_forbidden.json"}.

View file

@ -0,0 +1 @@
[[[[]]]

View file

@ -0,0 +1,3 @@
{name, "unbalanced array"}.
{jsx, {error, badjson}}.
{json, "unbalanced_array.json"}.