diff options
author | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2015-04-28 02:31:40 -0300 |
---|---|---|
committer | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2015-04-28 02:31:40 -0300 |
commit | 582cbc6cf67919ec189098817ab1e4541c8e761d (patch) | |
tree | dd045a9d6ba2a2a59ef161774988f0aedcc5c0cb /tests/check_renderer.c | |
parent | 5205db347cb9f56187c2ad5e767281a7a4016533 (diff) | |
download | blogc-582cbc6cf67919ec189098817ab1e4541c8e761d.tar.gz blogc-582cbc6cf67919ec189098817ab1e4541c8e761d.tar.bz2 blogc-582cbc6cf67919ec189098817ab1e4541c8e761d.zip |
implemented datetime parsing/formatting
Diffstat (limited to 'tests/check_renderer.c')
-rw-r--r-- | tests/check_renderer.c | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/tests/check_renderer.c b/tests/check_renderer.c index f8acc14..681b821 100644 --- a/tests/check_renderer.c +++ b/tests/check_renderer.c @@ -28,10 +28,13 @@ create_sources(unsigned int count) const char *s[] = { "BOLA: asd\n" "GUDA: zxc\n" + "DATE: 2015-01-02 03:04:05\n" + "DATE_FORMAT: %R\n" "-----\n" "ahahahahahahahaha", "BOLA: asd2\n" "GUDA: zxc2\n" + "DATE: 2014-02-03 04:05:06\n" "-----\n" "ahahahahahahahaha2", "BOLA: asd3\n" @@ -58,6 +61,8 @@ test_render_entry(void **state) "foo\n" "{% block listing_once %}fuuu{% endblock %}\n" "{% block entry %}\n" + "{{ DATE }}\n" + "{% if DATE_FORMATTED %}{{ DATE_FORMATTED }}{% endif %}\n" "{% if GUDA %}{{ GUDA }}{% endif %}\n" "{% if CHUNDA %}{{ CHUNDA }}{% endif %}\n" "{% endblock %}\n" @@ -73,6 +78,8 @@ test_render_entry(void **state) "foo\n" "\n" "\n" + "2015-01-02 03:04:05\n" + "03:04\n" "zxc\n" "\n" "\n" @@ -94,6 +101,7 @@ test_render_listing(void **state) "{% if CHUNDA %}{{ CHUNDA }}{% endif %}\n" "{% endblock %}\n" "{% block listing %}\n" + "{% if DATE_FORMATTED %}{{ DATE_FORMATTED }}{% endif %}\n" "bola: {% if BOLA %}{{ BOLA }}{% endif %}\n" "{% endblock %}\n"; blogc_error_t *err = NULL; @@ -108,10 +116,13 @@ test_render_listing(void **state) "fuuu\n" "\n" "\n" + "03:04\n" "bola: asd\n" "\n" + "2014-02-03 04:05:06\n" "bola: asd2\n" "\n" + "\n" "bola: asd3\n" "\n"); blogc_template_free_stmts(l); @@ -319,6 +330,109 @@ test_render_prefer_local_variable(void **state) } +static void +test_get_variable(void **state) +{ + b_trie_t *g = b_trie_new(free); + b_trie_insert(g, "NAME", b_strdup("bola")); + b_trie_insert(g, "TITLE", b_strdup("bola2")); + b_trie_t *l = b_trie_new(free); + b_trie_insert(l, "NAME", b_strdup("chunda")); + b_trie_insert(l, "TITLE", b_strdup("chunda2")); + assert_string_equal(blogc_get_variable("NAME", g, l), "chunda"); + assert_string_equal(blogc_get_variable("TITLE", g, l), "chunda2"); + assert_null(blogc_get_variable("BOLA", g, l)); + b_trie_free(g); + b_trie_free(l); +} + + +static void +test_get_variable_only_local(void **state) +{ + b_trie_t *g = NULL; + b_trie_t *l = b_trie_new(free); + b_trie_insert(l, "NAME", b_strdup("chunda")); + b_trie_insert(l, "TITLE", b_strdup("chunda2")); + assert_string_equal(blogc_get_variable("NAME", g, l), "chunda"); + assert_string_equal(blogc_get_variable("TITLE", g, l), "chunda2"); + assert_null(blogc_get_variable("BOLA", g, l)); + b_trie_free(l); +} + + +static void +test_get_variable_only_global(void **state) +{ + b_trie_t *g = b_trie_new(free); + b_trie_insert(g, "NAME", b_strdup("bola")); + b_trie_insert(g, "TITLE", b_strdup("bola2")); + b_trie_t *l = NULL; + assert_string_equal(blogc_get_variable("NAME", g, l), "bola"); + assert_string_equal(blogc_get_variable("TITLE", g, l), "bola2"); + assert_null(blogc_get_variable("BOLA", g, l)); + b_trie_free(g); +} + + +static void +test_format_date(void **state) +{ + b_trie_t *g = b_trie_new(free); + b_trie_insert(g, "DATE_FORMAT", b_strdup("%H -- %j")); + b_trie_t *l = b_trie_new(free); + b_trie_insert(l, "DATE", b_strdup("2015-01-02 03:04:05")); + b_trie_insert(l, "DATE_FORMAT", b_strdup("%R")); + char *date = blogc_format_date(g, l); + assert_string_equal(date, "03:04"); + free(date); + b_trie_free(g); + b_trie_free(l); +} + + +static void +test_format_date_with_global_format(void **state) +{ + b_trie_t *g = b_trie_new(free); + b_trie_insert(g, "DATE_FORMAT", b_strdup("%H -- %j")); + b_trie_t *l = b_trie_new(free); + b_trie_insert(l, "DATE", b_strdup("2015-01-02 03:04:05")); + char *date = blogc_format_date(g, l); + assert_string_equal(date, "03 -- 002"); + free(date); + b_trie_free(g); + b_trie_free(l); +} + + +static void +test_format_date_without_format(void **state) +{ + b_trie_t *g = b_trie_new(free); + b_trie_t *l = b_trie_new(free); + b_trie_insert(l, "DATE", b_strdup("2015-01-02 03:04:05")); + char *date = blogc_format_date(g, l); + assert_string_equal(date, "2015-01-02 03:04:05"); + free(date); + b_trie_free(g); + b_trie_free(l); +} + + +static void +test_format_date_without_date(void **state) +{ + b_trie_t *g = b_trie_new(free); + b_trie_t *l = b_trie_new(free); + char *date = blogc_format_date(g, l); + assert_null(date); + free(date); + b_trie_free(g); + b_trie_free(l); +} + + int main(void) { @@ -332,6 +446,13 @@ main(void) unit_test(test_render_outside_block), unit_test(test_render_null), unit_test(test_render_prefer_local_variable), + unit_test(test_get_variable), + unit_test(test_get_variable_only_local), + unit_test(test_get_variable_only_global), + unit_test(test_format_date), + unit_test(test_format_date_with_global_format), + unit_test(test_format_date_without_format), + unit_test(test_format_date_without_date), }; return run_tests(tests); } |