diff --git a/legacy/efreet/src/tests/ef_data_dirs.c b/legacy/efreet/src/tests/ef_data_dirs.c index 57228c407c..d6c629b5ea 100644 --- a/legacy/efreet/src/tests/ef_data_dirs.c +++ b/legacy/efreet/src/tests/ef_data_dirs.c @@ -3,6 +3,58 @@ #include #include +int +ef_cb_efreet_data_home(void) +{ + const char *tmp; + int ret = 1; + + efreet_shutdown(); + setenv("XDG_DATA_HOME", "/var/tmp", 1); + efreet_init(); + + tmp = efreet_data_home_get(); + if (strcmp(tmp, "/var/tmp")) + { + printf("efreet_data_home_get() returned incorrect " + "value (%s) on XDG_DATA_HOME=/var/tmp\n", tmp); + ret = 0; + } + + /* reset efreet here so we can set a new home dir */ + efreet_shutdown(); + unsetenv("XDG_DATA_HOME"); + setenv("HOME", "/home/tmp", 1); + efreet_init(); + + tmp = efreet_data_home_get(); + if (strcmp(tmp, "/home/tmp/.local/share")) + { + printf("efreet_data_home_get() returned incorrect " + "value (%s) on blank XDG_DATA_HOME\n", tmp); + ret = 0; + } + + /* reset efreet here so we can set a new home dir */ + efreet_shutdown(); + unsetenv("XDG_DATA_HOME"); + unsetenv("HOME"); +#ifdef _WIN32 + unsetenv("USERPROFILE"); +#endif + efreet_init(); + + tmp = efreet_data_home_get(); + if (strcmp(tmp, "/tmp/.local/share")) + { + printf("efreet_data_home_get() returned incorrect " + "value (%s) on blank XDG_DATA_HOME and blank HOME\n", tmp); + ret = 0; + } + + return ret; +} + int ef_cb_efreet_config_home(void) { diff --git a/legacy/efreet/src/tests/main.c b/legacy/efreet/src/tests/main.c index cd509cfd9b..de6cf37add 100644 --- a/legacy/efreet/src/tests/main.c +++ b/legacy/efreet/src/tests/main.c @@ -9,6 +9,7 @@ #include #include +int ef_cb_efreet_data_home(void); int ef_cb_efreet_config_home(void); int ef_cb_efreet_cache_home(void); int ef_cb_efreet_data_dirs(void); @@ -46,6 +47,7 @@ struct Efreet_Test }; static Efreet_Test tests[] = { + {"Data Home", ef_cb_efreet_data_home}, {"Config Home", ef_cb_efreet_config_home}, {"Cache Home", ef_cb_efreet_cache_home}, {"Data Directories", ef_cb_efreet_data_dirs},