From 355effed5f53e8df37712d72d80968e4cd2e38c1 Mon Sep 17 00:00:00 2001 From: Shinwoo Kim Date: Mon, 6 Aug 2018 16:21:55 +0900 Subject: [PATCH] test/evas: add to check smart class overriding Summary: If Evas_Smart_Class.move is overridden, then user defined move function should be used. Check if "https://phab.enlightenment.org/D6468" works or not. Reviewers: zmike Subscribers: cedric, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D6740 --- src/tests/evas/evas_test_object_smart.c | 39 +++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/tests/evas/evas_test_object_smart.c b/src/tests/evas/evas_test_object_smart.c index 287c673291..dd72980cd0 100644 --- a/src/tests/evas/evas_test_object_smart.c +++ b/src/tests/evas/evas_test_object_smart.c @@ -175,7 +175,46 @@ EFL_START_TEST(evas_object_smart_paragraph_direction) } EFL_END_TEST + +void +_move_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + ck_abort_msg("This function should be not called"); +} + +EFL_START_TEST(evas_object_smart_clipped_smart_move) +{ + Evas *evas; + Evas_Smart *smart; + Evas_Object *smart_obj, *smart_child; + + evas = _setup_evas(); + + Evas_Smart_Class sc = EVAS_SMART_CLASS_INIT_NAME_VERSION("MyClass"); + evas_object_smart_clipped_smart_set(&sc); + sc.move = NULL; + + smart = evas_smart_class_new(&sc); + fail_if(!smart); + + smart_obj = evas_object_smart_add(evas, smart); + fail_if(!smart_obj); + + smart_child = evas_object_box_add(evas); + evas_object_smart_member_add(smart_child, smart_obj); + + evas_object_event_callback_add(smart_child, EVAS_CALLBACK_MOVE, _move_cb, NULL); + evas_object_move(smart_obj, 100, 100); + + evas_object_smart_member_del(smart_child); + evas_object_del(smart_child); + evas_object_del(smart_obj); + evas_free(evas); +} +EFL_END_TEST + void evas_test_object_smart(TCase *tc) { tcase_add_test(tc, evas_object_smart_paragraph_direction); + tcase_add_test(tc, evas_object_smart_clipped_smart_move); }