From 550f6285640efced8f1d944dedd1b4ab8be9c029 Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Tue, 25 May 2010 21:04:11 -0700 Subject: [PATCH] updated test suite to match new decoder --- test/cases/array.json | 2 +- test/jsx_test.erl | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/test/cases/array.json b/test/cases/array.json index 836ecbe..ee1041c 100644 --- a/test/cases/array.json +++ b/test/cases/array.json @@ -1 +1 @@ -["foo","bar", "baz",[true],[false],[null],true, false, null, 0.7, {"key":"value"},[{}, null,null,null,[]],"\n\r\\", [-1]] g +["foo","bar", "baz",[true],[false],[null],true, false, null, 0.7, {"key":"value"},[{}, null,null,null,[]],"\n\r\\", [-1]] diff --git a/test/jsx_test.erl b/test/jsx_test.erl index d0cce15..f9d0856 100644 --- a/test/jsx_test.erl +++ b/test/jsx_test.erl @@ -26,22 +26,33 @@ test_body(TestSpec, Dir) -> case file:consult(Dir ++ "/" ++ TestSpec) of {ok, [Events]} -> Decoder = jsx:decoder(), + [{TestName, ?_assertEqual(incremental_decode(Decoder, JSON), Events)}] ++ [{TestName, ?_assertEqual(decode(Decoder, JSON), Events)}] ; {ok, [Events, Flags]} -> - Decoder = jsx:decoder(none, Flags), + Decoder = jsx:decoder({none, []}, Flags), + [{TestName, ?_assertEqual(incremental_decode(Decoder, JSON), Events)}] ++ [{TestName, ?_assertEqual(decode(Decoder, JSON), Events)}] end catch _:_ -> [] end. -decode(F, <<>>) -> - {Result, _} = F(<<16#FDEF/utf8>>), +incremental_decode(F, <<>>) -> + {Result, _} = F(<<>>), Result; -decode(F, <>) -> +incremental_decode(F, <>) -> case F(<>) of G when is_function(G) -> decode(G, Rest) ; {Result, _} -> Result end. + +decode(F, JSON) -> + case F(JSON) of + G when is_function(G) -> + {Result, <<>>} = G(<<>>), + Result + ; {Result, _} -> + Result + end. \ No newline at end of file