diff options
Diffstat (limited to 'tests/core/test_01.c')
| -rw-r--r-- | tests/core/test_01.c | 55 |
1 files changed, 47 insertions, 8 deletions
diff --git a/tests/core/test_01.c b/tests/core/test_01.c index 2957472464b7..35dc15df6112 100644 --- a/tests/core/test_01.c +++ b/tests/core/test_01.c @@ -14,6 +14,7 @@ #include <unistd.h> #include "xo.h" +#include "xo_encoder.h" int main (int argc, char **argv) @@ -55,21 +56,21 @@ main (int argc, char **argv) return 1; for (argc = 1; argv[argc]; argc++) { - if (strcmp(argv[argc], "xml") == 0) + if (xo_streq(argv[argc], "xml")) xo_set_style(NULL, XO_STYLE_XML); - else if (strcmp(argv[argc], "json") == 0) + else if (xo_streq(argv[argc], "json")) xo_set_style(NULL, XO_STYLE_JSON); - else if (strcmp(argv[argc], "text") == 0) + else if (xo_streq(argv[argc], "text")) xo_set_style(NULL, XO_STYLE_TEXT); - else if (strcmp(argv[argc], "html") == 0) + else if (xo_streq(argv[argc], "html")) xo_set_style(NULL, XO_STYLE_HTML); - else if (strcmp(argv[argc], "pretty") == 0) + else if (xo_streq(argv[argc], "pretty")) xo_set_flags(NULL, XOF_PRETTY); - else if (strcmp(argv[argc], "xpath") == 0) + else if (xo_streq(argv[argc], "xpath")) xo_set_flags(NULL, XOF_XPATH); - else if (strcmp(argv[argc], "info") == 0) + else if (xo_streq(argv[argc], "info")) xo_set_flags(NULL, XOF_INFO); - else if (strcmp(argv[argc], "error") == 0) { + else if (xo_streq(argv[argc], "error")) { close(-1); xo_err(1, "error detected"); } @@ -186,6 +187,44 @@ main (int argc, char **argv) xo_close_list("item"); xo_close_container("data4"); + xo_attr("test", "value"); + xo_open_container("data"); + xo_open_list("item"); + xo_attr("test2", "value2"); + + xo_emit("{T:Item/%-10s}{T:Total Sold/%12s}{T:In Stock/%12s}" + "{T:On Order/%12s}{T:SKU/%5s}\n"); + + for (ip = list; ip->i_title; ip++) { + xo_open_instance("item"); + xo_attr("test3", "value3"); + + xo_emit("{keq:sku/%s-%u/%s-000-%u}" + "{k:name/%-10s/%s}{n:sold/%12u/%u}", + ip->i_sku_base, ip->i_sku_num, + ip->i_title, ip->i_sold); + + if (ip->i_onorder < 5) + xo_emit("Extra: {:extra}", "special"); + + if (ip->i_instock & 1) + xo_emit("{:in-stock/%12u/%u}", ip->i_instock); + xo_emit("{:on-order/%12u/%u}", ip->i_onorder); + if (!(ip->i_instock & 1)) + xo_emit("{:in-stock/%12u/%u}", ip->i_instock); + + xo_emit("{qkd:sku/%5s-000-%u/%s-000-%u}\n", + ip->i_sku_base, ip->i_sku_num); + + xo_close_instance("item"); + } + + xo_close_list("item"); + xo_close_container("data"); + + xo_emit("\n\n"); + + xo_emit("X{P:}X", "epic fail"); xo_emit("X{T:}X", "epic fail"); xo_emit("X{N:}X", "epic fail"); |
