From 9c3065d9cfadd860eea1d96765c642c5a529d9d4 Mon Sep 17 00:00:00 2001
From: "Rafael G. Martins" <rafael@rafaelmartins.eng.br>
Date: Sat, 10 Mar 2018 23:42:31 +0100
Subject: make: pass TAG_CLOUD variable to blogc.

this variable includes all the tags configured in blogcfile(5) as a
space-separated string.
---
 tests/blogc-make/check_exec.c | 45 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

(limited to 'tests/blogc-make')

diff --git a/tests/blogc-make/check_exec.c b/tests/blogc-make/check_exec.c
index e0c9931..a6cec3e 100644
--- a/tests/blogc-make/check_exec.c
+++ b/tests/blogc-make/check_exec.c
@@ -83,6 +83,7 @@ test_build_blogc_cmd_with_settings(void **state)
     bc_trie_insert(settings->global, "BAR", bc_strdup("BAZ"));
     bc_trie_t *variables = bc_trie_new(free);
     bc_trie_insert(variables, "LOL", bc_strdup("HEHE"));
+    settings->tags = NULL;
 
     char *rv = bm_exec_build_blogc_cmd("blogc", settings, variables, true,
         "main.tmpl", "foo.html", false, true);
@@ -121,6 +122,7 @@ test_build_blogc_cmd_with_settings_and_dev(void **state)
     bc_trie_insert(settings->global, "BAR", bc_strdup("BAZ"));
     bc_trie_t *variables = bc_trie_new(free);
     bc_trie_insert(variables, "LOL", bc_strdup("HEHE"));
+    settings->tags = NULL;
 
     char *rv = bm_exec_build_blogc_cmd("blogc", settings, variables, true,
         "main.tmpl", "foo.html", true, true);
@@ -150,6 +152,48 @@ test_build_blogc_cmd_with_settings_and_dev(void **state)
 }
 
 
+static void
+test_build_blogc_cmd_with_settings_and_tags(void **state)
+{
+    bm_settings_t *settings = bc_malloc(sizeof(bm_settings_t));
+    settings->settings = bc_trie_new(free);
+    bc_trie_insert(settings->settings, "locale", bc_strdup("en_US.utf8"));
+    settings->global = bc_trie_new(free);
+    bc_trie_insert(settings->global, "FOO", bc_strdup("BAR"));
+    bc_trie_insert(settings->global, "BAR", bc_strdup("BAZ"));
+    bc_trie_t *variables = bc_trie_new(free);
+    bc_trie_insert(variables, "LOL", bc_strdup("HEHE"));
+    settings->tags = bc_str_split("asd foo bar", ' ', 0);
+
+    char *rv = bm_exec_build_blogc_cmd("blogc", settings, variables, true,
+        "main.tmpl", "foo.html", true, true);
+    assert_string_equal(rv,
+        "LC_ALL='en_US.utf8' blogc -D TAG_CLOUD='asd foo bar' -D FOO='BAR' "
+        "-D BAR='BAZ' -D LOL='HEHE' -D MAKE_ENV_DEV=1 -D MAKE_ENV='dev' -l -t "
+        "'main.tmpl' -o 'foo.html' -i");
+    free(rv);
+
+    rv = bm_exec_build_blogc_cmd("blogc", settings, variables, false, NULL, NULL,
+        true, false);
+    assert_string_equal(rv,
+        "LC_ALL='en_US.utf8' blogc -D TAG_CLOUD='asd foo bar' -D FOO='BAR' "
+        "-D BAR='BAZ' -D LOL='HEHE' -D MAKE_ENV_DEV=1 -D MAKE_ENV='dev'");
+    free(rv);
+
+    rv = bm_exec_build_blogc_cmd("blogc", settings, NULL, false, NULL, NULL,
+        true, false);
+    assert_string_equal(rv,
+        "LC_ALL='en_US.utf8' blogc -D TAG_CLOUD='asd foo bar' -D FOO='BAR' "
+        "-D BAR='BAZ' -D MAKE_ENV_DEV=1 -D MAKE_ENV='dev'");
+    free(rv);
+
+    bc_trie_free(variables);
+    bc_trie_free(settings->settings);
+    bc_trie_free(settings->global);
+    free(settings);
+}
+
+
 static void
 test_build_blogc_cmd_without_settings(void **state)
 {
@@ -187,6 +231,7 @@ main(void)
 #endif
         unit_test(test_build_blogc_cmd_with_settings),
         unit_test(test_build_blogc_cmd_with_settings_and_dev),
+        unit_test(test_build_blogc_cmd_with_settings_and_tags),
         unit_test(test_build_blogc_cmd_without_settings),
     };
     return run_tests(tests);
-- 
cgit v1.2.3-18-g5258