add tests for strings that need unescaping in decoding
This commit is contained in:
parent
4d60fa2a08
commit
0392be060d
1 changed files with 52 additions and 16 deletions
|
@ -1059,6 +1059,57 @@ special_number_test_() ->
|
||||||
].
|
].
|
||||||
|
|
||||||
|
|
||||||
|
unescape_test_() ->
|
||||||
|
[
|
||||||
|
{"unescape backspace", ?_assertEqual(
|
||||||
|
[{string, <<"\b">>}, end_json],
|
||||||
|
start(<<"\"\\b\"">>, {jsx, []}, [], #config{})
|
||||||
|
)},
|
||||||
|
{"unescape tab", ?_assertEqual(
|
||||||
|
[{string, <<"\t">>}, end_json],
|
||||||
|
start(<<"\"\\t\"">>, {jsx, []}, [], #config{})
|
||||||
|
)},
|
||||||
|
{"unescape newline", ?_assertEqual(
|
||||||
|
[{string, <<"\n">>}, end_json],
|
||||||
|
start(<<"\"\\n\"">>, {jsx, []}, [], #config{})
|
||||||
|
)},
|
||||||
|
{"unescape formfeed", ?_assertEqual(
|
||||||
|
[{string, <<"\f">>}, end_json],
|
||||||
|
start(<<"\"\\f\"">>, {jsx, []}, [], #config{})
|
||||||
|
)},
|
||||||
|
{"unescape carriage return", ?_assertEqual(
|
||||||
|
[{string, <<"\r">>}, end_json],
|
||||||
|
start(<<"\"\\r\"">>, {jsx, []}, [], #config{})
|
||||||
|
)},
|
||||||
|
{"unescape quote", ?_assertEqual(
|
||||||
|
[{string, <<"\"">>}, end_json],
|
||||||
|
start(<<"\"\\\"\"">>, {jsx, []}, [], #config{})
|
||||||
|
)},
|
||||||
|
{"unescape forward slash", ?_assertEqual(
|
||||||
|
[{string, <<"/">>}, end_json],
|
||||||
|
start(<<"\"\\/\"">>, {jsx, []}, [], #config{})
|
||||||
|
)},
|
||||||
|
{"unescape back slash", ?_assertEqual(
|
||||||
|
[{string, <<"\\">>}, end_json],
|
||||||
|
start(<<"\"\\\\\"">>, {jsx, []}, [], #config{})
|
||||||
|
)},
|
||||||
|
{"unescape control code", ?_assertEqual(
|
||||||
|
[{string, <<0>>}, end_json],
|
||||||
|
start(<<"\"\\u0000\"">>, {jsx, []}, [], #config{})
|
||||||
|
)}
|
||||||
|
].
|
||||||
|
|
||||||
|
|
||||||
|
ignored_bad_escapes_test_() ->
|
||||||
|
[
|
||||||
|
{"ignore unrecognized escape sequence", ?_assertEqual(
|
||||||
|
[{string, <<"\\x25">>}, end_json],
|
||||||
|
start(<<"\"\\x25\"">>, {jsx, []}, [], #config{ignored_bad_escapes=true})
|
||||||
|
)}
|
||||||
|
].
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
xcode(Bin) -> xcode(Bin, []).
|
xcode(Bin) -> xcode(Bin, []).
|
||||||
|
|
||||||
xcode(Bin, Config) ->
|
xcode(Bin, Config) ->
|
||||||
|
@ -1268,15 +1319,6 @@ decode(JSON, Config) ->
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
||||||
ignored_bad_escapes_test_() ->
|
|
||||||
[
|
|
||||||
{"ignore unrecognized escape sequence", ?_assertEqual(
|
|
||||||
decode(<<"[\"\\x25\"]">>, [ignored_bad_escapes]),
|
|
||||||
[start_array, {string, <<"\\x25">>}, end_array, end_json]
|
|
||||||
)}
|
|
||||||
].
|
|
||||||
|
|
||||||
|
|
||||||
comments_test_() ->
|
comments_test_() ->
|
||||||
[
|
[
|
||||||
{"preceeding // comment", ?_assertEqual(
|
{"preceeding // comment", ?_assertEqual(
|
||||||
|
@ -1478,13 +1520,7 @@ comments_test_() ->
|
||||||
].
|
].
|
||||||
|
|
||||||
|
|
||||||
escaped_forward_slashes_test_() ->
|
|
||||||
[
|
|
||||||
{"escape forward slash test", ?_assertEqual(
|
|
||||||
decode(<<"[ \" \/ \" ]">>, [escaped_forward_slashes]),
|
|
||||||
[start_array, {string, <<" / ">>}, end_array, end_json]
|
|
||||||
)}
|
|
||||||
].
|
|
||||||
|
|
||||||
|
|
||||||
escapes_test_() ->
|
escapes_test_() ->
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue