jpeg pushed a commit to branch master.

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

commit 6ca1ce305bc9043561f040d52c85dd2781aaec4d
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Tue Jun 23 12:38:32 2015 +0900

    Edje tests: Add test case for embedded text filters
---
 src/Makefile_Edje.am                 | 15 ++++++---
 src/tests/edje/data/filter.lua       | 14 ++++++++
 src/tests/edje/data/test_filters.edc | 62 ++++++++++++++++++++++++++++++++++++
 src/tests/edje/edje_test_edje.c      | 35 ++++++++++++++++++++
 4 files changed, 122 insertions(+), 4 deletions(-)

diff --git a/src/Makefile_Edje.am b/src/Makefile_Edje.am
index 596a02b..17e1cbc 100644
--- a/src/Makefile_Edje.am
+++ b/src/Makefile_Edje.am
@@ -284,22 +284,29 @@ 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 \
-       -id $(srcdir)/tests/emotion/data $< $@
+       -id $(srcdir)/tests/emotion/data \
+       -dd $(srcdir)/tests/edje/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_masking.edc
+                  tests/edje/data/test_masking.edc \
+                  tests/edje/data/test_filters.edc \
+                  tests/edje/data/filter.lua
 
 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_masking.edj
+                     tests/edje/data/test_masking.edj \
+                     tests/edje/data/test_filters.edj
+
 CLEANFILES += tests/edje/data/test_layout.edj \
               tests/edje/data/complex_layout.edj \
               tests/edje/data/test_parens.edj \
-              tests/edje/data/test_masking.edj
+              tests/edje/data/test_masking.edj \
+              tests/edje/data/test_filters.edj
 
 endif
 
diff --git a/src/tests/edje/data/filter.lua b/src/tests/edje/data/filter.lua
new file mode 100644
index 0000000..2ada51b
--- /dev/null
+++ b/src/tests/edje/data/filter.lua
@@ -0,0 +1,14 @@
+-- Evas filter program
+
+a = buffer { 'alpha' }
+b = buffer { src = 'mask' }
+
+padding_set(10)
+
+grow { 5, dst = a }
+blur { 6, src = a, color = state.color, ox = 1, oy = 1 }
+blur { 2, color = color({cc.r, cc.g, cc.b, cc.a }) }
+blend { color = mycolor, ox = 1, oy = 1 }
+
+mask { src = input, mask = b, color = 'cyan', fillmode = 'stretch_y_repeat_x' }
+
diff --git a/src/tests/edje/data/test_filters.edc 
b/src/tests/edje/data/test_filters.edc
new file mode 100644
index 0000000..df84c48
--- /dev/null
+++ b/src/tests/edje/data/test_filters.edc
@@ -0,0 +1,62 @@
+data {
+   file: "filterfile" "filter.lua";
+}
+color_classes {
+   color_class {
+      name: "cc1";
+      color: 0 0 255 255;
+      color2: 0 255 255 255;
+      color3: 0 0 255 255;
+   }
+}
+collections {
+   images {
+      // found in tests/emotion/data
+      image: "pnl.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: "mask";
+            type: IMAGE;
+            no_render: 1; 
+            description { state: "default" 0.0;
+               rel1.relative: 0 0;
+               rel2.relative: 1 1;
+               rel.to: "text";
+               max: 999 50;
+               image.normal: "pnl.png";
+            }
+         }
+         part { name: "text";
+            type: TEXT;
+            description { state: "default" 0.0;
+               rel1.relative: 0 0;
+               rel2.relative: 1 1;
+               rel1.to: "background";
+               rel2.to: "background";
+               text {
+                  text: "FILTER";
+                  font: "Sans";
+                  size: 48;
+               }
+               filter {
+                  code: "filterfile";
+                  source: "mask";
+                  data: "mycolor" "#f0f8"; 
+                  data: "cc" "color_class('cc1')";
+               }
+               color: 255 80 0 200;
+            }
+         }
+      }
+   }
+}
diff --git a/src/tests/edje/edje_test_edje.c b/src/tests/edje/edje_test_edje.c
index 88cc3fc..4c80b36 100644
--- a/src/tests/edje/edje_test_edje.c
+++ b/src/tests/edje/edje_test_edje.c
@@ -203,6 +203,40 @@ START_TEST(edje_test_masking)
 }
 END_TEST
 
+START_TEST(edje_test_filters)
+{
+   Evas *evas = EDJE_TEST_INIT_EVAS();
+   const Evas_Object *text, *sub;
+   Evas_Object *obj, *src = NULL;
+   const char *prg, *name;
+   Eina_Bool b;
+
+   obj = edje_object_add(evas);
+   fail_unless(edje_object_file_set(obj, test_layout_get("test_filters.edj"), 
"test_group"));
+
+   evas_object_resize(obj, 200, 200);
+
+   /* 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()));
+
+   /* text part: check filter status */
+   text = edje_object_part_object_get(obj, "text");
+   fail_if(!text);
+
+   eo_do(text, efl_gfx_filter_program_get(&prg, &name));
+   fail_if(!prg);
+   fail_if(!name || strcmp(name, "filterfile"));
+
+   eo_do(text, efl_gfx_filter_source_get("mask", &src));
+   fail_if(!src);
+
+   // TODO: Verify properly that the filter runs well
+
+   EDJE_TEST_FREE_EVAS();
+}
+END_TEST
+
 void edje_test_edje(TCase *tc)
 {    
    tcase_add_test(tc, edje_test_edje_init);
@@ -212,4 +246,5 @@ void edje_test_edje(TCase *tc)
    tcase_add_test(tc, edje_test_complex_layout);
    tcase_add_test(tc, edje_test_calculate_parens);
    tcase_add_test(tc, edje_test_masking);
+   tcase_add_test(tc, edje_test_filters);
 }

-- 


Reply via email to