diff --git a/src/tests/edje/edje_test_swallow.c b/src/tests/edje/edje_test_swallow.c index d255937f8f..dc04c1b0b2 100644 --- a/src/tests/edje/edje_test_swallow.c +++ b/src/tests/edje/edje_test_swallow.c @@ -64,6 +64,34 @@ EFL_START_TEST(edje_test_swallows_lifetime) } EFL_END_TEST +static void +edje_test_swallows_invalidate_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + ck_assert(data == edje_object_part_swallow_get(obj, "swallow")); +} + +EFL_START_TEST(edje_test_swallows_invalidate) +{ + Evas *evas = _setup_evas(); + Evas_Object *ly, *o1; + + ly = edje_object_add(evas); + fail_unless(edje_object_file_set(ly, test_layout_get("test_swallows.edj"), "test_group")); + + fail_unless(edje_object_part_exists(ly, "swallow")); + + o1 = edje_object_add(ly); + fail_if(!edje_object_part_swallow(ly, "swallow", o1)); + + evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, edje_test_swallows_invalidate_del, o1); + + evas_object_del(ly); + fail_if(!efl_parent_get(o1)); + + evas_free(evas); +} +EFL_END_TEST + EFL_START_TEST(edje_test_swallows_eoapi) { Evas *evas = _setup_evas(); @@ -100,5 +128,6 @@ void edje_test_swallow(TCase *tc) { tcase_add_test(tc, edje_test_swallows); tcase_add_test(tc, edje_test_swallows_lifetime); + tcase_add_test(tc, edje_test_swallows_invalidate); tcase_add_test(tc, edje_test_swallows_eoapi); }