EFL 1.7 svn doobies
[profile/ivi/efreet.git] / src / tests / efreet_spec_test.c
1 #include <Efreet.h>
2 #include <stdio.h>
3 #include <limits.h>
4 #include "ef_test.h"
5
6 static void dump(Efreet_Menu *menu, const char *path);
7
8 int
9 main(int argc __UNUSED__, char **argv __UNUSED__)
10 {
11     Efreet_Menu *menu;
12
13     if (!efreet_init())
14     {
15         fprintf(stderr, "Failed to init Efreet\n");
16         return 1;
17     }
18
19     menu = efreet_menu_get();
20     if (!menu)
21     {
22         fprintf(stderr, "Failed to read menu\n");
23         return 1;
24     }
25
26     dump(menu, "");
27
28     efreet_menu_free(menu);
29     efreet_shutdown();
30     return 0;
31 }
32
33 static void
34 dump(Efreet_Menu *menu, const char *path)
35 {
36     Efreet_Menu *entry;
37     Eina_List *l;
38
39     if (!menu || !menu->entries) return;
40
41     EINA_LIST_FOREACH(menu->entries, l, entry)
42     {
43         if (entry->type == EFREET_MENU_ENTRY_DESKTOP)
44         {
45             if (!path || !*path) path = "/";
46             printf("%s\t%s\t%s\n", path, entry->id,
47                                     entry->desktop->orig_path);
48         }
49         else if (entry->type == EFREET_MENU_ENTRY_MENU)
50         {
51             char new_path[PATH_MAX];
52
53             snprintf(new_path, sizeof(new_path), "%s%s/", path, entry->name);
54             dump(entry, new_path);
55         }
56     }
57 }