9
#include <Eldbus_Model.h>
11
#include "eldbus_test_eldbus_model.h"
12
#include "eldbus_suite.h"
14
static Eo *dbus_object1 = NULL;
15
static Eo *dbus_proxy = NULL;
18
_leave(void *data EINA_UNUSED, const Eina_Value v,
19
const Eina_Future *dead EINA_UNUSED)
21
ecore_main_loop_quit();
27
_count_changed(void *data EINA_UNUSED, const Efl_Event *ev)
31
f = efl_loop_job(efl_provider_find(ev->object, EFL_LOOP_CLASS));
32
eina_future_then(f, _leave, NULL, NULL);
38
dbus_object1 = create_object();
40
efl_event_callback_add(dbus_object1, EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED, _count_changed, NULL);
41
efl_model_children_count_get(dbus_object1);
43
ecore_main_loop_begin();
45
dbus_proxy = eldbus_model_proxy_from_object_get(dbus_object1, ELDBUS_FDO_INTERFACE);
46
ck_assert_ptr_ne(NULL, dbus_proxy);
52
efl_del(dbus_object1);
55
EFL_START_TEST(properties_get)
57
Eina_Iterator *properties = NULL;
59
properties = efl_model_properties_get(dbus_proxy);
60
ck_assert_ptr_ne(NULL, properties);
66
eina_iterator_free(properties);
70
EFL_START_TEST(property_get)
76
value = efl_model_property_get(dbus_proxy, "nonexistent");
78
fail_if(eina_value_type_get(value) != EINA_VALUE_TYPE_ERROR);
79
eina_value_error_get(value, &err);
80
fail_if(err != EFL_MODEL_ERROR_NOT_FOUND);
82
eina_value_free(value);
86
EFL_START_TEST(property_set)
92
eina_value_setup(&value, EINA_VALUE_TYPE_INT);
93
eina_value_set(&value, 1);
94
future = efl_model_property_set(dbus_proxy, "nonexistent", &value);
95
check_efl_model_future_error(future, &EFL_MODEL_ERROR_NOT_FOUND);
96
eina_value_flush(&value);
101
_test_dbus_proxy_children_count(Eo *efl_model)
103
efl_event_callback_add(efl_model, EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED, _count_changed, NULL);
104
efl_model_children_count_get(efl_model);
106
ecore_main_loop_begin();
109
check_efl_model_children_count_ge(efl_model, 2);
112
EFL_START_TEST(children_count)
114
_test_dbus_proxy_children_count(dbus_proxy);
118
EFL_START_TEST(children_slice_get)
120
efl_event_callback_add(dbus_proxy, EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED, _count_changed, NULL);
121
efl_model_children_count_get(dbus_proxy);
123
ecore_main_loop_begin();
125
check_efl_model_children_slice_get(dbus_proxy);
129
EFL_START_TEST(child_add)
132
child = efl_model_child_add(dbus_proxy);
133
ck_assert_ptr_eq(NULL, child);
138
EFL_START_TEST(child_del)
142
unsigned int expected_children_count = 0;
143
unsigned int actual_children_count = 0;
145
expected_children_count = efl_model_children_count_get(dbus_proxy);
146
ck_assert_ptr_ne(NULL, future);
148
child = efl_model_first_child_get(dbus_proxy);
149
efl_model_child_del(dbus_proxy, child);
151
actual_children_count = efl_model_children_count_get(dbus_proxy);
153
ck_assert_int_le(expected_children_count, actual_children_count);
158
void eldbus_test_eldbus_model_proxy(TCase *tc)
160
tcase_add_checked_fixture(tc, _setup, _teardown);
161
tcase_add_test(tc, properties_get);
162
tcase_add_test(tc, property_get);
163
tcase_add_test(tc, property_set);
164
tcase_add_test(tc, children_count);
165
tcase_add_test(tc, children_slice_get);
166
tcase_add_test(tc, child_add);