#include "Efreet.h"
+#include <Ecore_File.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
ef_cb_efreet_data_dirs(void)
{
Eina_List *tmp, *l;
- int ret = 1, i;
+ int ret = 1;
+ unsigned int i;
+ unsigned int ok;
char dirs[128], *val;
char *vals[] = {"/var/tmp/a", "/tmp/b", "/usr/local/share", "/etc", NULL};
char *def_vals[] = {PACKAGE_DATA_DIR, "/usr/share", "/usr/local/share", NULL};
efreet_init();
i = 0;
+ ok = 0;
tmp = efreet_data_dirs_get();
- EINA_LIST_FOREACH(tmp, l, val)
+ for (i = 0; vals[i]; i++)
{
- if (!vals[i])
+ char *found;
+
+ found = eina_list_search_unsorted(tmp, EINA_COMPARE_CB(strcmp), vals[i]);
+ if (!ecore_file_exists(vals[i]) && found)
{
- printf("efreet_data_dirs_get() returned more values then it "
- "should have given %s as input\n", dirs);
+ printf("efreet_data_dirs_get() includes non-existing dir (%s) when "
+ "%s set\n", vals[i], dirs);
ret = 0;
- break;
+ continue;
}
-
- if (strcmp(val, vals[i]))
+ if (ecore_file_exists(vals[i]) && !found)
{
- printf("efreet_data_dirs_get() returned incorrect value (%s) when "
- "%s set\n", val, dirs);
+ printf("efreet_data_dirs_get() is missing dir (%s) when "
+ "%s set\n", vals[i], dirs);
ret = 0;
+ continue;
}
-
- i++;
+ if (ecore_file_exists(vals[i]) && found)
+ ok++;
+ }
+ if (eina_list_count(tmp) != ok)
+ {
+ printf("efreet_data_dirs_get() returned more values then it "
+ "should have given %s as input\n", dirs);
+ ret = 0;
}
efreet_shutdown();
ef_cb_efreet_config_dirs(void)
{
Eina_List *tmp, *l;
- int ret = 1, i;
+ int ret = 1;
+ unsigned int i;
+ unsigned int ok;
char dirs[128], *val;
char *vals[] = {"/var/tmp/a", "/tmp/b", "/usr/local/share", "/etc", NULL};
char *def_vals[] = {"/etc/xdg", NULL};
efreet_init();
i = 0;
+ ok = 0;
tmp = efreet_config_dirs_get();
- EINA_LIST_FOREACH(tmp, l, val)
+ for (i = 0; vals[i]; i++)
{
- if (!vals[i])
+ char *found;
+
+ found = eina_list_search_unsorted(tmp, EINA_COMPARE_CB(strcmp), vals[i]);
+ if (!ecore_file_exists(vals[i]) && found)
{
- printf("efreet_config_dirs_get() returned more values then it "
- "should have given %s as input\n", dirs);
+ printf("efreet_data_dirs_get() includes non-existing dir (%s) when "
+ "%s set\n", vals[i], dirs);
ret = 0;
- break;
+ continue;
}
-
- if (strcmp(val, vals[i]))
+ if (ecore_file_exists(vals[i]) && !found)
{
- printf("efreet_config_dirs_get() returned incorrect value (%s) when "
- "%s set\n", val, dirs);
+ printf("efreet_data_dirs_get() is missing dir (%s) when "
+ "%s set\n", vals[i], dirs);
ret = 0;
+ continue;
}
-
- i++;
+ if (ecore_file_exists(vals[i]) && found)
+ ok++;
+ }
+ if (eina_list_count(tmp) != ok)
+ {
+ printf("efreet_data_dirs_get() returned more values then it "
+ "should have given %s as input\n", dirs);
+ ret = 0;
}
efreet_shutdown();