diff --git a/tests/Makefile.am b/tests/Makefile.am index 80ae468..ea57bda 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -27,7 +27,6 @@ TESTS+= test_set_value.test TESTS+= test_visit.test TESTS+= test_json_pointer.test TESTS+= test_int_add.test -TESTS+= test_string_spaced_pretty.test check_PROGRAMS= check_PROGRAMS += $(TESTS:.test=) diff --git a/tests/parse_flags.c b/tests/parse_flags.c index b1f8337..17cd061 100644 --- a/tests/parse_flags.c +++ b/tests/parse_flags.c @@ -19,6 +19,7 @@ static struct { { "plain", JSON_C_TO_STRING_PLAIN }, { "spaced", JSON_C_TO_STRING_SPACED }, { "pretty", JSON_C_TO_STRING_PRETTY }, + { "pretty_tab", JSON_C_TO_STRING_PRETTY_TAB }, }; #ifndef NELEM diff --git a/tests/test1.test b/tests/test1.test index 79d2e09..0331f98 100755 --- a/tests/test1.test +++ b/tests/test1.test @@ -19,4 +19,20 @@ for flag in plain spaced pretty ; do fi done +# Spaced and pretty JSON string +run_output_test -o test1Formatted_spaced_pretty \ + test1Formatted spaced pretty +_err2=$? +if [ $_err -eq 0 ] ; then + _err=$_err2 +fi + +# Spaced and pretty JSON string using tabs +run_output_test -o test1Formatted_spaced_pretty_pretty_tab \ + test1Formatted spaced pretty pretty_tab +_err2=$? +if [ $_err -eq 0 ] ; then + _err=$_err2 +fi + exit $_err diff --git a/tests/test1Formatted_spaced_pretty.expected b/tests/test1Formatted_spaced_pretty.expected new file mode 100644 index 0000000..376da12 --- /dev/null +++ b/tests/test1Formatted_spaced_pretty.expected @@ -0,0 +1,86 @@ +my_string= +my_string.to_string()="\t" +my_string=\ +my_string.to_string()="\\" +my_string=/ +my_string.to_string()="\/" +my_string.to_string(NOSLASHESCAPE)="/" +my_string=/foo/bar/baz +my_string.to_string()="\/foo\/bar\/baz" +my_string.to_string(NOSLASHESCAPE)="/foo/bar/baz" +my_string=foo +my_string.to_string()="foo" +my_int=9 +my_int.to_string()=9 +my_array= + [0]=1 + [1]=2 + [2]=3 + [3]=null + [4]=5 +my_array.to_string()=[ + 1, + 2, + 3, + null, + 5 +] +my_array= + [0]=1 + [1]=2 + [2]=3 + [3]=4 + [4]=5 + [5]=null + [6]=7 +my_array.to_string()=[1,2,3,4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[2,3,4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[3,4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[null,7] +after del_idx(0,1)=0, my_array.to_string()=[7] +after del_idx(0,1)=0, my_array.to_string()=[] +after del_idx(0,1)=-1, my_array.to_string()=[] +after del_idx(0,7)=0, my_array.to_string()=[] +after del_idx(0,8)=-1, my_array.to_string()=[1,2,3,4,5,null,7] +after del_idx(0,6)=0, my_array.to_string()=[7] +after adding more entries, my_array.to_string()=[7,"s1","s2","s3"] +my_array= + [0]=3 + [1]=1 + [2]=2 + [3]=null + [4]=0 +my_array.to_string()=[ + 3, + 1, + 2, + null, + 0 +] +my_array= + [0]=null + [1]=0 + [2]=1 + [3]=2 + [4]=3 +my_array.to_string()=[ + null, + 0, + 1, + 2, + 3 +] +baz_obj.to_string()="fark" +my_object= + abc: 12 + foo: "bar" + bool0: false + bool1: true +my_object.to_string()={ + "abc": 12, + "foo": "bar", + "bool0": false, + "bool1": true +} diff --git a/tests/test1Formatted_spaced_pretty_pretty_tab.expected b/tests/test1Formatted_spaced_pretty_pretty_tab.expected new file mode 100644 index 0000000..d237669 --- /dev/null +++ b/tests/test1Formatted_spaced_pretty_pretty_tab.expected @@ -0,0 +1,86 @@ +my_string= +my_string.to_string()="\t" +my_string=\ +my_string.to_string()="\\" +my_string=/ +my_string.to_string()="\/" +my_string.to_string(NOSLASHESCAPE)="/" +my_string=/foo/bar/baz +my_string.to_string()="\/foo\/bar\/baz" +my_string.to_string(NOSLASHESCAPE)="/foo/bar/baz" +my_string=foo +my_string.to_string()="foo" +my_int=9 +my_int.to_string()=9 +my_array= + [0]=1 + [1]=2 + [2]=3 + [3]=null + [4]=5 +my_array.to_string()=[ + 1, + 2, + 3, + null, + 5 +] +my_array= + [0]=1 + [1]=2 + [2]=3 + [3]=4 + [4]=5 + [5]=null + [6]=7 +my_array.to_string()=[1,2,3,4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[2,3,4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[3,4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[4,5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[5,null,7] +after del_idx(0,1)=0, my_array.to_string()=[null,7] +after del_idx(0,1)=0, my_array.to_string()=[7] +after del_idx(0,1)=0, my_array.to_string()=[] +after del_idx(0,1)=-1, my_array.to_string()=[] +after del_idx(0,7)=0, my_array.to_string()=[] +after del_idx(0,8)=-1, my_array.to_string()=[1,2,3,4,5,null,7] +after del_idx(0,6)=0, my_array.to_string()=[7] +after adding more entries, my_array.to_string()=[7,"s1","s2","s3"] +my_array= + [0]=3 + [1]=1 + [2]=2 + [3]=null + [4]=0 +my_array.to_string()=[ + 3, + 1, + 2, + null, + 0 +] +my_array= + [0]=null + [1]=0 + [2]=1 + [3]=2 + [4]=3 +my_array.to_string()=[ + null, + 0, + 1, + 2, + 3 +] +baz_obj.to_string()="fark" +my_object= + abc: 12 + foo: "bar" + bool0: false + bool1: true +my_object.to_string()={ + "abc": 12, + "foo": "bar", + "bool0": false, + "bool1": true +} diff --git a/tests/test2.test b/tests/test2.test index d4a4e79..b5330fe 100755 --- a/tests/test2.test +++ b/tests/test2.test @@ -19,4 +19,20 @@ for flag in plain spaced pretty ; do fi done +# Spaced and pretty JSON string +run_output_test -o test2Formatted_spaced_pretty \ + test2Formatted spaced pretty +_err2=$? +if [ $_err -eq 0 ] ; then + _err=$_err2 +fi + +# Spaced and pretty JSON string using tabs +run_output_test -o test2Formatted_spaced_pretty_pretty_tab \ + test2Formatted spaced pretty pretty_tab +_err2=$? +if [ $_err -eq 0 ] ; then + _err=$_err2 +fi + exit $_err diff --git a/tests/test2Formatted_spaced_pretty.expected b/tests/test2Formatted_spaced_pretty.expected new file mode 100644 index 0000000..49f9ef2 --- /dev/null +++ b/tests/test2Formatted_spaced_pretty.expected @@ -0,0 +1,23 @@ +new_obj.to_string()={ + "glossary": { + "title": "example glossary", + "GlossDiv": { + "title": "S", + "GlossList": [ + { + "ID": "SGML", + "SortAs": "SGML", + "GlossTerm": "Standard Generalized Markup Language", + "Acronym": "SGML", + "Abbrev": "ISO 8879:1986", + "GlossDef": "A meta-markup language, used to create markup languages such as DocBook.", + "GlossSeeAlso": [ + "GML", + "XML", + "markup" + ] + } + ] + } + } +} diff --git a/tests/test2Formatted_spaced_pretty_pretty_tab.expected b/tests/test2Formatted_spaced_pretty_pretty_tab.expected new file mode 100644 index 0000000..0296b9c --- /dev/null +++ b/tests/test2Formatted_spaced_pretty_pretty_tab.expected @@ -0,0 +1,23 @@ +new_obj.to_string()={ + "glossary": { + "title": "example glossary", + "GlossDiv": { + "title": "S", + "GlossList": [ + { + "ID": "SGML", + "SortAs": "SGML", + "GlossTerm": "Standard Generalized Markup Language", + "Acronym": "SGML", + "Abbrev": "ISO 8879:1986", + "GlossDef": "A meta-markup language, used to create markup languages such as DocBook.", + "GlossSeeAlso": [ + "GML", + "XML", + "markup" + ] + } + ] + } + } +} diff --git a/tests/test_string_spaced_pretty.c b/tests/test_string_spaced_pretty.c deleted file mode 100644 index 59da6a7..0000000 --- a/tests/test_string_spaced_pretty.c +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include -#include -#include -#include - -#include "json.h" - -int main(int argc, char **argv) -{ - json_object *j; - - j = json_tokener_parse("/* more difficult test case */" - "{ \"glossary\": { \"title\": \"example glossary\", \"GlossDiv\": { \"title\": \"S\", \"GlossList\": [ { \"ID\": \"SGML\", \"SortAs\": \"SGML\", \"GlossTerm\": \"Standard Generalized Markup Language\", \"Acronym\": \"SGML\", \"Abbrev\": \"ISO 8879:1986\", \"GlossDef\": \"A meta-markup language, used to create markup languages such as DocBook.\", \"GlossSeeAlso\": [\"GML\", \"XML\", \"markup\"] } ] } } }"); - - printf("flags = 0:\n%s\n\n", - json_object_to_json_string_ext(j, 0)); - - printf("flags = JSON_C_TO_STRING_SPACED:\n%s\n\n", - json_object_to_json_string_ext(j, JSON_C_TO_STRING_SPACED)); - - printf("flags = JSON_C_TO_STRING_SPACED|JSON_C_TO_STRING_PRETTY:\n%s\n\n", - json_object_to_json_string_ext(j, JSON_C_TO_STRING_SPACED - |JSON_C_TO_STRING_PRETTY)); - - printf("flags = JSON_C_TO_STRING_SPACED|JSON_C_TO_STRING_PRETTY|JSON_C_TO_STRING_PRETTY_TAB:\n%s\n", - json_object_to_json_string_ext(j, JSON_C_TO_STRING_SPACED - |JSON_C_TO_STRING_PRETTY - |JSON_C_TO_STRING_PRETTY_TAB)); - - json_object_put(j); - - return EXIT_SUCCESS; -} diff --git a/tests/test_string_spaced_pretty.expected b/tests/test_string_spaced_pretty.expected deleted file mode 100644 index 193002e..0000000 --- a/tests/test_string_spaced_pretty.expected +++ /dev/null @@ -1,55 +0,0 @@ -flags = 0: -{"glossary":{"title":"example glossary","GlossDiv":{"title":"S","GlossList":[{"ID":"SGML","SortAs":"SGML","GlossTerm":"Standard Generalized Markup Language","Acronym":"SGML","Abbrev":"ISO 8879:1986","GlossDef":"A meta-markup language, used to create markup languages such as DocBook.","GlossSeeAlso":["GML","XML","markup"]}]}}} - -flags = JSON_C_TO_STRING_SPACED: -{ "glossary": { "title": "example glossary", "GlossDiv": { "title": "S", "GlossList": [ { "ID": "SGML", "SortAs": "SGML", "GlossTerm": "Standard Generalized Markup Language", "Acronym": "SGML", "Abbrev": "ISO 8879:1986", "GlossDef": "A meta-markup language, used to create markup languages such as DocBook.", "GlossSeeAlso": [ "GML", "XML", "markup" ] } ] } } } - -flags = JSON_C_TO_STRING_SPACED|JSON_C_TO_STRING_PRETTY: -{ - "glossary": { - "title": "example glossary", - "GlossDiv": { - "title": "S", - "GlossList": [ - { - "ID": "SGML", - "SortAs": "SGML", - "GlossTerm": "Standard Generalized Markup Language", - "Acronym": "SGML", - "Abbrev": "ISO 8879:1986", - "GlossDef": "A meta-markup language, used to create markup languages such as DocBook.", - "GlossSeeAlso": [ - "GML", - "XML", - "markup" - ] - } - ] - } - } -} - -flags = JSON_C_TO_STRING_SPACED|JSON_C_TO_STRING_PRETTY|JSON_C_TO_STRING_PRETTY_TAB: -{ - "glossary": { - "title": "example glossary", - "GlossDiv": { - "title": "S", - "GlossList": [ - { - "ID": "SGML", - "SortAs": "SGML", - "GlossTerm": "Standard Generalized Markup Language", - "Acronym": "SGML", - "Abbrev": "ISO 8879:1986", - "GlossDef": "A meta-markup language, used to create markup languages such as DocBook.", - "GlossSeeAlso": [ - "GML", - "XML", - "markup" - ] - } - ] - } - } -} diff --git a/tests/test_string_spaced_pretty.test b/tests/test_string_spaced_pretty.test deleted file mode 120000 index 58a13f4..0000000 --- a/tests/test_string_spaced_pretty.test +++ /dev/null @@ -1 +0,0 @@ -test_basic.test \ No newline at end of file