moves escaping tests to general test lib, minor refactoring of test runner to facilitate
This commit is contained in:
parent
2720b2e0fb
commit
b153ce3685
14 changed files with 28 additions and 26 deletions
28
src/jsx.erl
28
src/jsx.erl
|
@ -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) ->
|
incremental_decode_loop({jsx, end_json, _Next}, _Rest, Acc) ->
|
||||||
lists:reverse([end_json] ++ Acc);
|
lists:reverse([end_json] ++ Acc);
|
||||||
incremental_decode_loop({jsx, Event, Next}, Rest, 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_() ->
|
multi_decode_test_() ->
|
||||||
[
|
[
|
||||||
|
|
|
@ -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]}.
|
{jsx, [start_array,start_array,start_array,end_array,end_array,end_array,end_json]}.
|
||||||
{json, "deep_array.json"}.
|
{json, "deep_array.json"}.
|
||||||
|
|
1
test/cases/escaped_noncharacter.json
Normal file
1
test/cases/escaped_noncharacter.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
"\uffff"
|
3
test/cases/escaped_noncharacter.test
Normal file
3
test/cases/escaped_noncharacter.test
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{name, "escaped noncharacter"}.
|
||||||
|
{jsx, {error, badjson}}.
|
||||||
|
{json, "escaped_noncharacter.json"}.
|
1
test/cases/escaped_noncharacter_ext.json
Normal file
1
test/cases/escaped_noncharacter_ext.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
"\ud83f\udfff"
|
3
test/cases/escaped_noncharacter_ext.test
Normal file
3
test/cases/escaped_noncharacter_ext.test
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{name, "escaped noncharacter (extended)"}.
|
||||||
|
{jsx, {error, badjson}}.
|
||||||
|
{json, "escaped_noncharacter_ext.json"}.
|
1
test/cases/escaped_reserved_a.json
Normal file
1
test/cases/escaped_reserved_a.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
"\ufdd0"
|
3
test/cases/escaped_reserved_a.test
Normal file
3
test/cases/escaped_reserved_a.test
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{name, "escaped reserved a"}.
|
||||||
|
{jsx, {error, badjson}}.
|
||||||
|
{json, "escaped_reserved_a.json"}.
|
1
test/cases/escaped_reserved_b.json
Normal file
1
test/cases/escaped_reserved_b.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
"\ufdef"
|
3
test/cases/escaped_reserved_b.test
Normal file
3
test/cases/escaped_reserved_b.test
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{name, "escaped reserved b"}.
|
||||||
|
{jsx, {error, badjson}}.
|
||||||
|
{json, "escaped_reserved_b.json"}.
|
1
test/cases/nullbyte_forbidden.json
Normal file
1
test/cases/nullbyte_forbidden.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
"\u0000"
|
3
test/cases/nullbyte_forbidden.test
Normal file
3
test/cases/nullbyte_forbidden.test
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{name, "nullbyte forbidden"}.
|
||||||
|
{jsx, {error, badjson}}.
|
||||||
|
{json, "nullbyte_forbidden.json"}.
|
1
test/cases/unbalanced_array.json
Normal file
1
test/cases/unbalanced_array.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[[[[]]]
|
3
test/cases/unbalanced_array.test
Normal file
3
test/cases/unbalanced_array.test
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{name, "unbalanced array"}.
|
||||||
|
{jsx, {error, badjson}}.
|
||||||
|
{json, "unbalanced_array.json"}.
|
Loading…
Add table
Add a link
Reference in a new issue