tests/elm: verify image file_set -> memfile_set -> file_set
authorMike Blumenkrantz <zmike@samsung.com>
Tue, 25 Feb 2020 14:23:46 +0000 (09:23 -0500)
committerJongmin Lee <jm105.lee@samsung.com>
Tue, 3 Mar 2020 21:15:10 +0000 (06:15 +0900)
Summary:
ref D11392
Depends on D11397

Reviewers: kimcinoo, Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11398

src/tests/elementary/elm_test_image.c

index 36e9aa2..bfd6dad 100644 (file)
@@ -18,6 +18,34 @@ struct _Test_Data
    int success;
 };
 
+static int
+_file_to_memory(const char *filename, char **result)
+{
+   int size;
+   FILE *f;
+
+   f = fopen(filename, "rb");
+   if (f == NULL)
+     {
+        *result = NULL;
+        return -1;
+     }
+
+   fseek(f, 0, SEEK_END);
+   size = ftell(f);
+   fseek(f, 0, SEEK_SET);
+   *result = (char *)malloc(size + 1);
+   if ((size_t)size != fread(*result, sizeof(char), size, f))
+     {
+        free(*result);
+        fclose(f);
+        return -1;
+     }
+   fclose(f);
+   (*result)[size] = 0;
+   return size;
+}
+
 EFL_START_TEST(elm_image_legacy_type_check)
 {
    Evas_Object *win, *image;
@@ -227,6 +255,28 @@ EFL_START_TEST(elm_image_evas_image_get)
 }
 EFL_END_TEST
 
+EFL_START_TEST(elm_image_test_memfile_set)
+{
+   Evas_Object *win, *image;
+   char *mem;
+   int size;
+   const char *file = NULL;
+
+   win = win_add(NULL, "image", ELM_WIN_BASIC);
+
+   image = elm_image_add(win);
+   ck_assert(elm_image_file_set(image, ELM_IMAGE_DATA_DIR"/images/icon_01.png", NULL));
+   size = _file_to_memory(ELM_IMAGE_DATA_DIR"/images/icon_02.png", &mem);
+   ck_assert_int_ge(size, 0);
+   ck_assert(elm_image_memfile_set(image, mem, size, "png", NULL));
+   elm_image_file_get(image, &file, NULL);
+   ck_assert_str_ne(file, ELM_IMAGE_DATA_DIR"/images/icon_01.png");
+   ck_assert(elm_image_file_set(image, ELM_IMAGE_DATA_DIR"/images/icon_01.png", NULL));
+   elm_image_file_get(image, &file, NULL);
+   ck_assert_str_eq(file, ELM_IMAGE_DATA_DIR"/images/icon_01.png");
+}
+EFL_END_TEST
+
 void elm_test_image(TCase *tc)
 {
    tcase_add_test(tc, elm_image_legacy_type_check);
@@ -235,4 +285,5 @@ void elm_test_image(TCase *tc)
    tcase_add_test(tc, elm_image_async_mmap);
    tcase_add_test(tc, elm_image_evas_object_color_set);
    tcase_add_test(tc, elm_image_evas_image_get);
+   tcase_add_test(tc, elm_image_test_memfile_set);
 }