add tests for ignore_bad_escapes

This commit is contained in:
alisdair sullivan 2012-03-31 20:38:51 -07:00
parent ff42a04cdf
commit 068af5621a
2 changed files with 53 additions and 29 deletions

View file

@ -481,6 +481,7 @@ maybe_replace($/, Opts=#opts{json_escape=true}) ->
true -> [$/, $\\]
; false -> [$/]
end;
maybe_replace($\\, #opts{ignore_bad_escapes=true}) -> [$\\];
maybe_replace($\\, #opts{json_escape=true}) -> [$\\, $\\];
maybe_replace(X, Opts=#opts{json_escape=true}) when X == 16#2028; X == 16#2029 ->
case Opts#opts.no_jsonp_escapes of
@ -802,7 +803,8 @@ escapes_test_() ->
[{string, <<16#2028/utf8, 16#2029/utf8>>}, end_json]
)},
{"control escape", ?_assertEqual(encode(<<0>>, [json_escape]), [{string, <<"\\u0000">>}, end_json])},
{"dirty strings", ?_assertEqual(encode(<<"\n">>, [json_escape, dirty_strings]), [{string, <<"\n">>}, end_json])}
{"dirty strings", ?_assertEqual(encode(<<"\n">>, [json_escape, dirty_strings]), [{string, <<"\n">>}, end_json])},
{"ignore bad escapes", ?_assertEqual(encode(<<"\\x25">>, [json_escape, ignore_bad_escapes]), [{string, <<"\\x25">>}, end_json])}
].