atspi: implement add/del callbacks. Add genlist item tests
This commit is contained in:
parent
824bdbacb4
commit
7a7cc2094c
|
@ -4263,6 +4263,7 @@ EOLIAN static void
|
|||
_elm_widget_item_eo_base_destructor(Eo *eo_item, Elm_Widget_Item_Data *item)
|
||||
{
|
||||
Elm_Translate_String_Data *ts;
|
||||
Eo *parent;
|
||||
|
||||
ELM_WIDGET_ITEM_CHECK_OR_RETURN(item);
|
||||
|
||||
|
@ -4289,6 +4290,10 @@ _elm_widget_item_eo_base_destructor(Eo *eo_item, Elm_Widget_Item_Data *item)
|
|||
if (item->description)
|
||||
eina_stringshare_del(item->description);
|
||||
|
||||
eo_do(eo_item, parent = elm_interface_atspi_accessible_parent_get());
|
||||
if (parent && !eo_destructed_is(parent))
|
||||
elm_interface_atspi_accessible_children_changed_del_signal_emit(parent, eo_item);
|
||||
|
||||
EINA_MAGIC_SET(item, EINA_MAGIC_NONE);
|
||||
|
||||
eo_do_super(eo_item, ELM_WIDGET_ITEM_CLASS, eo_destructor());
|
||||
|
|
|
@ -8,6 +8,9 @@
|
|||
|
||||
static Evas_Object *win, *genlist;
|
||||
static Elm_Gen_Item_Class itc;
|
||||
static Eo *current;
|
||||
static int counter;
|
||||
static Elm_Atspi_Event_Children_Changed_Data ev_data;
|
||||
|
||||
void test_init(void)
|
||||
{
|
||||
|
@ -84,9 +87,110 @@ START_TEST(elm_atspi_children_get2)
|
|||
}
|
||||
END_TEST
|
||||
|
||||
static Eina_Bool
|
||||
_children_changed_cb(void *data EINA_UNUSED, Eo *obj EINA_UNUSED,
|
||||
const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{
|
||||
ev_data = *(Elm_Atspi_Event_Children_Changed_Data*)event_info;
|
||||
current = obj;
|
||||
counter++;
|
||||
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
START_TEST(elm_atspi_children_events_add)
|
||||
{
|
||||
test_init();
|
||||
|
||||
current = NULL;
|
||||
counter = 0;
|
||||
|
||||
Elm_Object_Item *it[3];
|
||||
|
||||
eo_do(genlist, eo_event_callback_add(ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_CHILDREN_CHANGED, _children_changed_cb, NULL));
|
||||
|
||||
it[0] = elm_genlist_item_append(genlist, &itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
|
||||
ck_assert(genlist == current);
|
||||
ck_assert(counter == 1);
|
||||
ck_assert(ev_data.is_added == EINA_TRUE);
|
||||
ck_assert(ev_data.child == it[0]);
|
||||
|
||||
it[1] = elm_genlist_item_prepend(genlist, &itc, it[0], NULL, ELM_GENLIST_ITEM_GROUP, NULL, NULL);
|
||||
ck_assert(genlist == current);
|
||||
ck_assert(counter == 1);
|
||||
ck_assert(ev_data.is_added == EINA_TRUE);
|
||||
ck_assert(ev_data.child == it[0]);
|
||||
|
||||
it[2] = elm_genlist_item_append(genlist, &itc, NULL, NULL, ELM_GENLIST_ITEM_TREE, NULL, NULL);
|
||||
ck_assert(genlist == current);
|
||||
ck_assert(counter == 2);
|
||||
ck_assert(ev_data.is_added == EINA_TRUE);
|
||||
ck_assert(ev_data.child == it[2]);
|
||||
|
||||
elm_shutdown();
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(elm_atspi_children_events_del1)
|
||||
{
|
||||
test_init();
|
||||
|
||||
current = NULL;
|
||||
counter = 0;
|
||||
|
||||
Elm_Object_Item *it[3];
|
||||
|
||||
eo_do(genlist, eo_event_callback_add(ELM_INTERFACE_ATSPI_ACCESSIBLE_EVENT_CHILDREN_CHANGED, _children_changed_cb, NULL));
|
||||
|
||||
it[0] = elm_genlist_item_append(genlist, &itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
|
||||
it[1] = elm_genlist_item_prepend(genlist, &itc, it[0], NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
|
||||
it[2] = elm_genlist_item_append(genlist, &itc, NULL, NULL, ELM_GENLIST_ITEM_TREE, NULL, NULL);
|
||||
|
||||
elm_object_item_del(it[0]);
|
||||
ck_assert(genlist == current);
|
||||
ck_assert(counter == 3);
|
||||
ck_assert(ev_data.is_added == EINA_FALSE);
|
||||
ck_assert(ev_data.child == it[1]);
|
||||
|
||||
elm_object_item_del(it[2]);
|
||||
ck_assert(genlist == current);
|
||||
ck_assert(counter == 4);
|
||||
ck_assert(ev_data.is_added == EINA_FALSE);
|
||||
ck_assert(ev_data.child == it[2]);
|
||||
|
||||
elm_shutdown();
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(elm_atspi_children_events_del2)
|
||||
{
|
||||
test_init();
|
||||
|
||||
Elm_Object_Item *it[3];
|
||||
current = NULL;
|
||||
counter = 0;
|
||||
|
||||
it[0] = elm_genlist_item_append(genlist, &itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
|
||||
it[1] = elm_genlist_item_prepend(genlist, &itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
|
||||
it[2] = elm_genlist_item_append(genlist, &itc, NULL, NULL, ELM_GENLIST_ITEM_TREE, NULL, NULL);
|
||||
|
||||
elm_genlist_clear(genlist);
|
||||
|
||||
ck_assert(genlist == current);
|
||||
ck_assert(counter == 6);
|
||||
ck_assert(ev_data.is_added == EINA_FALSE);
|
||||
ck_assert(ev_data.child == it[2]);
|
||||
|
||||
elm_shutdown();
|
||||
}
|
||||
END_TEST
|
||||
|
||||
void elm_test_genlist(TCase *tc)
|
||||
{
|
||||
tcase_add_test(tc, elm_atspi_role_get);
|
||||
tcase_add_test(tc, elm_atspi_children_get1);
|
||||
tcase_add_test(tc, elm_atspi_children_get2);
|
||||
tcase_add_test(tc, elm_atspi_children_events_add);
|
||||
tcase_add_test(tc, elm_atspi_children_events_del1);
|
||||
tcase_add_test(tc, elm_atspi_children_events_del2);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue