From c16c86bcc01dff2a984aeffd58e2402a876cc12d Mon Sep 17 00:00:00 2001 From: "Rafael G. Martins" Date: Tue, 24 Jul 2018 02:27:48 +0200 Subject: make: handle empty prefixes properly still needs to add integration tests --- tests/blogc-make/check_atom.c | 62 +++++++++++++++++++++++++++++++++++++++ tests/blogc-make/check_settings.c | 9 ++++-- 2 files changed, 68 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/blogc-make/check_atom.c b/tests/blogc-make/check_atom.c index 6faa53e..43ed93d 100644 --- a/tests/blogc-make/check_atom.c +++ b/tests/blogc-make/check_atom.c @@ -21,6 +21,67 @@ #include "../../src/common/utils.h" +static void +test_atom_empty(void **state) +{ + bm_settings_t *settings = bc_malloc(sizeof(bm_settings_t)); + settings->settings = bc_trie_new(free); + bc_trie_insert(settings->settings, "atom_prefix", bc_strdup("")); + bc_trie_insert(settings->settings, "atom_ext", bc_strdup(".xml")); + bc_trie_insert(settings->settings, "post_prefix", bc_strdup("")); + + bc_error_t *err = NULL; + char *rv = bm_atom_deploy(settings, &err); + + assert_non_null(rv); + assert_null(err); + + size_t cmp_len; + char *cmp = bc_file_get_contents(rv, true, &cmp_len, &err); + + assert_non_null(cmp); + assert_null(err); + + assert_string_equal(cmp, + "\n" + "\n" + " {{ SITE_TITLE }}{% ifdef FILTER_TAG %} - " + "{{ FILTER_TAG }}{% endif %}\n" + " {{ BASE_URL }}{% ifdef FILTER_TAG %}/{{ FILTER_TAG }}" + "{% endif %}.xml\n" + " {{ DATE_FIRST_FORMATTED }}\n" + " \n" + " \n" + " \n" + " {{ AUTHOR_NAME }}\n" + " {{ AUTHOR_EMAIL }}\n" + " \n" + " {{ SITE_TAGLINE }}\n" + " {% block listing %}\n" + " \n" + " {{ TITLE }}\n" + " {{ BASE_URL }}/{{ FILENAME }}/\n" + " {{ DATE_FORMATTED }}\n" + " {{ DATE_FORMATTED }}\n" + " \n" + " \n" + " {{ AUTHOR_NAME }}\n" + " {{ AUTHOR_EMAIL }}\n" + " \n" + " \n" + " \n" + " {% endblock %}\n" + "\n"); + + free(cmp); + bm_atom_destroy(rv); + free(rv); + bc_trie_free(settings->settings); + free(settings); +} + + static void test_atom_file(void **state) { @@ -147,6 +208,7 @@ int main(void) { const UnitTest tests[] = { + unit_test(test_atom_empty), unit_test(test_atom_file), unit_test(test_atom_dir), }; diff --git a/tests/blogc-make/check_settings.c b/tests/blogc-make/check_settings.c index 6eaaaec..8acf7e6 100644 --- a/tests/blogc-make/check_settings.c +++ b/tests/blogc-make/check_settings.c @@ -126,7 +126,7 @@ test_settings2(void **state) assert_string_equal(bc_trie_lookup(s->global, "SITE_TITLE"), "Fuuuuuuuuu"); assert_string_equal(bc_trie_lookup(s->global, "SITE_TAGLINE"), "My cool tagline"); assert_string_equal(bc_trie_lookup(s->global, "BASE_DOMAIN"), "http://example.com"); - assert_int_equal(bc_trie_size(s->settings), 15); + assert_int_equal(bc_trie_size(s->settings), 16); assert_string_equal(bc_trie_lookup(s->settings, "source_ext"), ".txt"); assert_string_equal(bc_trie_lookup(s->settings, "html_ext"), "/index.html"); assert_string_equal(bc_trie_lookup(s->settings, "content_dir"), "guda"); @@ -143,6 +143,7 @@ test_settings2(void **state) assert_string_equal(bc_trie_lookup(s->settings, "tag_prefix"), "tag"); assert_string_equal(bc_trie_lookup(s->settings, "html_order"), "DESC"); assert_string_equal(bc_trie_lookup(s->settings, "atom_order"), "DESC"); + assert_string_equal(bc_trie_lookup(s->settings, "index_prefix"), ""); assert_non_null(s->posts); assert_string_equal(s->posts[0], "aaaa"); assert_string_equal(s->posts[1], "bbbb"); @@ -215,7 +216,7 @@ test_settings_env2(void **state) assert_string_equal(bc_trie_lookup(s->global, "SITE_TITLE"), "Fuuuuuuuuu"); assert_string_equal(bc_trie_lookup(s->global, "SITE_TAGLINE"), "My cool tagline"); assert_string_equal(bc_trie_lookup(s->global, "BASE_DOMAIN"), "http://example.com"); - assert_int_equal(bc_trie_size(s->settings), 15); + assert_int_equal(bc_trie_size(s->settings), 16); assert_string_equal(bc_trie_lookup(s->settings, "source_ext"), ".txt"); assert_string_equal(bc_trie_lookup(s->settings, "html_ext"), "/index.html"); assert_string_equal(bc_trie_lookup(s->settings, "content_dir"), "guda"); @@ -232,6 +233,7 @@ test_settings_env2(void **state) assert_string_equal(bc_trie_lookup(s->settings, "tag_prefix"), "tag"); assert_string_equal(bc_trie_lookup(s->settings, "html_order"), "DESC"); assert_string_equal(bc_trie_lookup(s->settings, "atom_order"), "DESC"); + assert_string_equal(bc_trie_lookup(s->settings, "index_prefix"), ""); assert_non_null(s->posts); assert_string_equal(s->posts[0], "aaaa"); assert_string_equal(s->posts[1], "bbbb"); @@ -304,7 +306,7 @@ test_settings_copy_files(void **state) assert_string_equal(bc_trie_lookup(s->global, "SITE_TITLE"), "Fuuuuuuuuu"); assert_string_equal(bc_trie_lookup(s->global, "SITE_TAGLINE"), "My cool tagline"); assert_string_equal(bc_trie_lookup(s->global, "BASE_DOMAIN"), "http://example.com"); - assert_int_equal(bc_trie_size(s->settings), 15); + assert_int_equal(bc_trie_size(s->settings), 16); assert_string_equal(bc_trie_lookup(s->settings, "source_ext"), ".txt"); assert_string_equal(bc_trie_lookup(s->settings, "html_ext"), "/index.html"); assert_string_equal(bc_trie_lookup(s->settings, "content_dir"), "guda"); @@ -321,6 +323,7 @@ test_settings_copy_files(void **state) assert_string_equal(bc_trie_lookup(s->settings, "tag_prefix"), "tag"); assert_string_equal(bc_trie_lookup(s->settings, "html_order"), "DESC"); assert_string_equal(bc_trie_lookup(s->settings, "atom_order"), "DESC"); + assert_string_equal(bc_trie_lookup(s->settings, "index_prefix"), ""); assert_non_null(s->posts); assert_string_equal(s->posts[0], "aaaa"); assert_string_equal(s->posts[1], "bbbb"); -- cgit v1.2.3-18-g5258