summaryrefslogtreecommitdiff
path: root/src/tests/ef_cache.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/ef_cache.c')
-rw-r--r--src/tests/ef_cache.c199
1 files changed, 199 insertions, 0 deletions
diff --git a/src/tests/ef_cache.c b/src/tests/ef_cache.c
new file mode 100644
index 0000000..3cbee9e
--- /dev/null
+++ b/src/tests/ef_cache.c
@@ -0,0 +1,199 @@
+#include "Efreet.h"
+#include <stdio.h>
+#include <Ecore.h>
+#include "ef_test.h"
+
+#if 0
+EAPI Efreet_Desktop *efreet_util_desktop_file_id_find(const char *file_id);
+
+EAPI Eina_List *efreet_util_desktop_generic_name_glob_list(const char *glob);
+EAPI Eina_List *efreet_util_desktop_comment_glob_list(const char *glob);
+#endif
+
+static Eina_Bool icon_cb = EINA_FALSE;
+static Eina_Bool desktop_cb = EINA_FALSE;
+
+static void
+check(void)
+{
+ Eina_List *list;
+ Efreet_Desktop *desktop, *desktop2;
+ double start;
+ const char *id;
+
+ // EAPI char *efreet_util_path_to_file_id(const char *path);
+ start = ecore_time_get();
+ id = efreet_util_path_to_file_id("/usr/share/applications/gnome-panel.desktop");
+ if (id)
+ {
+ printf("efreet_util_path_to_file_id(/usr/share/applications/gnome-panel.desktop): %s %.6f\n", id, (ecore_time_get() - start));
+ }
+ else
+ printf("efreet_util_path_to_file_id(/usr/share/applications/gnome-panel.desktop): NULL %.6f\n", (ecore_time_get() - start));
+
+ //EAPI Efreet_Desktop *efreet_util_desktop_name_find(const char *name);
+ start = ecore_time_get();
+ desktop = efreet_util_desktop_name_find("Evolution");
+ if (desktop)
+ printf("efreet_util_desktop_name_find(Evolution): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start));
+ else
+ printf("efreet_util_desktop_name_find(Evolution): NULL %.6f\n", (ecore_time_get() - start));
+ efreet_desktop_free(desktop);
+
+ //EAPI Efreet_Desktop *efreet_util_desktop_generic_name_find(const char *generic_name);
+ start = ecore_time_get();
+ desktop = efreet_util_desktop_generic_name_find("Spreadsheet");
+ if (desktop)
+ printf("efreet_util_desktop_generic_name_find(Spreadsheet): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start));
+ else
+ printf("efreet_util_desktop_generic_name_find(Spreadsheet): NULL %.6f\n", (ecore_time_get() - start));
+ efreet_desktop_free(desktop);
+
+ //EAPI Efreet_Desktop *efreet_util_desktop_wm_class_find(const char *wmname, const char *wmclass);
+ start = ecore_time_get();
+ desktop = efreet_util_desktop_wm_class_find("Firefox", NULL);
+ if (desktop)
+ printf("efreet_util_desktop_wm_class_find(Firefox): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start));
+ else
+ printf("efreet_util_desktop_wm_class_find(Firefox): NULL %.6f\n", (ecore_time_get() - start));
+ efreet_desktop_free(desktop);
+
+ //EAPI Efreet_Desktop *efreet_util_desktop_exec_find(const char *exec);
+ start = ecore_time_get();
+ desktop = efreet_util_desktop_exec_find("/usr/bin/update-manager");
+ if (desktop)
+ printf("efreet_util_desktop_exec_find(update-manager): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start));
+ else
+ printf("efreet_util_desktop_exec_find(update-manager): NULL %.6f\n", (ecore_time_get() - start));
+ efreet_desktop_free(desktop);
+
+ //EAPI Eina_List *efreet_util_desktop_name_glob_list(const char *glob);
+ start = ecore_time_get();
+ list = efreet_util_desktop_name_glob_list("Ubuntu*");
+ if (list)
+ {
+ EINA_LIST_FREE(list, desktop)
+ {
+ printf("efreet_util_desktop_name_glob_list(Ubuntu*): %s\n", desktop->name);
+ efreet_desktop_free(desktop);
+ }
+ }
+ printf("time: %.6f\n", (ecore_time_get() - start));
+
+ //EAPI Eina_List *efreet_util_desktop_mime_list(const char *mime);
+ start = ecore_time_get();
+ list = efreet_util_desktop_mime_list("application/ogg");
+ if (list)
+ {
+ EINA_LIST_FREE(list, desktop)
+ {
+ printf("efreet_util_desktop_mime_list(application/ogg): %s\n", desktop->name);
+ efreet_desktop_free(desktop);
+ }
+ }
+ printf("time: %.6f\n", (ecore_time_get() - start));
+
+ //EAPI Eina_List *efreet_util_desktop_exec_glob_list(const char *glob);
+ start = ecore_time_get();
+ list = efreet_util_desktop_exec_glob_list("*gnome*");
+ if (list)
+ {
+ EINA_LIST_FREE(list, desktop)
+ {
+ printf("efreet_util_desktop_exec_glob_list(*gnome*): %s\n", desktop->exec);
+ efreet_desktop_free(desktop);
+ }
+ }
+ printf("time: %.6f\n", (ecore_time_get() - start));
+
+ //EAPI Eina_List *efreet_util_desktop_categories_list(void);
+ start = ecore_time_get();
+ list = efreet_util_desktop_categories_list();
+ if (list)
+ {
+ EINA_LIST_FREE(list, id)
+ {
+ printf("efreet_util_desktop_categories_list(): %s\n", id);
+ }
+ }
+ printf("time: %.6f\n", (ecore_time_get() - start));
+
+ //EAPI Eina_List *efreet_util_desktop_category_list(const char *category);
+ start = ecore_time_get();
+ list = efreet_util_desktop_category_list("Graphics");
+ if (list)
+ {
+ EINA_LIST_FREE(list, desktop)
+ {
+ printf("efreet_util_desktop_category_list(Graphics): %s\n", desktop->name);
+ efreet_desktop_free(desktop);
+ }
+ }
+ printf("time: %.6f\n", (ecore_time_get() - start));
+
+ desktop = efreet_desktop_get("/opt/google/chrome/google-chrome.desktop");
+ if (desktop)
+ printf("%s: %d %d\n", desktop->orig_path, desktop->ref, desktop->eet);
+ desktop2 = efreet_desktop_new("/opt/google/chrome/google-chrome.desktop");
+ if (desktop2)
+ {
+ printf("%s: %d %d\n", desktop2->orig_path, desktop2->ref, desktop2->eet);
+ efreet_desktop_free(desktop2);
+ }
+ if (desktop)
+ efreet_desktop_free(desktop);
+
+ desktop = efreet_desktop_get("/usr/share/applications/firefox.desktop");
+ if (desktop)
+ printf("%s: %d %d\n", desktop->orig_path, desktop->ref, desktop->eet);
+ desktop2 = efreet_desktop_new("/usr/share/applications/firefox.desktop");
+ if (desktop2)
+ {
+ printf("%s: %d %d\n", desktop2->orig_path, desktop2->ref, desktop2->eet);
+ efreet_desktop_free(desktop2);
+ }
+ if (desktop)
+ efreet_desktop_free(desktop);
+ fflush(stdout);
+}
+
+static Eina_Bool
+icon_handler_cb(void *data __UNUSED__, int event_type __UNUSED__, void *event __UNUSED__)
+{
+ icon_cb = EINA_TRUE;
+ if (icon_cb && desktop_cb)
+ {
+ check();
+ ecore_main_loop_quit();
+ }
+ return ECORE_CALLBACK_PASS_ON;
+}
+
+static Eina_Bool
+desktop_handler_cb(void *data __UNUSED__, int event_type __UNUSED__, void *event __UNUSED__)
+{
+ desktop_cb = EINA_TRUE;
+ if (icon_cb && desktop_cb)
+ {
+ check();
+ ecore_main_loop_quit();
+ }
+ return ECORE_CALLBACK_PASS_ON;
+}
+
+int
+main(int argc __UNUSED__, char **argv __UNUSED__)
+{
+ Ecore_Event_Handler *icon_handler;
+ Ecore_Event_Handler *desktop_handler;
+
+ if (!efreet_init()) return 1;
+ icon_handler = ecore_event_handler_add(EFREET_EVENT_ICON_CACHE_UPDATE, icon_handler_cb, NULL);
+ desktop_handler = ecore_event_handler_add(EFREET_EVENT_DESKTOP_CACHE_UPDATE, desktop_handler_cb, NULL);
+ check();
+ ecore_main_loop_begin();
+ ecore_event_handler_del(icon_handler);
+ ecore_event_handler_del(desktop_handler);
+ efreet_shutdown();
+ return 0;
+}