summaryrefslogtreecommitdiff
path: root/src/tests/edje/edje_test_edje.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/edje/edje_test_edje.c')
-rw-r--r--src/tests/edje/edje_test_edje.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/tests/edje/edje_test_edje.c b/src/tests/edje/edje_test_edje.c
index 8a3d6451a8..658f115d89 100644
--- a/src/tests/edje/edje_test_edje.c
+++ b/src/tests/edje/edje_test_edje.c
@@ -350,6 +350,37 @@ START_TEST(edje_test_color_class)
}
END_TEST
+START_TEST(edje_test_swallows)
+{
+ Evas *evas = EDJE_TEST_INIT_EVAS();
+ Evas_Object *ly, *o1, *o2;
+
+ ly = eo_add(EDJE_OBJECT_CLASS, 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 = eo_add(EDJE_OBJECT_CLASS, ly);
+ fail_if(!edje_obj_part_swallow(ly, "swallow", o1));
+ ck_assert_ptr_eq(eo_parent_get(o1), ly);
+
+ edje_obj_part_unswallow(ly, o1);
+ ck_assert_ptr_eq(eo_parent_get(o1), evas_common_evas_get(o1));
+
+ fail_if(!edje_obj_part_swallow(ly, "swallow", o1));
+ ck_assert_ptr_eq(eo_parent_get(o1), ly);
+
+ o2 = eo_add(EDJE_OBJECT_CLASS, ly);
+ fail_if(!edje_obj_part_swallow(ly, "swallow", o2));
+ ck_assert_ptr_eq(eo_parent_get(o2), ly);
+ /* o1 is deleted at this point. */
+ ck_assert_ptr_eq(eo_parent_get(o1), evas_common_evas_get(o1));
+
+ EDJE_TEST_FREE_EVAS();
+}
+END_TEST
+
void edje_test_edje(TCase *tc)
{
tcase_add_test(tc, edje_test_edje_init);
@@ -363,4 +394,5 @@ void edje_test_edje(TCase *tc)
tcase_add_test(tc, edje_test_snapshot);
tcase_add_test(tc, edje_test_size_class);
tcase_add_test(tc, edje_test_color_class);
+ tcase_add_test(tc, edje_test_swallows);
}