new test for read_file/1, /2
This commit is contained in:
parent
c4a2545db3
commit
8ed4b1a405
1 changed files with 32 additions and 8 deletions
38
src/jsx.erl
38
src/jsx.erl
|
@ -547,21 +547,33 @@ jsx_decoder_test_() ->
|
||||||
|
|
||||||
|
|
||||||
jsx_decoder_gen([]) -> [];
|
jsx_decoder_gen([]) -> [];
|
||||||
jsx_decoder_gen(Tests) -> jsx_decoder_gen(Tests, [utf8, utf16, {utf16, little}, utf32, {utf32, little}]).
|
jsx_decoder_gen(Tests) ->
|
||||||
|
jsx_decoder_gen(Tests, [utf8,
|
||||||
|
utf16,
|
||||||
|
{utf16, little},
|
||||||
|
utf32,
|
||||||
|
{utf32, little}
|
||||||
|
]).
|
||||||
|
|
||||||
jsx_decoder_gen([_Test|Rest], []) ->
|
jsx_decoder_gen([_Test|Rest], []) ->
|
||||||
jsx_decoder_gen(Rest);
|
jsx_decoder_gen(Rest);
|
||||||
jsx_decoder_gen([Test|_] = Tests, [Encoding|Encodings]) ->
|
jsx_decoder_gen([Test|_] = Tests, [Encoding|Encodings]) ->
|
||||||
Name = lists:flatten(proplists:get_value(name, Test) ++ " :: " ++ io_lib:format("~p", [Encoding])),
|
Name = lists:flatten(proplists:get_value(name, Test) ++ " :: " ++
|
||||||
JSON = unicode:characters_to_binary(proplists:get_value(json, Test), unicode, Encoding),
|
io_lib:format("~p", [Encoding])
|
||||||
|
),
|
||||||
|
JSON = unicode:characters_to_binary(proplists:get_value(json, Test),
|
||||||
|
unicode,
|
||||||
|
Encoding
|
||||||
|
),
|
||||||
JSX = proplists:get_value(jsx, Test),
|
JSX = proplists:get_value(jsx, Test),
|
||||||
Flags = proplists:get_value(jsx_flags, Test, []),
|
Flags = proplists:get_value(jsx_flags, Test, []),
|
||||||
{generator,
|
{generator,
|
||||||
fun() ->
|
fun() ->
|
||||||
[{Name, ?_assert(decode(JSON, Flags) =:= JSX)}
|
[{Name, ?_assert(decode(JSON, Flags) =:= JSX)}
|
||||||
| {generator,
|
| {generator,
|
||||||
fun() -> [{Name ++ " incremental", ?_assert(incremental_decode(JSON, Flags) =:= JSX)}
|
fun() -> [{Name ++ " incremental", ?_assert(
|
||||||
| jsx_decoder_gen(Tests, Encodings)]
|
incremental_decode(JSON, Flags) =:= JSX)
|
||||||
|
} | jsx_decoder_gen(Tests, Encodings)]
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -577,7 +589,8 @@ load_tests(Path) ->
|
||||||
load_tests([], _Dir, Acc) ->
|
load_tests([], _Dir, Acc) ->
|
||||||
lists:reverse(Acc);
|
lists:reverse(Acc);
|
||||||
load_tests([Test|Rest], Dir, Acc) ->
|
load_tests([Test|Rest], Dir, Acc) ->
|
||||||
%% should alert about badly formed tests eventually, but for now just skip over them
|
%% should alert about badly formed tests eventually, but for now just skip
|
||||||
|
%% over them
|
||||||
case file:consult(Dir ++ "/" ++ Test) of
|
case file:consult(Dir ++ "/" ++ Test) of
|
||||||
{ok, TestSpec} ->
|
{ok, TestSpec} ->
|
||||||
try
|
try
|
||||||
|
@ -633,7 +646,9 @@ incremental_decode_loop({event, Event, Next}, Rest, Acc) ->
|
||||||
|
|
||||||
multi_decode_test_() ->
|
multi_decode_test_() ->
|
||||||
[
|
[
|
||||||
{"multiple values in a single stream", ?_assert(multi_decode(multi_json_body(), []) =:= multi_test_result())}
|
{"multiple values in a single stream", ?_assert(
|
||||||
|
multi_decode(multi_json_body(), []) =:= multi_test_result()
|
||||||
|
)}
|
||||||
].
|
].
|
||||||
|
|
||||||
|
|
||||||
|
@ -669,4 +684,13 @@ multi_test_result() ->
|
||||||
[{string, "hope this works"}]
|
[{string, "hope this works"}]
|
||||||
].
|
].
|
||||||
|
|
||||||
|
read_file_test_() ->
|
||||||
|
{setup,
|
||||||
|
fun() -> ok = file:write_file("test.json", <<"{}"/utf8>>) end,
|
||||||
|
fun(_) -> ok = file:delete("test.json") end,
|
||||||
|
[{"read a json binary off a file on disk", ?_assert(
|
||||||
|
read_file("test.json") =:= [{}]
|
||||||
|
)}]}.
|
||||||
|
|
||||||
|
|
||||||
-endif.
|
-endif.
|
Loading…
Add table
Add a link
Reference in a new issue