jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f24b45a7d0e22689b321ab15276b9275b2309325

commit f24b45a7d0e22689b321ab15276b9275b2309325
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Thu Jun 11 17:46:50 2015 +0900

    Edje: Add test case for "no_render" and "clip_to" state flag
---
 src/Makefile_Edje.am                 | 12 ++++--
 src/tests/edje/data/test_masking.edc | 82 ++++++++++++++++++++++++++++++++++++
 src/tests/edje/edje_test_edje.c      | 36 ++++++++++++++++
 3 files changed, 126 insertions(+), 4 deletions(-)

diff --git a/src/Makefile_Edje.am b/src/Makefile_Edje.am
index e42f3c4..596a02b 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 0000000..63938d9
--- /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 9862ad9..88cc3fc 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);
 }

-- 


Reply via email to