forked from enlightenment/efl
evas: add a test for loading Android 9patch file.
Example data come from https://github.com/vindolin/ninepatch/tree/master/ninepatch/data under MIT license. Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Reviewed-by: Hermet Park <hermetpark@gmail.com> Differential Revision: https://phab.enlightenment.org/D9105
This commit is contained in:
parent
5847886a3f
commit
b799ba1a10
|
@ -1029,6 +1029,94 @@ EFL_START_TEST(evas_object_image_jp2k_loader_data)
|
|||
EFL_END_TEST
|
||||
#endif
|
||||
|
||||
EFL_START_TEST(evas_object_image_9patch)
|
||||
{
|
||||
Evas *e = _setup_evas();
|
||||
Evas *sub_e;
|
||||
Ecore_Evas *ee, *sub_ee;
|
||||
Evas_Object *obj, *cmp, *ref;
|
||||
Eina_Strbuf *str;
|
||||
|
||||
const char *files[] = {
|
||||
"9patch_test.9.png"
|
||||
};
|
||||
unsigned int i;
|
||||
|
||||
ee = ecore_evas_ecore_evas_get(e);
|
||||
|
||||
cmp = ecore_evas_object_image_new(ee);
|
||||
evas_object_image_filled_set(cmp, EINA_TRUE);
|
||||
evas_object_image_size_set(cmp, 1024, 1024);
|
||||
evas_object_resize(cmp, 1024, 1024);
|
||||
evas_object_show(cmp);
|
||||
|
||||
sub_ee = ecore_evas_object_ecore_evas_get(cmp);
|
||||
sub_e = ecore_evas_object_evas_get(cmp);
|
||||
|
||||
ecore_evas_alpha_set(sub_ee, EINA_TRUE);
|
||||
|
||||
obj = evas_object_rectangle_add(sub_e);
|
||||
evas_object_color_set(obj, 0, 0, 0, 0);
|
||||
evas_object_move(obj, 0, 0);
|
||||
evas_object_resize(obj, 1024, 1024);
|
||||
evas_object_show(obj);
|
||||
|
||||
obj = evas_object_image_filled_add(sub_e);
|
||||
evas_object_image_alpha_set(obj, 1);
|
||||
evas_object_move(obj, 0, 0);
|
||||
evas_object_resize(obj, 1024, 1024);
|
||||
ecore_evas_resize(sub_ee, 1024, 1024);
|
||||
evas_object_show(obj);
|
||||
|
||||
Evas_Object *rect = evas_object_rectangle_add(sub_e);
|
||||
evas_object_color_set(rect, 128, 0, 0, 128);
|
||||
evas_object_show(rect);
|
||||
|
||||
ref = evas_object_image_add(e);
|
||||
str = eina_strbuf_new();
|
||||
|
||||
for (i = 0; i < sizeof (files) / sizeof (files[0]); i++)
|
||||
{
|
||||
Eina_Rect content;
|
||||
int r_w, r_h;
|
||||
const uint32_t *d, *r_d;
|
||||
|
||||
eina_strbuf_append_printf(str, "%s/%s", TESTS_IMG_DIR, files[i]);
|
||||
evas_object_image_file_set(obj, eina_strbuf_string_get(str), NULL);
|
||||
ck_assert_int_eq(evas_object_image_load_error_get(obj), EVAS_LOAD_ERROR_NONE);
|
||||
content = efl_gfx_image_content_region_get(obj);
|
||||
|
||||
evas_object_move(rect, content.x, content.y);
|
||||
evas_object_resize(rect, content.w, content.h);
|
||||
|
||||
eina_strbuf_reset(str);
|
||||
|
||||
ecore_evas_manual_render(ee);
|
||||
|
||||
d = evas_object_image_data_get(cmp, EINA_FALSE);
|
||||
|
||||
eina_strbuf_append_printf(str, "%s/%s.png", TESTS_IMG_DIR, files[i]);
|
||||
evas_object_image_file_set(ref, eina_strbuf_string_get(str), NULL);
|
||||
ck_assert_int_eq(evas_object_image_load_error_get(ref), EVAS_LOAD_ERROR_NONE);
|
||||
evas_object_image_size_get(ref, &r_w, &r_h);
|
||||
r_d = evas_object_image_data_get(ref, EINA_FALSE);
|
||||
|
||||
eina_strbuf_reset(str);
|
||||
|
||||
fail_if(r_w != 1024 || r_h != 1024);
|
||||
for (int i = 0; i < r_w * r_h; i++)
|
||||
fail_if(((d[i] - r_d[i]) & 0xF8F8F8F8) != 0);
|
||||
}
|
||||
|
||||
evas_object_del(obj);
|
||||
evas_object_del(ref);
|
||||
|
||||
eina_strbuf_free(str);
|
||||
|
||||
evas_free(e);
|
||||
}
|
||||
EFL_END_TEST
|
||||
|
||||
void evas_test_image_object(TCase *tc)
|
||||
{
|
||||
tcase_add_test(tc, evas_object_image_api);
|
||||
|
@ -1054,6 +1142,7 @@ void evas_test_image_object(TCase *tc)
|
|||
#endif
|
||||
tcase_add_test(tc, evas_object_image_partially_load_orientation);
|
||||
tcase_add_test(tc, evas_object_image_cached_data_comparision);
|
||||
tcase_add_test(tc, evas_object_image_9patch);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -21,19 +21,10 @@ while (0)
|
|||
static Evas *
|
||||
_setup_evas()
|
||||
{
|
||||
Evas *evas;
|
||||
Evas_Engine_Info *einfo;
|
||||
Ecore_Evas *ee;
|
||||
|
||||
evas = evas_new();
|
||||
|
||||
evas_output_method_set(evas, evas_render_method_lookup("buffer"));
|
||||
einfo = evas_engine_info_get(evas);
|
||||
evas_engine_info_set(evas, einfo);
|
||||
|
||||
evas_output_size_set(evas, 500, 500);
|
||||
evas_output_viewport_set(evas, 0, 0, 500, 500);
|
||||
|
||||
return evas;
|
||||
ee = ecore_evas_buffer_new(500, 500);
|
||||
return ecore_evas_get(ee);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 9.6 KiB |
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
Loading…
Reference in New Issue