From 8436e6acea7e45a58bef48772f00dd0b4bbd285f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sat, 28 May 2022 19:34:16 +0200 Subject: [PATCH] =?UTF-8?q?test:=20config:=20new=20test=20for=20the=20new?= =?UTF-8?q?=20=E2=80=98environment=E2=80=99=20section?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test-config.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/tests/test-config.c b/tests/test-config.c index 313b3672..874f5b05 100644 --- a/tests/test-config.c +++ b/tests/test-config.c @@ -1132,6 +1132,42 @@ test_section_text_bindings(void) config_free(&conf); } +static void +test_section_environment(void) +{ + struct config conf = {0}; + struct context ctx = { + .conf = &conf, .section = "environment", .path = "unittest"}; + + /* A single variable */ + ctx.key = "FOO"; + ctx.value = "bar"; + xassert(parse_section_environment(&ctx)); + xassert(tll_length(conf.env_vars) == 1); + xassert(strcmp(tll_front(conf.env_vars).name, "FOO") == 0); + xassert(strcmp(tll_front(conf.env_vars).value, "bar") == 0); + + /* Add a second variable */ + ctx.key = "BAR"; + ctx.value = "123"; + xassert(parse_section_environment(&ctx)); + xassert(tll_length(conf.env_vars) == 2); + xassert(strcmp(tll_back(conf.env_vars).name, "BAR") == 0); + xassert(strcmp(tll_back(conf.env_vars).value, "123") == 0); + + /* Replace the *value* of the first variable */ + ctx.key = "FOO"; + ctx.value = "456"; + xassert(parse_section_environment(&ctx)); + xassert(tll_length(conf.env_vars) == 2); + xassert(strcmp(tll_front(conf.env_vars).name, "FOO") == 0); + xassert(strcmp(tll_front(conf.env_vars).value, "456") == 0); + xassert(strcmp(tll_back(conf.env_vars).name, "BAR") == 0); + xassert(strcmp(tll_back(conf.env_vars).value, "123") == 0); + + config_free(&conf); +} + static void test_section_tweak(void) { @@ -1227,6 +1263,7 @@ main(int argc, const char *const *argv) test_section_mouse_bindings(); test_section_mouse_bindings_collisions(); test_section_text_bindings(); + test_section_environment(); test_section_tweak(); log_deinit(); return 0;