1 #ifdef HAVE_CONFIG_H
2 # include "elementary_config.h"
3 #endif
4
5 #define EFL_ACCESS_OBJECT_BETA
6 #include <Elementary.h>
7 #include "elm_suite.h"
8
9
EFL_START_TEST(elm_fileselector_legacy_type_check)10 EFL_START_TEST(elm_fileselector_legacy_type_check)
11 {
12 Evas_Object *win, *fileselector;
13 const char *type;
14
15 win = win_add(NULL, "fileselector", ELM_WIN_BASIC);
16
17 fileselector = elm_fileselector_add(win);
18
19 type = elm_object_widget_type_get(fileselector);
20 ck_assert(type != NULL);
21 ck_assert(!strcmp(type, "Elm_Fileselector"));
22
23 type = evas_object_type_get(fileselector);
24 ck_assert(type != NULL);
25 ck_assert(!strcmp(type, "elm_fileselector"));
26
27 }
28 EFL_END_TEST
29
EFL_START_TEST(elm_atspi_role_get)30 EFL_START_TEST(elm_atspi_role_get)
31 {
32 Evas_Object *win, *fileselector;
33 Efl_Access_Role role;
34
35 win = win_add(NULL, "fileselector", ELM_WIN_BASIC);
36
37 fileselector = elm_fileselector_add(win);
38 role = efl_access_object_role_get(fileselector);
39
40 ck_assert(role == EFL_ACCESS_ROLE_FILE_CHOOSER);
41
42 }
43 EFL_END_TEST
44
45 #if 0
46
47 static Eina_Bool
48 timer_expired_cb(void *user_data)
49 {
50 Eina_Bool *did_timeout = user_data;
51
52 *did_timeout = EINA_TRUE;
53 ecore_main_loop_quit();
54
55 return EINA_TRUE;
56 }
57
58 static Eina_Bool
59 idler_done_cb(void *user_data)
60 {
61 Eina_Bool *done = user_data;
62
63 if (*done) ecore_main_loop_quit();
64
65 return EINA_TRUE;
66 }
67
68 static Eina_Bool
69 fileselector_test_helper_wait_flag(double in, Eina_Bool *done)
70 {
71 Eina_Bool did_timeout = EINA_FALSE;
72 Ecore_Timer *tm;
73 Ecore_Idle_Enterer *idle;
74
75 tm = ecore_timer_add(in, timer_expired_cb, &did_timeout);
76 idle = ecore_idle_enterer_add(idler_done_cb, done);
77
78 ecore_main_loop_begin();
79
80 ecore_idle_enterer_del(idle);
81 ecore_timer_del(tm);
82
83 return !did_timeout;
84 }
85
86 static void
87 _ready_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
88 {
89 Eina_Bool *ret = data;
90 *ret = EINA_TRUE;
91
92 ecore_main_loop_quit();
93 }
94
95
96 EFL_START_TEST(elm_fileselector_selected)
97 {
98 Evas_Object *win, *fileselector;
99 Eina_Tmpstr *tmp_path;
100 Eina_Stringshare *exist, *no_exist;
101 FILE *fp;
102 char *path;
103 Eina_Bool open, selected;
104
105 if (!eina_file_mkdtemp("elm_test-XXXXXX", &tmp_path))
106 {
107 /* can not test */
108 ck_assert(EINA_FALSE);
109 return;
110 }
111
112 path = strdup(tmp_path);
113 eina_tmpstr_del(tmp_path);
114
115 exist = eina_stringshare_printf("%s/exist", path);
116 no_exist = eina_stringshare_printf("%s/no_exist", path);
117 fp = fopen(exist, "w");
118 fclose(fp);
119
120 win = win_add(NULL, "fileselector", ELM_WIN_BASIC);
121
122 fileselector = elm_fileselector_add(win);
123 evas_object_smart_callback_add(fileselector, "directory,open", _ready_cb, &open);
124
125 ck_assert(!elm_fileselector_selected_set(fileselector, no_exist));
126
127 open = EINA_FALSE;
128 ck_assert(elm_fileselector_selected_set(fileselector, path));
129 ck_assert(fileselector_test_helper_wait_flag(10, &open));
130
131 ck_assert_str_eq(elm_fileselector_selected_get(fileselector), path);
132
133 evas_object_smart_callback_del(fileselector, "directory,open", _ready_cb);
134 evas_object_smart_callback_add(fileselector, "selected", _ready_cb, &selected);
135
136 selected = EINA_FALSE;
137 ck_assert(elm_fileselector_selected_set(fileselector, exist));
138 ck_assert(fileselector_test_helper_wait_flag(10, &selected));
139 ck_assert(selected == EINA_TRUE);
140
141 ck_assert_str_eq(elm_fileselector_selected_get(fileselector), exist);
142
143 eina_stringshare_del(exist);
144 eina_stringshare_del(no_exist);
145 free(path);
146
147 }
148 EFL_END_TEST
149
150 #endif
151
elm_test_fileselector(TCase * tc)152 void elm_test_fileselector(TCase *tc)
153 {
154 tcase_add_test(tc, elm_fileselector_legacy_type_check);
155 tcase_add_test(tc, elm_atspi_role_get);
156 //FIXME this should be reenabled when issues on travis are fixed with this.
157 //tcase_add_test(tc, elm_fileselector_selected);
158 }
159
160