40 lines
2.0 KiB
C++
40 lines
2.0 KiB
C++
#include "test_support.hpp"
|
|
|
|
#include <izo/environment.hpp>
|
|
#include <izo/paths.hpp>
|
|
|
|
#include <array>
|
|
|
|
int main() {
|
|
std::string error;
|
|
CHECK(izo::set_environment_variable("IZO_TEST_VALUE", "hello-utf8-å", &error));
|
|
CHECK(izo::get_environment_variable("IZO_TEST_VALUE") == "hello-utf8-å");
|
|
CHECK(izo::set_environment_variable("IZO_TEST_VALUE", "", &error));
|
|
CHECK(izo::get_environment_variable("IZO_TEST_VALUE") == "");
|
|
CHECK(izo::unset_environment_variable("IZO_TEST_VALUE", &error));
|
|
CHECK(!izo::get_environment_variable("IZO_TEST_VALUE"));
|
|
|
|
const auto root = test_directory("paths");
|
|
CHECK(izo::set_environment_variable("HOME", root.string(), &error));
|
|
CHECK(izo::unset_environment_variable("XDG_DATA_HOME", &error));
|
|
CHECK(izo::unset_environment_variable("XDG_CONFIG_HOME", &error));
|
|
CHECK(izo::unset_environment_variable("XDG_CACHE_HOME", &error));
|
|
CHECK(izo::unset_environment_variable("TMPDIR", &error));
|
|
|
|
CHECK(izo::get_known_path(izo::known_path::app_data) == root / ".local/share");
|
|
CHECK(izo::get_known_path(izo::known_path::local_app_data) == root / ".local/share");
|
|
CHECK(izo::get_known_path(izo::known_path::config) == root / ".config");
|
|
CHECK(izo::get_known_path(izo::known_path::cache) == root / ".cache");
|
|
CHECK(izo::get_known_path(izo::known_path::documents) == root / "Documents");
|
|
CHECK(izo::get_known_path(izo::known_path::downloads) == root / "Downloads");
|
|
CHECK(izo::get_known_path(izo::known_path::desktop) == root / "Desktop");
|
|
CHECK(izo::get_known_path(izo::known_path::temporary) == "/tmp");
|
|
CHECK(!izo::get_known_path(izo::known_path::executable_directory, &error).empty());
|
|
CHECK(izo::get_known_path(izo::known_path::current_directory, &error) ==
|
|
std::filesystem::current_path());
|
|
|
|
CHECK(izo::set_environment_variable("XDG_CONFIG_HOME", (root / "custom-config").string(), &error));
|
|
CHECK(izo::get_known_path(izo::known_path::config) == root / "custom-config");
|
|
std::filesystem::remove_all(root);
|
|
}
|