EFL 1.7 svn doobies
[profile/ivi/efreet.git] / src / tests / ef_cache.c
1 #include "Efreet.h"
2 #include <stdio.h>
3 #include <Ecore.h>
4 #include "ef_test.h"
5
6 #if 0
7 EAPI Efreet_Desktop *efreet_util_desktop_file_id_find(const char *file_id);
8
9 EAPI Eina_List *efreet_util_desktop_generic_name_glob_list(const char *glob);
10 EAPI Eina_List *efreet_util_desktop_comment_glob_list(const char *glob);
11 #endif
12
13 static Eina_Bool icon_cb = EINA_FALSE;
14 static Eina_Bool desktop_cb = EINA_FALSE;
15
16 static void
17 check(void)
18 {
19     Eina_List *list;
20     Efreet_Desktop *desktop, *desktop2;
21     double start;
22     const char *id;
23
24     // EAPI char *efreet_util_path_to_file_id(const char *path);
25     start = ecore_time_get();
26     id = efreet_util_path_to_file_id("/usr/share/applications/gnome-panel.desktop");
27     if (id)
28     {
29         printf("efreet_util_path_to_file_id(/usr/share/applications/gnome-panel.desktop): %s %.6f\n", id, (ecore_time_get() - start));
30     }
31     else
32         printf("efreet_util_path_to_file_id(/usr/share/applications/gnome-panel.desktop): NULL %.6f\n", (ecore_time_get() - start));
33
34     //EAPI Efreet_Desktop *efreet_util_desktop_name_find(const char *name);
35     start = ecore_time_get();
36     desktop = efreet_util_desktop_name_find("Evolution");
37     if (desktop)
38         printf("efreet_util_desktop_name_find(Evolution): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start));
39     else
40         printf("efreet_util_desktop_name_find(Evolution): NULL %.6f\n", (ecore_time_get() - start));
41     efreet_desktop_free(desktop);
42
43     //EAPI Efreet_Desktop *efreet_util_desktop_generic_name_find(const char *generic_name);
44     start = ecore_time_get();
45     desktop = efreet_util_desktop_generic_name_find("Spreadsheet");
46     if (desktop)
47         printf("efreet_util_desktop_generic_name_find(Spreadsheet): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start));
48     else
49         printf("efreet_util_desktop_generic_name_find(Spreadsheet): NULL %.6f\n", (ecore_time_get() - start));
50     efreet_desktop_free(desktop);
51
52     //EAPI Efreet_Desktop *efreet_util_desktop_wm_class_find(const char *wmname, const char *wmclass);
53     start = ecore_time_get();
54     desktop = efreet_util_desktop_wm_class_find("Firefox", NULL);
55     if (desktop)
56         printf("efreet_util_desktop_wm_class_find(Firefox): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start));
57     else
58         printf("efreet_util_desktop_wm_class_find(Firefox): NULL %.6f\n", (ecore_time_get() - start));
59     efreet_desktop_free(desktop);
60
61     //EAPI Efreet_Desktop *efreet_util_desktop_exec_find(const char *exec);
62     start = ecore_time_get();
63     desktop = efreet_util_desktop_exec_find("/usr/bin/update-manager");
64     if (desktop)
65         printf("efreet_util_desktop_exec_find(update-manager): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start));
66     else
67         printf("efreet_util_desktop_exec_find(update-manager): NULL %.6f\n", (ecore_time_get() - start));
68     efreet_desktop_free(desktop);
69
70     //EAPI Eina_List *efreet_util_desktop_name_glob_list(const char *glob);
71     start = ecore_time_get();
72     list = efreet_util_desktop_name_glob_list("Ubuntu*");
73     if (list)
74     {
75         EINA_LIST_FREE(list, desktop)
76         {
77             printf("efreet_util_desktop_name_glob_list(Ubuntu*): %s\n", desktop->name);
78             efreet_desktop_free(desktop);
79         }
80     }
81     printf("time: %.6f\n", (ecore_time_get() - start));
82
83     //EAPI Eina_List *efreet_util_desktop_mime_list(const char *mime);
84     start = ecore_time_get();
85     list = efreet_util_desktop_mime_list("application/ogg");
86     if (list)
87     {
88         EINA_LIST_FREE(list, desktop)
89         {
90             printf("efreet_util_desktop_mime_list(application/ogg): %s\n", desktop->name);
91             efreet_desktop_free(desktop);
92         }
93     }
94     printf("time: %.6f\n", (ecore_time_get() - start));
95
96     //EAPI Eina_List *efreet_util_desktop_exec_glob_list(const char *glob);
97     start = ecore_time_get();
98     list = efreet_util_desktop_exec_glob_list("*gnome*");
99     if (list)
100     {
101         EINA_LIST_FREE(list, desktop)
102         {
103             printf("efreet_util_desktop_exec_glob_list(*gnome*): %s\n", desktop->exec);
104             efreet_desktop_free(desktop);
105         }
106     }
107     printf("time: %.6f\n", (ecore_time_get() - start));
108
109     //EAPI Eina_List *efreet_util_desktop_categories_list(void);
110     start = ecore_time_get();
111     list = efreet_util_desktop_categories_list();
112     if (list)
113     {
114         EINA_LIST_FREE(list, id)
115         {
116             printf("efreet_util_desktop_categories_list(): %s\n", id);
117         }
118     }
119     printf("time: %.6f\n", (ecore_time_get() - start));
120
121     //EAPI Eina_List *efreet_util_desktop_category_list(const char *category);
122     start = ecore_time_get();
123     list = efreet_util_desktop_category_list("Graphics");
124     if (list)
125     {
126         EINA_LIST_FREE(list, desktop)
127         {
128             printf("efreet_util_desktop_category_list(Graphics): %s\n", desktop->name);
129             efreet_desktop_free(desktop);
130         }
131     }
132     printf("time: %.6f\n", (ecore_time_get() - start));
133
134     desktop = efreet_desktop_get("/opt/google/chrome/google-chrome.desktop");
135     if (desktop)
136         printf("%s: %d %d\n", desktop->orig_path, desktop->ref, desktop->eet);
137     desktop2 = efreet_desktop_new("/opt/google/chrome/google-chrome.desktop");
138     if (desktop2)
139     {
140         printf("%s: %d %d\n", desktop2->orig_path, desktop2->ref, desktop2->eet);
141         efreet_desktop_free(desktop2);
142     }
143     if (desktop)
144         efreet_desktop_free(desktop);
145
146     desktop = efreet_desktop_get("/usr/share/applications/firefox.desktop");
147     if (desktop)
148         printf("%s: %d %d\n", desktop->orig_path, desktop->ref, desktop->eet);
149     desktop2 = efreet_desktop_new("/usr/share/applications/firefox.desktop");
150     if (desktop2)
151     {
152         printf("%s: %d %d\n", desktop2->orig_path, desktop2->ref, desktop2->eet);
153         efreet_desktop_free(desktop2);
154     }
155     if (desktop)
156         efreet_desktop_free(desktop);
157     fflush(stdout);
158 }
159
160 static Eina_Bool
161 icon_handler_cb(void *data __UNUSED__, int event_type __UNUSED__, void *event __UNUSED__)
162 {
163     icon_cb = EINA_TRUE;
164     if (icon_cb && desktop_cb)
165     {
166         check();
167         ecore_main_loop_quit();
168     }
169     return ECORE_CALLBACK_PASS_ON;
170 }
171
172 static Eina_Bool
173 desktop_handler_cb(void *data __UNUSED__, int event_type __UNUSED__, void *event __UNUSED__)
174 {
175     desktop_cb = EINA_TRUE;
176     if (icon_cb && desktop_cb)
177     {
178         check();
179         ecore_main_loop_quit();
180     }
181     return ECORE_CALLBACK_PASS_ON;
182 }
183
184 int
185 main(int argc __UNUSED__, char **argv __UNUSED__)
186 {
187     Ecore_Event_Handler *icon_handler;
188     Ecore_Event_Handler *desktop_handler;
189
190     if (!efreet_init()) return 1;
191     icon_handler = ecore_event_handler_add(EFREET_EVENT_ICON_CACHE_UPDATE, icon_handler_cb, NULL);
192     desktop_handler = ecore_event_handler_add(EFREET_EVENT_DESKTOP_CACHE_UPDATE, desktop_handler_cb, NULL);
193     check();
194     ecore_main_loop_begin();
195     ecore_event_handler_del(icon_handler);
196     ecore_event_handler_del(desktop_handler);
197     efreet_shutdown();
198     return 0;
199 }