summaryrefslogtreecommitdiff
path: root/src/tests/eio/eio_model_test_monitor_add.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/eio/eio_model_test_monitor_add.c')
-rw-r--r--src/tests/eio/eio_model_test_monitor_add.c133
1 files changed, 59 insertions, 74 deletions
diff --git a/src/tests/eio/eio_model_test_monitor_add.c b/src/tests/eio/eio_model_test_monitor_add.c
index e6b14d57b8..392aa31f0f 100644
--- a/src/tests/eio/eio_model_test_monitor_add.c
+++ b/src/tests/eio/eio_model_test_monitor_add.c
@@ -10,134 +10,119 @@
#include <Efl.h>
#include <stdio.h>
-#include <check.h>
+#include "eio_suite.h"
Eina_Tmpstr* temp_filename = NULL;
const char* tmpdir = NULL;
Eina_Bool children_deleted = EINA_FALSE;
-struct _pair
-{
- Eo *parent, *child;
-};
-
-void _children_removed_get_value_cb(void* data EINA_UNUSED, Efl_Event const* event)
-{
- Efl_Future_Event_Success* info = event->info;
- Eina_Value* value = info->value;
- char* filename = eina_value_to_string(value);
- if(temp_filename && strcmp(filename, temp_filename) == 0)
- ecore_main_loop_quit();
- free(filename);
-
- ecore_main_loop_quit();
-}
-
static void
_children_removed_cb(void *data EINA_UNUSED, const Efl_Event* event)
{
- if(children_deleted)
- {
- Efl_Model_Children_Event* evt = event->info;
- Efl_Future* future;
+ Efl_Model_Children_Event* evt = event->info;
+ Eina_Value *path;
+ char *str;
- future = efl_model_property_get(evt->child, "path");
+ fail_if(evt->child == NULL);
+ path = efl_model_property_get(evt->child, "path");
+ fail_if(path == NULL);
+ str = eina_value_to_string(path);
+ fail_if(str == NULL);
- efl_future_then(future, _children_removed_get_value_cb, NULL, NULL, NULL);
- }
-}
+ if (temp_filename && strcmp(str, temp_filename) == 0)
+ ecore_main_loop_quit();
-struct _added_get_value_data
-{
- Eo *object, *child;
-};
-typedef struct _added_get_value_data added_get_value_data;
+ free(str);
+ eina_value_free(path);
+}
-void _children_added_get_value_cb(void* d, Efl_Event const* event)
+static Eina_Value
+_children_get(void *data,
+ const Eina_Value v,
+ const Eina_Future *dead_future EINA_UNUSED)
{
- Efl_Future_Event_Success* info = event->info;
- Eina_Value* value = info->value;
- added_get_value_data* data = d;
+ Efl_Model *filemodel = data;
+ Eo *child = NULL;
+ unsigned int i, len;
- char* filename = eina_value_to_string(value);
+ fail_if(eina_value_type_get(&v) != EINA_VALUE_TYPE_ARRAY);
- if(temp_filename && strcmp(temp_filename, filename) == 0)
+ EINA_VALUE_ARRAY_FOREACH(&v, len, i, child)
{
- children_deleted = EINA_TRUE;
- efl_model_child_del(data->object, data->child);
+ Eina_Value *path;
+ char *str;
+
+ path = efl_model_property_get(child, "path");
+ fail_if(path == NULL);
+ str = eina_value_to_string(path);
+ fail_if(str == NULL);
+
+ if (strcmp(temp_filename, str) == 0)
+ {
+ children_deleted = EINA_TRUE;
+ efl_model_child_del(filemodel, child);
+ }
+ free(str);
+ eina_value_free(path);
}
- free(filename);
+
+ return v;
}
static void
_children_added_cb(void *d EINA_UNUSED, const Efl_Event* event)
{
Efl_Model_Children_Event* evt = event->info;
- Efl_Future* future;
-
- future = efl_model_property_get(evt->child, "path");
-
- added_get_value_data* data = malloc(sizeof(added_get_value_data));
- data->object = event->object;
- data->child = evt->child;
- efl_future_then(future, _children_added_get_value_cb, NULL, NULL, data);
+ Eina_Future *future;
+
+ future = efl_model_children_slice_get(event->object, evt->index, 1);
+ eina_future_then(future, _children_get, event->object);
}
-static void
-_create_file(void *data EINA_UNUSED, Efl_Event const* event EINA_UNUSED)
+static Eina_Value
+_create_file(void *data EINA_UNUSED,
+ const Eina_Value v,
+ const Eina_Future *dead_future EINA_UNUSED)
{
int fd;
+
if((fd = eina_file_mkstemp("prefixXXXXXX.ext", &temp_filename)) > 0)
{
close(fd);
}
-}
-
-static void
-_create_file_error(void *data EINA_UNUSED, Efl_Event const* event EINA_UNUSED)
-{
- ck_abort_msg(0, "Error Promise cb called in Create file");
- ecore_main_loop_quit();
+ return v;
}
-START_TEST(eio_model_test_test_monitor_add)
+EFL_START_TEST(eio_model_test_test_monitor_add)
{
Eo *filemodel = NULL;
-
- fail_if(!eina_init(), "ERROR: Cannot init Eina!\n");
- fail_if(!ecore_init(), "ERROR: Cannot init Ecore!\n");
- fail_if(!efl_object_init(), "ERROR: Cannot init EO!\n");
- fail_if(!eio_init(), "ERROR: Cannot init EIO!\n");
+ Eina_Future* future;
tmpdir = eina_environment_tmp_get();
- filemodel = efl_add(EIO_MODEL_CLASS, efl_main_loop_get(), eio_model_path_set(efl_added, tmpdir));
+ filemodel = efl_add(EIO_MODEL_CLASS,
+ efl_main_loop_get(),
+ eio_model_path_set(efl_added, tmpdir));
fail_if(!filemodel, "ERROR: Cannot init model!\n");
efl_event_callback_add(filemodel, EFL_MODEL_EVENT_CHILD_ADDED, &_children_added_cb, filemodel);
efl_event_callback_add(filemodel, EFL_MODEL_EVENT_CHILD_REMOVED, &_children_removed_cb, NULL);
- Efl_Future* future;
- future = efl_model_children_slice_get(filemodel, 0, 0);
+ future = efl_model_children_slice_get(filemodel, 0, efl_model_children_count_get(filemodel));
- efl_future_then(future, &_create_file, &_create_file_error, NULL, NULL);
+ eina_future_then(future, &_create_file, NULL);
ecore_main_loop_begin();
- efl_unref(filemodel);
-
- eio_shutdown();
- ecore_shutdown();
- eina_shutdown();
+ efl_del(filemodel);
fail_if(!children_deleted);
}
-END_TEST
+EFL_END_TEST
void
eio_model_test_monitor_add(TCase *tc)
{
tcase_add_test(tc, eio_model_test_test_monitor_add);
}
-