summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2015-06-11 17:46:50 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2015-06-15 14:45:13 +0900
commitacbdcb2f19046c280ee0123c60b04b25a5fc7225 (patch)
treede34453ed244a4fa7c1c1ef4245c495c9095b8b7
parent5ac3626dea16e573893ea0d4a184ff2b947f4fe7 (diff)
downloadefl-devs/jpeg/edje_clip.tar.gz
Edje: Add test case for "no_render" and "clip_to" state flagdevs/jpeg/edje_clip
-rw-r--r--src/Makefile_Edje.am12
-rw-r--r--src/tests/edje/data/test_masking.edc82
-rw-r--r--src/tests/edje/edje_test_edje.c36
3 files changed, 126 insertions, 4 deletions
diff --git a/src/Makefile_Edje.am b/src/Makefile_Edje.am
index e42f3c449b..596a02bd31 100644
--- a/src/Makefile_Edje.am
+++ b/src/Makefile_Edje.am
@@ -283,19 +283,23 @@ tests_edje_edje_suite_DEPENDENCIES = @USE_EDJE_INTERNAL_LIBS@
tests/edje/data/%.edj: tests/edje/data/%.edc bin/edje/edje_cc${EXEEXT}
$(AM_V_EDJ) \
$(MKDIR_P) tests/edje/data; \
- $(EDJE_CC) $(EDJE_CC_FLAGS) -id $(srcdir)/tests/edje/data $< $@
+ $(EDJE_CC) $(EDJE_CC_FLAGS) -id $(srcdir)/tests/edje/data \
+ -id $(srcdir)/tests/emotion/data $< $@
EDJE_DATA_FILES = tests/edje/data/test_layout.edc \
tests/edje/data/complex_layout.edc \
- tests/edje/data/test_parens.edc
+ tests/edje/data/test_parens.edc \
+ tests/edje/data/test_masking.edc
edjedatafilesdir = $(datadir)/edje/data
edjedatafiles_DATA = tests/edje/data/test_layout.edj \
tests/edje/data/complex_layout.edj \
- tests/edje/data/test_parens.edj
+ tests/edje/data/test_parens.edj \
+ tests/edje/data/test_masking.edj
CLEANFILES += tests/edje/data/test_layout.edj \
tests/edje/data/complex_layout.edj \
- tests/edje/data/test_parens.edj
+ tests/edje/data/test_parens.edj \
+ tests/edje/data/test_masking.edj
endif
diff --git a/src/tests/edje/data/test_masking.edc b/src/tests/edje/data/test_masking.edc
new file mode 100644
index 0000000000..63938d9d8e
--- /dev/null
+++ b/src/tests/edje/data/test_masking.edc
@@ -0,0 +1,82 @@
+collections {
+ images {
+ // found in tests/emotion/data
+ image: "e_logo.png" COMP;
+ }
+ group { name: "test_group";
+ parts {
+ part { name: "background";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: 33 32 32 255;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ max: 200 200;
+ }
+ }
+ part { name: "clip1";
+ type: RECT;
+ no_render: 1;
+ description { state: "default" 0.0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ }
+ }
+ part { name: "clip2";
+ type: RECT;
+ no_render: 1;
+ description { state: "default" 0.0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ }
+ }
+ part { name: "mask";
+ type: IMAGE;
+ no_render: 1;
+ description { state: "default" 0.0;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "background";
+ rel2.to: "background";
+ image.normal: "e_logo.png";
+ }
+ }
+ part { name: "logo";
+ inherit: "mask";
+ type: IMAGE;
+ no_render: 0;
+ }
+ part { name: "text";
+ inherit: "mask";
+ type: TEXT;
+ description { state: "default" 0.0;
+ text {
+ text: "HELLO WORLD";
+ font: "Sans";
+ size: 16;
+ }
+ color: 255 0 0 255;
+ clip_to: "mask";
+ }
+ }
+ /* test clip_to override from desc */
+ part { name: "noclip";
+ type: TEXT;
+ clip_to: "clip1";
+ description { state: "default" 0.0;
+ text {
+ text: "HELLO WORLD";
+ font: "Sans";
+ size: 16;
+ }
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ rel1.to: "background";
+ rel2.to: "background";
+ color: 0 255 0 64;
+ clip_to: "clip2";
+ }
+ }
+ }
+ }
+}
diff --git a/src/tests/edje/edje_test_edje.c b/src/tests/edje/edje_test_edje.c
index 9862ad96af..88cc3fc20e 100644
--- a/src/tests/edje/edje_test_edje.c
+++ b/src/tests/edje/edje_test_edje.c
@@ -168,6 +168,41 @@ START_TEST(edje_test_calculate_parens)
}
END_TEST
+START_TEST(edje_test_masking)
+{
+ int x, y, w, h;
+ Evas *evas = EDJE_TEST_INIT_EVAS();
+ const Evas_Object *sub, *clip2, *clip;
+ Evas_Object *obj;
+ Eina_Bool b;
+
+ obj = edje_object_add(evas);
+ fail_unless(edje_object_file_set(obj, test_layout_get("test_masking.edj"), "test_group"));
+
+ evas_object_resize(obj, 100, 100);
+ edje_object_part_geometry_get(obj, "background", &x, &y, &w, &h);
+ fail_if(x != 0 || y != 0 || w != 100 || h != 100);
+
+ clip = edje_object_part_object_get(obj, "clip2");
+ fail_if(!clip);
+
+ /* check value of no_render flag as seen from evas land */
+ sub = edje_object_part_object_get(obj, "mask");
+ fail_if(!eo_do_ret(sub, b, evas_obj_no_render_get()));
+
+ /* check that text has a clip (based on description.clip_to) */
+ sub = edje_object_part_object_get(obj, "text");
+ fail_if(!eo_do_ret(sub, clip2, evas_obj_clip_get()));
+
+ /* test description.clip_to override */
+ sub = edje_object_part_object_get(obj, "noclip");
+ clip2 = eo_do_ret(sub, clip2, evas_obj_clip_get());
+ fail_if(clip != clip2);
+
+ EDJE_TEST_FREE_EVAS();
+}
+END_TEST
+
void edje_test_edje(TCase *tc)
{
tcase_add_test(tc, edje_test_edje_init);
@@ -176,4 +211,5 @@ void edje_test_edje(TCase *tc)
tcase_add_test(tc, edje_test_simple_layout_geometry);
tcase_add_test(tc, edje_test_complex_layout);
tcase_add_test(tc, edje_test_calculate_parens);
+ tcase_add_test(tc, edje_test_masking);
}