diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 464b29c8..ea722197 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -50,6 +50,7 @@ add_unit_test(utils/actions) add_unit_test(utils/action_router) add_unit_test(utils/color) add_unit_test(utils/command) +add_unit_test(utils/env) add_unit_test(utils/math) add_unit_test(utils/memory) add_unit_test(utils/scope) diff --git a/tests/unit_tests/utils/env.cpp b/tests/unit_tests/utils/env.cpp new file mode 100644 index 00000000..7c9af106 --- /dev/null +++ b/tests/unit_tests/utils/env.cpp @@ -0,0 +1,27 @@ +#include "utils/env.hpp" + +#include "common/test.hpp" +#include "stdlib.h" + +using namespace polybar; + +static constexpr auto INEXISTENT_ENV = "POLYBAR_INEXISTENT"; + +TEST(Env, has) { + EXPECT_EQ(true, env_util::has("HOME")); + unsetenv(INEXISTENT_ENV); + EXPECT_EQ(false, env_util::has(INEXISTENT_ENV)); + setenv(INEXISTENT_ENV, "123", false); + EXPECT_EQ(true, env_util::has(INEXISTENT_ENV)); + unsetenv(INEXISTENT_ENV); + EXPECT_EQ(false, env_util::has(INEXISTENT_ENV)); +} + +TEST(Env, get) { + unsetenv(INEXISTENT_ENV); + EXPECT_EQ("fallback", env_util::get(INEXISTENT_ENV, "fallback")); + setenv(INEXISTENT_ENV, "123", false); + EXPECT_EQ("123", env_util::get(INEXISTENT_ENV, "fallback")); + unsetenv(INEXISTENT_ENV); + EXPECT_EQ("fallback", env_util::get(INEXISTENT_ENV, "fallback")); +}