Edje: Add test case for "no_render" and "clip_to" state flag

This commit is contained in:
Jean-Philippe Andre 2015-06-11 17:46:50 +09:00
parent 111e51a6ff
commit f24b45a7d0
3 changed files with 126 additions and 4 deletions

View File

@ -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

View File

@ -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";
}
}
}
}
}

View File

@ -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);
}