12
EFL_START_TEST(eina_test_vpath_valid)
16
ck_assert_str_eq(eina_vpath_resolve("/"), "/");
17
ck_assert_str_eq(eina_vpath_resolve("./"), "./");
18
ck_assert_str_eq(eina_vpath_resolve("..bla"), "..bla");
19
ck_assert_str_eq(eina_vpath_resolve(".bla"), ".bla");
21
snprintf(test, sizeof(test), "%s/", eina_environment_home_get());
22
ck_assert_str_eq(eina_vpath_resolve("~/"), test);
24
snprintf(test, sizeof(test), "%s/bla", eina_environment_home_get());
25
ck_assert_str_eq(eina_vpath_resolve("(:home:)/bla"), test);
26
ck_assert_str_eq(eina_vpath_resolve("${home}/bla"), test);
27
ck_assert_str_eq(eina_vpath_resolve("/test/for/the/last/case"), "/test/for/the/last/case");
31
EFL_START_TEST(eina_test_vpath_invalid)
34
ck_assert_ptr_eq(eina_vpath_resolve("(:asdfasdfafasdf"), NULL);
37
ck_assert_ptr_eq(eina_vpath_resolve("(:missing_slash:)"), NULL);
40
ck_assert_ptr_eq(eina_vpath_resolve("(:"), NULL);
43
ck_assert_ptr_eq(eina_vpath_resolve("(:home:)"), NULL);
46
ck_assert_ptr_eq(eina_vpath_resolve("(:wrong_meta_key:)/"), NULL);
49
ck_assert_ptr_eq(eina_vpath_resolve("${asdfasdfafasdf"), NULL);
52
ck_assert_ptr_eq(eina_vpath_resolve("${missing_slash}"), NULL);
55
ck_assert_ptr_eq(eina_vpath_resolve("${"), NULL);
58
ck_assert_ptr_eq(eina_vpath_resolve("${home}"), NULL);
61
ck_assert_ptr_eq(eina_vpath_resolve("${wrong_meta_key}/"), NULL);
64
ck_assert_ptr_eq(eina_vpath_resolve("${home:)"), NULL);
67
ck_assert_ptr_eq(eina_vpath_resolve("${wrong_meta_key:)/"), NULL);
73
EFL_START_TEST(eina_test_vpath_snprintf)
75
char *string = "blablabla";
80
eina_vpath_resolve_snprintf(buf, sizeof(buf), "(:home:)/%s/%d/", string, x);
81
snprintf(cmp, sizeof(cmp), "%s/%s/%d/", eina_environment_home_get(), string, x);
82
ck_assert_str_eq(buf, cmp);
84
eina_vpath_resolve_snprintf(buf, sizeof(buf), "${home}/%s/%d/", string, x);
85
snprintf(cmp, sizeof(cmp), "%s/%s/%d/", eina_environment_home_get(), string, x);
86
ck_assert_str_eq(buf, cmp);
90
EFL_START_TEST(eina_test_vpath_user)
97
pwent = getpwuid(getuid());
99
eina_vpath_resolve_snprintf(buf, sizeof(buf), "~%s/foo/bar/king/kong/", pwent->pw_name);
100
snprintf(cmp, sizeof(cmp), "%s/foo/bar/king/kong/", pwent->pw_dir);
101
ck_assert_str_eq(buf, cmp);
106
void eina_test_vpath(TCase *tc)
108
tcase_add_test(tc, eina_test_vpath_invalid);
109
tcase_add_test(tc, eina_test_vpath_valid);
110
tcase_add_test(tc, eina_test_vpath_snprintf);
111
tcase_add_test(tc, eina_test_vpath_user);