[UTC][capi-media-image-util][ACR-1595][Add test cases for animation encoding APIs] 40/243340/7
authorjiyong.min <jiyong.min@samsung.com>
Mon, 7 Sep 2020 01:05:09 +0000 (10:05 +0900)
committerjiyong.min <jiyong.min@samsung.com>
Mon, 7 Sep 2020 07:31:13 +0000 (16:31 +0900)
  - The test cases for 'image_util_anim_encode_xxx()' APIs have been added.
  - Some cases are repeated as the value of #image_util_anim_type_e changes(gif & webp).
    ('create', 'set_loop_count', 'add_frame', 'save_to_file', 'save_to_buffer')
  - 5 sample images are added and used for animation encoding.
  - 'set_background_color' and 'set_lossless' functions are only supported for #image_util_anim_webp.

Change-Id: Ia1114daff4f10ee24dc9d860a99cc9544c3da62d

24 files changed:
src/utc/image-util/res/mobile/sample_anim1.png [new file with mode: 0644]
src/utc/image-util/res/mobile/sample_anim2.png [new file with mode: 0644]
src/utc/image-util/res/mobile/sample_anim3.png [new file with mode: 0644]
src/utc/image-util/res/mobile/sample_anim4.png [new file with mode: 0644]
src/utc/image-util/res/mobile/sample_anim5.png [new file with mode: 0644]
src/utc/image-util/res/tizeniot/sample_anim1.png [new file with mode: 0644]
src/utc/image-util/res/tizeniot/sample_anim2.png [new file with mode: 0644]
src/utc/image-util/res/tizeniot/sample_anim3.png [new file with mode: 0644]
src/utc/image-util/res/tizeniot/sample_anim4.png [new file with mode: 0644]
src/utc/image-util/res/tizeniot/sample_anim5.png [new file with mode: 0644]
src/utc/image-util/res/tv/sample_anim1.png [new file with mode: 0644]
src/utc/image-util/res/tv/sample_anim2.png [new file with mode: 0644]
src/utc/image-util/res/tv/sample_anim3.png [new file with mode: 0644]
src/utc/image-util/res/tv/sample_anim4.png [new file with mode: 0644]
src/utc/image-util/res/tv/sample_anim5.png [new file with mode: 0644]
src/utc/image-util/res/wearable/sample_anim1.png [new file with mode: 0644]
src/utc/image-util/res/wearable/sample_anim2.png [new file with mode: 0644]
src/utc/image-util/res/wearable/sample_anim3.png [new file with mode: 0644]
src/utc/image-util/res/wearable/sample_anim4.png [new file with mode: 0644]
src/utc/image-util/res/wearable/sample_anim5.png [new file with mode: 0644]
src/utc/image-util/tct-image-util-core_mobile.h
src/utc/image-util/tct-image-util-core_tizeniot.h
src/utc/image-util/tct-image-util-core_wearable.h
src/utc/image-util/utc-image-util-agif-encode.c

diff --git a/src/utc/image-util/res/mobile/sample_anim1.png b/src/utc/image-util/res/mobile/sample_anim1.png
new file mode 100644 (file)
index 0000000..646b647
Binary files /dev/null and b/src/utc/image-util/res/mobile/sample_anim1.png differ
diff --git a/src/utc/image-util/res/mobile/sample_anim2.png b/src/utc/image-util/res/mobile/sample_anim2.png
new file mode 100644 (file)
index 0000000..ae55c0b
Binary files /dev/null and b/src/utc/image-util/res/mobile/sample_anim2.png differ
diff --git a/src/utc/image-util/res/mobile/sample_anim3.png b/src/utc/image-util/res/mobile/sample_anim3.png
new file mode 100644 (file)
index 0000000..c251b11
Binary files /dev/null and b/src/utc/image-util/res/mobile/sample_anim3.png differ
diff --git a/src/utc/image-util/res/mobile/sample_anim4.png b/src/utc/image-util/res/mobile/sample_anim4.png
new file mode 100644 (file)
index 0000000..4d95374
Binary files /dev/null and b/src/utc/image-util/res/mobile/sample_anim4.png differ
diff --git a/src/utc/image-util/res/mobile/sample_anim5.png b/src/utc/image-util/res/mobile/sample_anim5.png
new file mode 100644 (file)
index 0000000..87b1638
Binary files /dev/null and b/src/utc/image-util/res/mobile/sample_anim5.png differ
diff --git a/src/utc/image-util/res/tizeniot/sample_anim1.png b/src/utc/image-util/res/tizeniot/sample_anim1.png
new file mode 100644 (file)
index 0000000..646b647
Binary files /dev/null and b/src/utc/image-util/res/tizeniot/sample_anim1.png differ
diff --git a/src/utc/image-util/res/tizeniot/sample_anim2.png b/src/utc/image-util/res/tizeniot/sample_anim2.png
new file mode 100644 (file)
index 0000000..ae55c0b
Binary files /dev/null and b/src/utc/image-util/res/tizeniot/sample_anim2.png differ
diff --git a/src/utc/image-util/res/tizeniot/sample_anim3.png b/src/utc/image-util/res/tizeniot/sample_anim3.png
new file mode 100644 (file)
index 0000000..c251b11
Binary files /dev/null and b/src/utc/image-util/res/tizeniot/sample_anim3.png differ
diff --git a/src/utc/image-util/res/tizeniot/sample_anim4.png b/src/utc/image-util/res/tizeniot/sample_anim4.png
new file mode 100644 (file)
index 0000000..4d95374
Binary files /dev/null and b/src/utc/image-util/res/tizeniot/sample_anim4.png differ
diff --git a/src/utc/image-util/res/tizeniot/sample_anim5.png b/src/utc/image-util/res/tizeniot/sample_anim5.png
new file mode 100644 (file)
index 0000000..87b1638
Binary files /dev/null and b/src/utc/image-util/res/tizeniot/sample_anim5.png differ
diff --git a/src/utc/image-util/res/tv/sample_anim1.png b/src/utc/image-util/res/tv/sample_anim1.png
new file mode 100644 (file)
index 0000000..646b647
Binary files /dev/null and b/src/utc/image-util/res/tv/sample_anim1.png differ
diff --git a/src/utc/image-util/res/tv/sample_anim2.png b/src/utc/image-util/res/tv/sample_anim2.png
new file mode 100644 (file)
index 0000000..ae55c0b
Binary files /dev/null and b/src/utc/image-util/res/tv/sample_anim2.png differ
diff --git a/src/utc/image-util/res/tv/sample_anim3.png b/src/utc/image-util/res/tv/sample_anim3.png
new file mode 100644 (file)
index 0000000..c251b11
Binary files /dev/null and b/src/utc/image-util/res/tv/sample_anim3.png differ
diff --git a/src/utc/image-util/res/tv/sample_anim4.png b/src/utc/image-util/res/tv/sample_anim4.png
new file mode 100644 (file)
index 0000000..4d95374
Binary files /dev/null and b/src/utc/image-util/res/tv/sample_anim4.png differ
diff --git a/src/utc/image-util/res/tv/sample_anim5.png b/src/utc/image-util/res/tv/sample_anim5.png
new file mode 100644 (file)
index 0000000..87b1638
Binary files /dev/null and b/src/utc/image-util/res/tv/sample_anim5.png differ
diff --git a/src/utc/image-util/res/wearable/sample_anim1.png b/src/utc/image-util/res/wearable/sample_anim1.png
new file mode 100644 (file)
index 0000000..646b647
Binary files /dev/null and b/src/utc/image-util/res/wearable/sample_anim1.png differ
diff --git a/src/utc/image-util/res/wearable/sample_anim2.png b/src/utc/image-util/res/wearable/sample_anim2.png
new file mode 100644 (file)
index 0000000..ae55c0b
Binary files /dev/null and b/src/utc/image-util/res/wearable/sample_anim2.png differ
diff --git a/src/utc/image-util/res/wearable/sample_anim3.png b/src/utc/image-util/res/wearable/sample_anim3.png
new file mode 100644 (file)
index 0000000..c251b11
Binary files /dev/null and b/src/utc/image-util/res/wearable/sample_anim3.png differ
diff --git a/src/utc/image-util/res/wearable/sample_anim4.png b/src/utc/image-util/res/wearable/sample_anim4.png
new file mode 100644 (file)
index 0000000..4d95374
Binary files /dev/null and b/src/utc/image-util/res/wearable/sample_anim4.png differ
diff --git a/src/utc/image-util/res/wearable/sample_anim5.png b/src/utc/image-util/res/wearable/sample_anim5.png
new file mode 100644 (file)
index 0000000..87b1638
Binary files /dev/null and b/src/utc/image-util/res/wearable/sample_anim5.png differ
index cae6cf32530d9a5bec063a9fda04cb7b7bb60df8..3df00fa479fe2ec13c9a38ef4a09e2de26e79368 100644 (file)
@@ -27,6 +27,8 @@ extern void utc_media_image_util_basic_startup(void);
 extern void utc_media_image_util_basic_cleanup(void);
 extern void utc_image_util_agif_encode_startup(void);
 extern void utc_image_util_agif_encode_cleanup(void);
+extern void utc_image_util_anim_encode_startup(void);
+extern void utc_image_util_anim_encode_cleanup(void);
 
 extern int utc_image_util_foreach_supported_colorspace_n1(void);
 extern int utc_image_util_foreach_supported_colorspace_n2(void);
@@ -235,6 +237,30 @@ extern int utc_image_util_agif_encode_save_to_buffer_n(void);
 extern int utc_image_util_agif_encode_destroy_p(void);
 extern int utc_image_util_agif_encode_destroy_n(void);
 
+extern int utc_image_util_anim_encode_create_p(void);
+extern int utc_image_util_anim_encode_create_n1(void);
+extern int utc_image_util_anim_encode_create_n2(void);
+extern int utc_image_util_anim_encode_set_loop_count_p(void);
+extern int utc_image_util_anim_encode_set_loop_count_n(void);
+extern int utc_image_util_anim_encode_set_background_color_p(void);
+extern int utc_image_util_anim_encode_set_background_color_n1(void);
+extern int utc_image_util_anim_encode_set_background_color_n2(void);
+extern int utc_image_util_anim_encode_set_lossless_p(void);
+extern int utc_image_util_anim_encode_set_lossless_n1(void);
+extern int utc_image_util_anim_encode_set_lossless_n2(void);
+extern int utc_image_util_anim_encode_add_frame_p(void);
+extern int utc_image_util_anim_encode_add_frame_n(void);
+extern int utc_image_util_anim_encode_save_to_file_p1(void);
+extern int utc_image_util_anim_encode_save_to_file_p2(void);
+extern int utc_image_util_anim_encode_save_to_file_n1(void);
+extern int utc_image_util_anim_encode_save_to_file_n2(void);
+extern int utc_image_util_anim_encode_save_to_buffer_p1(void);
+extern int utc_image_util_anim_encode_save_to_buffer_p2(void);
+extern int utc_image_util_anim_encode_save_to_buffer_n1(void);
+extern int utc_image_util_anim_encode_save_to_buffer_n2(void);
+extern int utc_image_util_anim_encode_destroy_p(void);
+extern int utc_image_util_anim_encode_destroy_n(void);
+
 
 testcase tc_array[] = {
        {"utc_image_util_foreach_supported_colorspace_n1",utc_image_util_foreach_supported_colorspace_n1,utc_image_util_decode_startup,utc_image_util_decode_cleanup},
@@ -441,6 +467,29 @@ testcase tc_array[] = {
        {"utc_image_util_agif_encode_save_to_buffer_n",utc_image_util_agif_encode_save_to_buffer_n,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup},
        {"utc_image_util_agif_encode_destroy_p",utc_image_util_agif_encode_destroy_p,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup},
        {"utc_image_util_agif_encode_destroy_n",utc_image_util_agif_encode_destroy_n,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup},
+       {"utc_image_util_anim_encode_create_p",utc_image_util_anim_encode_create_p,NULL,NULL},
+       {"utc_image_util_anim_encode_create_n1",utc_image_util_anim_encode_create_n1,NULL,NULL},
+       {"utc_image_util_anim_encode_create_n2",utc_image_util_anim_encode_create_n2,NULL,NULL},
+       {"utc_image_util_anim_encode_set_loop_count_p",utc_image_util_anim_encode_set_loop_count_p,NULL,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_set_loop_count_n",utc_image_util_anim_encode_set_loop_count_n,NULL,NULL},
+       {"utc_image_util_anim_encode_set_background_color_p",utc_image_util_anim_encode_set_background_color_p,NULL,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_set_background_color_n1",utc_image_util_anim_encode_set_background_color_n1,NULL,NULL},
+       {"utc_image_util_anim_encode_set_background_color_n2",utc_image_util_anim_encode_set_background_color_n2,NULL,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_set_lossless_p",utc_image_util_anim_encode_set_lossless_p,NULL,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_set_lossless_n1",utc_image_util_anim_encode_set_lossless_n1,NULL,NULL},
+       {"utc_image_util_anim_encode_set_lossless_n2",utc_image_util_anim_encode_set_lossless_n2,NULL,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_add_frame_p",utc_image_util_anim_encode_add_frame_p,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_add_frame_n",utc_image_util_anim_encode_add_frame_n,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_file_p1",utc_image_util_anim_encode_save_to_file_p1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_file_p2",utc_image_util_anim_encode_save_to_file_p2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_file_n1",utc_image_util_anim_encode_save_to_file_n1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_file_n2",utc_image_util_anim_encode_save_to_file_n2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_buffer_p1",utc_image_util_anim_encode_save_to_buffer_p1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_buffer_p2",utc_image_util_anim_encode_save_to_buffer_p2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_buffer_n1",utc_image_util_anim_encode_save_to_buffer_n1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_buffer_n2",utc_image_util_anim_encode_save_to_buffer_n2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_destroy_p",utc_image_util_anim_encode_destroy_p,NULL,NULL},
+       {"utc_image_util_anim_encode_destroy_n",utc_image_util_anim_encode_destroy_n,NULL,NULL},
        {NULL, NULL}
 };
 
index cae6cf32530d9a5bec063a9fda04cb7b7bb60df8..3df00fa479fe2ec13c9a38ef4a09e2de26e79368 100644 (file)
@@ -27,6 +27,8 @@ extern void utc_media_image_util_basic_startup(void);
 extern void utc_media_image_util_basic_cleanup(void);
 extern void utc_image_util_agif_encode_startup(void);
 extern void utc_image_util_agif_encode_cleanup(void);
+extern void utc_image_util_anim_encode_startup(void);
+extern void utc_image_util_anim_encode_cleanup(void);
 
 extern int utc_image_util_foreach_supported_colorspace_n1(void);
 extern int utc_image_util_foreach_supported_colorspace_n2(void);
@@ -235,6 +237,30 @@ extern int utc_image_util_agif_encode_save_to_buffer_n(void);
 extern int utc_image_util_agif_encode_destroy_p(void);
 extern int utc_image_util_agif_encode_destroy_n(void);
 
+extern int utc_image_util_anim_encode_create_p(void);
+extern int utc_image_util_anim_encode_create_n1(void);
+extern int utc_image_util_anim_encode_create_n2(void);
+extern int utc_image_util_anim_encode_set_loop_count_p(void);
+extern int utc_image_util_anim_encode_set_loop_count_n(void);
+extern int utc_image_util_anim_encode_set_background_color_p(void);
+extern int utc_image_util_anim_encode_set_background_color_n1(void);
+extern int utc_image_util_anim_encode_set_background_color_n2(void);
+extern int utc_image_util_anim_encode_set_lossless_p(void);
+extern int utc_image_util_anim_encode_set_lossless_n1(void);
+extern int utc_image_util_anim_encode_set_lossless_n2(void);
+extern int utc_image_util_anim_encode_add_frame_p(void);
+extern int utc_image_util_anim_encode_add_frame_n(void);
+extern int utc_image_util_anim_encode_save_to_file_p1(void);
+extern int utc_image_util_anim_encode_save_to_file_p2(void);
+extern int utc_image_util_anim_encode_save_to_file_n1(void);
+extern int utc_image_util_anim_encode_save_to_file_n2(void);
+extern int utc_image_util_anim_encode_save_to_buffer_p1(void);
+extern int utc_image_util_anim_encode_save_to_buffer_p2(void);
+extern int utc_image_util_anim_encode_save_to_buffer_n1(void);
+extern int utc_image_util_anim_encode_save_to_buffer_n2(void);
+extern int utc_image_util_anim_encode_destroy_p(void);
+extern int utc_image_util_anim_encode_destroy_n(void);
+
 
 testcase tc_array[] = {
        {"utc_image_util_foreach_supported_colorspace_n1",utc_image_util_foreach_supported_colorspace_n1,utc_image_util_decode_startup,utc_image_util_decode_cleanup},
@@ -441,6 +467,29 @@ testcase tc_array[] = {
        {"utc_image_util_agif_encode_save_to_buffer_n",utc_image_util_agif_encode_save_to_buffer_n,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup},
        {"utc_image_util_agif_encode_destroy_p",utc_image_util_agif_encode_destroy_p,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup},
        {"utc_image_util_agif_encode_destroy_n",utc_image_util_agif_encode_destroy_n,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup},
+       {"utc_image_util_anim_encode_create_p",utc_image_util_anim_encode_create_p,NULL,NULL},
+       {"utc_image_util_anim_encode_create_n1",utc_image_util_anim_encode_create_n1,NULL,NULL},
+       {"utc_image_util_anim_encode_create_n2",utc_image_util_anim_encode_create_n2,NULL,NULL},
+       {"utc_image_util_anim_encode_set_loop_count_p",utc_image_util_anim_encode_set_loop_count_p,NULL,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_set_loop_count_n",utc_image_util_anim_encode_set_loop_count_n,NULL,NULL},
+       {"utc_image_util_anim_encode_set_background_color_p",utc_image_util_anim_encode_set_background_color_p,NULL,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_set_background_color_n1",utc_image_util_anim_encode_set_background_color_n1,NULL,NULL},
+       {"utc_image_util_anim_encode_set_background_color_n2",utc_image_util_anim_encode_set_background_color_n2,NULL,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_set_lossless_p",utc_image_util_anim_encode_set_lossless_p,NULL,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_set_lossless_n1",utc_image_util_anim_encode_set_lossless_n1,NULL,NULL},
+       {"utc_image_util_anim_encode_set_lossless_n2",utc_image_util_anim_encode_set_lossless_n2,NULL,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_add_frame_p",utc_image_util_anim_encode_add_frame_p,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_add_frame_n",utc_image_util_anim_encode_add_frame_n,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_file_p1",utc_image_util_anim_encode_save_to_file_p1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_file_p2",utc_image_util_anim_encode_save_to_file_p2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_file_n1",utc_image_util_anim_encode_save_to_file_n1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_file_n2",utc_image_util_anim_encode_save_to_file_n2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_buffer_p1",utc_image_util_anim_encode_save_to_buffer_p1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_buffer_p2",utc_image_util_anim_encode_save_to_buffer_p2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_buffer_n1",utc_image_util_anim_encode_save_to_buffer_n1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_buffer_n2",utc_image_util_anim_encode_save_to_buffer_n2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_destroy_p",utc_image_util_anim_encode_destroy_p,NULL,NULL},
+       {"utc_image_util_anim_encode_destroy_n",utc_image_util_anim_encode_destroy_n,NULL,NULL},
        {NULL, NULL}
 };
 
index cae6cf32530d9a5bec063a9fda04cb7b7bb60df8..3df00fa479fe2ec13c9a38ef4a09e2de26e79368 100644 (file)
@@ -27,6 +27,8 @@ extern void utc_media_image_util_basic_startup(void);
 extern void utc_media_image_util_basic_cleanup(void);
 extern void utc_image_util_agif_encode_startup(void);
 extern void utc_image_util_agif_encode_cleanup(void);
+extern void utc_image_util_anim_encode_startup(void);
+extern void utc_image_util_anim_encode_cleanup(void);
 
 extern int utc_image_util_foreach_supported_colorspace_n1(void);
 extern int utc_image_util_foreach_supported_colorspace_n2(void);
@@ -235,6 +237,30 @@ extern int utc_image_util_agif_encode_save_to_buffer_n(void);
 extern int utc_image_util_agif_encode_destroy_p(void);
 extern int utc_image_util_agif_encode_destroy_n(void);
 
+extern int utc_image_util_anim_encode_create_p(void);
+extern int utc_image_util_anim_encode_create_n1(void);
+extern int utc_image_util_anim_encode_create_n2(void);
+extern int utc_image_util_anim_encode_set_loop_count_p(void);
+extern int utc_image_util_anim_encode_set_loop_count_n(void);
+extern int utc_image_util_anim_encode_set_background_color_p(void);
+extern int utc_image_util_anim_encode_set_background_color_n1(void);
+extern int utc_image_util_anim_encode_set_background_color_n2(void);
+extern int utc_image_util_anim_encode_set_lossless_p(void);
+extern int utc_image_util_anim_encode_set_lossless_n1(void);
+extern int utc_image_util_anim_encode_set_lossless_n2(void);
+extern int utc_image_util_anim_encode_add_frame_p(void);
+extern int utc_image_util_anim_encode_add_frame_n(void);
+extern int utc_image_util_anim_encode_save_to_file_p1(void);
+extern int utc_image_util_anim_encode_save_to_file_p2(void);
+extern int utc_image_util_anim_encode_save_to_file_n1(void);
+extern int utc_image_util_anim_encode_save_to_file_n2(void);
+extern int utc_image_util_anim_encode_save_to_buffer_p1(void);
+extern int utc_image_util_anim_encode_save_to_buffer_p2(void);
+extern int utc_image_util_anim_encode_save_to_buffer_n1(void);
+extern int utc_image_util_anim_encode_save_to_buffer_n2(void);
+extern int utc_image_util_anim_encode_destroy_p(void);
+extern int utc_image_util_anim_encode_destroy_n(void);
+
 
 testcase tc_array[] = {
        {"utc_image_util_foreach_supported_colorspace_n1",utc_image_util_foreach_supported_colorspace_n1,utc_image_util_decode_startup,utc_image_util_decode_cleanup},
@@ -441,6 +467,29 @@ testcase tc_array[] = {
        {"utc_image_util_agif_encode_save_to_buffer_n",utc_image_util_agif_encode_save_to_buffer_n,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup},
        {"utc_image_util_agif_encode_destroy_p",utc_image_util_agif_encode_destroy_p,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup},
        {"utc_image_util_agif_encode_destroy_n",utc_image_util_agif_encode_destroy_n,utc_image_util_agif_encode_startup,utc_image_util_agif_encode_cleanup},
+       {"utc_image_util_anim_encode_create_p",utc_image_util_anim_encode_create_p,NULL,NULL},
+       {"utc_image_util_anim_encode_create_n1",utc_image_util_anim_encode_create_n1,NULL,NULL},
+       {"utc_image_util_anim_encode_create_n2",utc_image_util_anim_encode_create_n2,NULL,NULL},
+       {"utc_image_util_anim_encode_set_loop_count_p",utc_image_util_anim_encode_set_loop_count_p,NULL,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_set_loop_count_n",utc_image_util_anim_encode_set_loop_count_n,NULL,NULL},
+       {"utc_image_util_anim_encode_set_background_color_p",utc_image_util_anim_encode_set_background_color_p,NULL,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_set_background_color_n1",utc_image_util_anim_encode_set_background_color_n1,NULL,NULL},
+       {"utc_image_util_anim_encode_set_background_color_n2",utc_image_util_anim_encode_set_background_color_n2,NULL,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_set_lossless_p",utc_image_util_anim_encode_set_lossless_p,NULL,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_set_lossless_n1",utc_image_util_anim_encode_set_lossless_n1,NULL,NULL},
+       {"utc_image_util_anim_encode_set_lossless_n2",utc_image_util_anim_encode_set_lossless_n2,NULL,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_add_frame_p",utc_image_util_anim_encode_add_frame_p,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_add_frame_n",utc_image_util_anim_encode_add_frame_n,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_file_p1",utc_image_util_anim_encode_save_to_file_p1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_file_p2",utc_image_util_anim_encode_save_to_file_p2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_file_n1",utc_image_util_anim_encode_save_to_file_n1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_file_n2",utc_image_util_anim_encode_save_to_file_n2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_buffer_p1",utc_image_util_anim_encode_save_to_buffer_p1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_buffer_p2",utc_image_util_anim_encode_save_to_buffer_p2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_buffer_n1",utc_image_util_anim_encode_save_to_buffer_n1,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_save_to_buffer_n2",utc_image_util_anim_encode_save_to_buffer_n2,utc_image_util_anim_encode_startup,utc_image_util_anim_encode_cleanup},
+       {"utc_image_util_anim_encode_destroy_p",utc_image_util_anim_encode_destroy_p,NULL,NULL},
+       {"utc_image_util_anim_encode_destroy_n",utc_image_util_anim_encode_destroy_n,NULL,NULL},
        {NULL, NULL}
 };
 
index a429e215aea3c058a3145261a76035c0bf3d35c9..5b10c052df5aefbb0c4c0c8ad583ecc6a72798b9 100644 (file)
@@ -27,6 +27,9 @@
 #define FILENAME_ORIGIN                        "sample.gif"
 #define FILENAME_ENCODE_AGIF   "test_output.gif"
 
+#define NUM_OF_ANIM_FILES              5
+#define LAST_ANIM_TYPE                 IMAGE_UTIL_ANIM_WEBP
+
 typedef struct {
        unsigned char *buffer;
        size_t buffer_size;
@@ -40,6 +43,34 @@ static image_util_agif_encode_h g_utc_agif_encode_h = NULL;
 static image_util_image_h g_utc_img_origin = NULL;
 static utc_buffer_data_t g_utc_buf_agif = { NULL, 0 };
 
+static const char *g_utc_anim_files[NUM_OF_ANIM_FILES] = {
+       "sample_anim1.png",
+       "sample_anim2.png",
+       "sample_anim3.png",
+       "sample_anim4.png",
+       "sample_anim5.png",
+};
+static const char *g_utc_anim_output_files[] = {
+       [IMAGE_UTIL_ANIM_GIF] = "test_output.gif",
+       [IMAGE_UTIL_ANIM_WEBP] = "test_output.webp",
+};
+
+static unsigned int g_utc_anim_idx = 0;
+static image_util_anim_type_e g_utc_anim_type = IMAGE_UTIL_ANIM_GIF;
+static image_util_image_h g_utc_anim_images[NUM_OF_ANIM_FILES] = { NULL, };
+static image_util_anim_encode_h g_utc_anim_encode_h[] = {
+       [IMAGE_UTIL_ANIM_GIF] = NULL,
+       [IMAGE_UTIL_ANIM_WEBP] = NULL,
+};
+static char *g_utc_anim_output_path[] = {
+       [IMAGE_UTIL_ANIM_GIF] = NULL,
+       [IMAGE_UTIL_ANIM_WEBP] = NULL,
+};
+static utc_buffer_data_t g_utc_anim_output_buffer[] = {
+       [IMAGE_UTIL_ANIM_GIF] = { NULL, 0 },
+       [IMAGE_UTIL_ANIM_WEBP] = { NULL, 0 },
+};
+
 /**
  * @function           utc_image_util_encode_agif_startup
  * @description                Called before each test
@@ -285,3 +316,572 @@ int utc_image_util_agif_encode_destroy_n(void)
 
        return 0;
 }
+
+/**
+ * @function           utc_image_util_anim_encode_startup
+ * @description                Called before each test
+ * @parameter          NA
+ * @return             NA
+ */
+void utc_image_util_anim_encode_startup(void)
+{
+       int ret = IMAGE_UTIL_ERROR_NONE;
+       char *anim_src_paths[NUM_OF_ANIM_FILES] = { NULL, };
+
+       char pszValue[CONFIG_VALUE_LEN_MAX] = {0,};
+       if ( true == GetValueForTCTSetting("DEVICE_SUITE_TARGET_30", pszValue, API_NAMESPACE )) {
+               PRINT_UTC_LOG("[Line : %d][%s] 'DEVICE_SUITE_TARGET_30' Values Received = %s\\n", __LINE__, API_NAMESPACE,  pszValue);
+               for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) {
+                       anim_src_paths[g_utc_anim_idx] = _utc_get_test_path(pszValue, g_utc_anim_files[g_utc_anim_idx]);
+                       FPRINTF("[%d:%s] IMAGE PATH [Decode: %s] \\n", __LINE__, __FUNCTION__, anim_src_paths[g_utc_anim_idx]);
+               }
+
+               for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) {
+                       g_utc_anim_output_path[g_utc_anim_type] = _utc_get_test_path(pszValue, g_utc_anim_output_files[g_utc_anim_type]);
+                       FPRINTF("[%d:%s] IMAGE PATH [Encode: %s] \\n", __LINE__, __FUNCTION__, g_utc_anim_output_path[g_utc_anim_type]);
+               }
+       } else {
+               PRINT_UTC_LOG("[Line : %d][%s] GetValueForTCTSetting returned error for 'DEVICE_SUITE_TARGET_30'\\n", __LINE__, API_NAMESPACE);
+               return;
+       }
+
+       for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) {
+               ret = _utc_decode_from_file(anim_src_paths[g_utc_anim_idx], &g_utc_anim_images[g_utc_anim_idx]);
+               if (ret != IMAGE_UTIL_ERROR_NONE)
+                       FPRINTF("[%d:%s] Startup error! \\n", __LINE__, __FUNCTION__);
+               g_free(anim_src_paths[g_utc_anim_idx]);
+       }
+}
+
+/**
+ * @function           utc_image_util_anim_encode_cleanup
+ * @description                Called after each test
+ * @parameter          NA
+ * @return             NA
+ */
+void utc_image_util_anim_encode_cleanup(void)
+{
+       /* end of TC */
+       for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) {
+               image_util_destroy_image(g_utc_anim_images[g_utc_anim_idx]);
+               g_utc_anim_images[g_utc_anim_idx] = NULL;
+       }
+
+       for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) {
+               g_free(g_utc_anim_output_path[g_utc_anim_type]);
+               g_utc_anim_output_path[g_utc_anim_type] = NULL;
+
+               g_free(g_utc_anim_output_buffer[g_utc_anim_type].buffer);
+               g_utc_anim_output_buffer[g_utc_anim_type].buffer = NULL;
+
+               image_util_anim_encode_destroy(g_utc_anim_encode_h[g_utc_anim_type]);
+               g_utc_anim_encode_h[g_utc_anim_type] = NULL;
+       }
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_create_p
+ * @since_tizen                6.0
+ * @description                Positive test case for image_util_anim_encode_create
+ */
+int utc_image_util_anim_encode_create_p(void)
+{
+       int ret;
+
+       for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) {
+               ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+               ret = image_util_anim_encode_destroy(g_utc_anim_encode_h[g_utc_anim_type]);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+               g_utc_anim_encode_h[g_utc_anim_type] = NULL;
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_create_n1
+ * @since_tizen                6.0
+ * @description                Negative test case for image_util_anim_encode_create
+ */
+int utc_image_util_anim_encode_create_n1(void)
+{
+       int ret;
+
+       for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) {
+               ret = image_util_anim_encode_create(g_utc_anim_type, NULL);
+               assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_create_n2
+ * @since_tizen                6.0
+ * @description                Negative test case for image_util_anim_encode_create
+ */
+int utc_image_util_anim_encode_create_n2(void)
+{
+       int ret;
+
+       ret = image_util_anim_encode_create(-1, &g_utc_anim_encode_h[0]);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NOT_SUPPORTED_FORMAT);
+
+       ret = image_util_anim_encode_create(LAST_ANIM_TYPE + 2, &g_utc_anim_encode_h[0]);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NOT_SUPPORTED_FORMAT);
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_set_loop_count_p
+ * @since_tizen                6.0
+ * @description                Positive test case for image_util_anim_encode_set_loop_count
+ */
+int utc_image_util_anim_encode_set_loop_count_p(void)
+{
+       int ret;
+
+       for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) {
+               ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+               ret = image_util_anim_encode_set_loop_count(g_utc_anim_encode_h[g_utc_anim_type], 0);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+               ret = image_util_anim_encode_set_loop_count(g_utc_anim_encode_h[g_utc_anim_type], 10);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_set_loop_count_n
+ * @since_tizen                6.0
+ * @description                Negative test case for image_util_anim_encode_set_loop_count
+ */
+int utc_image_util_anim_encode_set_loop_count_n(void)
+{
+       int ret;
+
+       ret = image_util_anim_encode_set_loop_count(NULL, 10);
+       assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER);
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_set_background_color_p
+ * @since_tizen                6.0
+ * @description                Positive test case for image_util_anim_encode_set_background_color
+ */
+int utc_image_util_anim_encode_set_background_color_p(void)
+{
+       int ret;
+
+       ret = image_util_anim_encode_create(IMAGE_UTIL_ANIM_WEBP, &g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP]);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+       ret = image_util_anim_encode_set_background_color(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], 0xFF, 0x00, 0x00, 0xFF);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+       ret = image_util_anim_encode_set_background_color(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], 0x00, 0xFF, 0x00, 0xFF);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+       ret = image_util_anim_encode_set_background_color(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], 0x00, 0x00, 0xFF, 0xFF);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_set_background_color_n1
+ * @since_tizen                6.0
+ * @description                Negative test case for image_util_anim_encode_set_background_color
+ */
+int utc_image_util_anim_encode_set_background_color_n1(void)
+{
+       int ret = IMAGE_UTIL_ERROR_NONE;
+
+       ret = image_util_anim_encode_set_background_color(NULL, 0x00, 0x00, 0x00, 0xFF);
+       assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER);
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_set_background_color_n2
+ * @since_tizen                6.0
+ * @description                Negative test case for image_util_anim_encode_set_background_color
+ */
+int utc_image_util_anim_encode_set_background_color_n2(void)
+{
+       int ret;
+
+       ret = image_util_anim_encode_create(IMAGE_UTIL_ANIM_GIF, &g_utc_anim_encode_h[IMAGE_UTIL_ANIM_GIF]);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+       ret = image_util_anim_encode_set_background_color(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_GIF], 0x00, 0x00, 0x00, 0xFF);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NOT_SUPPORTED_FORMAT);
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_set_lossless_p
+ * @since_tizen                6.0
+ * @description                Positive test case for image_util_anim_encode_set_lossless
+ */
+int utc_image_util_anim_encode_set_lossless_p(void)
+{
+       int ret;
+
+       ret = image_util_anim_encode_create(IMAGE_UTIL_ANIM_WEBP, &g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP]);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+       ret = image_util_anim_encode_set_lossless(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], true);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+       ret = image_util_anim_encode_set_lossless(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], false);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_set_lossless_n1
+ * @since_tizen                6.0
+ * @description                Negative test case for image_util_anim_encode_set_lossless
+ */
+int utc_image_util_anim_encode_set_lossless_n1(void)
+{
+       int ret;
+
+       ret = image_util_anim_encode_set_lossless(NULL, true);
+       assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER);
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_set_lossless_n2
+ * @since_tizen                6.0
+ * @description                Negative test case for image_util_anim_encode_set_lossless
+ */
+int utc_image_util_anim_encode_set_lossless_n2(void)
+{
+       int ret;
+
+       ret = image_util_anim_encode_create(IMAGE_UTIL_ANIM_GIF, &g_utc_anim_encode_h[IMAGE_UTIL_ANIM_GIF]);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+       ret = image_util_anim_encode_set_lossless(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_GIF], true);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NOT_SUPPORTED_FORMAT);
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_add_frame_p
+ * @since_tizen                6.0
+ * @description                Positive test case for image_util_anim_encode_add_frame
+ */
+int utc_image_util_anim_encode_add_frame_p(void)
+{
+       int ret;
+
+       for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) {
+               ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+               ret = image_util_anim_encode_add_frame(g_utc_anim_encode_h[g_utc_anim_type], g_utc_anim_images[0], 20);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_add_frame_n
+ * @since_tizen                6.0
+ * @description                Negative test case for image_util_anim_encode_add_frame
+ */
+int utc_image_util_anim_encode_add_frame_n(void)
+{
+       int ret;
+
+       for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) {
+               ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+               ret = image_util_anim_encode_add_frame(NULL, g_utc_anim_images[0], 20);
+               assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER);
+
+               ret = image_util_anim_encode_add_frame(g_utc_anim_encode_h[g_utc_anim_type], NULL, 20);
+               assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_save_to_file_p1
+ * @since_tizen                6.0
+ * @description                Positive test case for image_util_anim_encode_save_to_file
+ */
+int utc_image_util_anim_encode_save_to_file_p1(void)
+{
+       int ret;
+
+       for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) {
+               ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+               ret = image_util_anim_encode_set_loop_count(g_utc_anim_encode_h[g_utc_anim_type], 0);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+               for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) {
+                       ret = image_util_anim_encode_add_frame(g_utc_anim_encode_h[g_utc_anim_type], g_utc_anim_images[g_utc_anim_idx], 100);
+                       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+               }
+
+               ret = image_util_anim_encode_save_to_file(g_utc_anim_encode_h[g_utc_anim_type], g_utc_anim_output_path[g_utc_anim_type]);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_save_to_file_p2
+ * @since_tizen                6.0
+ * @description                Positive test case for image_util_anim_encode_save_to_file
+ */
+int utc_image_util_anim_encode_save_to_file_p2(void)
+{
+       int ret;
+
+       ret = image_util_anim_encode_create(IMAGE_UTIL_ANIM_WEBP, &g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP]);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+       ret = image_util_anim_encode_set_lossless(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], true);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+       for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) {
+               ret = image_util_anim_encode_add_frame(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], g_utc_anim_images[IMAGE_UTIL_ANIM_WEBP], 100);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+       }
+
+       ret = image_util_anim_encode_save_to_file(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], g_utc_anim_output_path[IMAGE_UTIL_ANIM_WEBP]);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_save_to_file_n1
+ * @since_tizen                6.0
+ * @description                Negative test case for image_util_anim_encode_save_to_file
+ */
+int utc_image_util_anim_encode_save_to_file_n1(void)
+{
+       int ret;
+
+       for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) {
+               ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+               for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) {
+                       ret = image_util_anim_encode_add_frame(g_utc_anim_encode_h[g_utc_anim_type], g_utc_anim_images[g_utc_anim_idx], 100);
+                       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+               }
+
+               ret = image_util_anim_encode_save_to_file(NULL, g_utc_anim_output_path[g_utc_anim_type]);
+               assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER);
+
+               ret = image_util_anim_encode_save_to_file(g_utc_anim_encode_h[g_utc_anim_type], NULL);
+               assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_save_to_file_n2
+ * @since_tizen                6.0
+ * @description                Negative test case for image_util_anim_encode_save_to_file
+ */
+int utc_image_util_anim_encode_save_to_file_n2(void)
+{
+       int ret;
+
+       for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) {
+               ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+               ret = image_util_anim_encode_save_to_file(g_utc_anim_encode_h[g_utc_anim_type], g_utc_anim_output_path[g_utc_anim_type]);
+               assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_save_to_buffer_p1
+ * @since_tizen                6.0
+ * @description                Positive test case for image_util_anim_encode_save_to_buffer
+ */
+int utc_image_util_anim_encode_save_to_buffer_p1(void)
+{
+       int ret;
+
+       for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) {
+               ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+               ret = image_util_anim_encode_set_loop_count(g_utc_anim_encode_h[g_utc_anim_type], 0);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+               for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) {
+                       ret = image_util_anim_encode_add_frame(g_utc_anim_encode_h[g_utc_anim_type], g_utc_anim_images[g_utc_anim_idx], 100);
+                       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+               }
+
+               ret = image_util_anim_encode_save_to_buffer(g_utc_anim_encode_h[g_utc_anim_type],
+                                                       &g_utc_anim_output_buffer[g_utc_anim_type].buffer,
+                                                       &g_utc_anim_output_buffer[g_utc_anim_type].buffer_size);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+               assert_neq(g_utc_anim_output_buffer[g_utc_anim_type].buffer, NULL);
+               assert_gt(g_utc_anim_output_buffer[g_utc_anim_type].buffer_size, 8);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_save_to_buffer_p2
+ * @since_tizen                6.0
+ * @description                Positive test case for image_util_anim_encode_save_to_buffer
+ */
+int utc_image_util_anim_encode_save_to_buffer_p2(void)
+{
+       int ret;
+
+       ret = image_util_anim_encode_create(IMAGE_UTIL_ANIM_WEBP, &g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP]);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+       ret = image_util_anim_encode_set_lossless(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], true);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+       for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) {
+               ret = image_util_anim_encode_add_frame(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP], g_utc_anim_images[IMAGE_UTIL_ANIM_WEBP], 100);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+       }
+
+       ret = image_util_anim_encode_save_to_buffer(g_utc_anim_encode_h[IMAGE_UTIL_ANIM_WEBP],
+                                               &g_utc_anim_output_buffer[IMAGE_UTIL_ANIM_WEBP].buffer,
+                                               &g_utc_anim_output_buffer[IMAGE_UTIL_ANIM_WEBP].buffer_size);
+       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+       assert_neq(g_utc_anim_output_buffer[IMAGE_UTIL_ANIM_WEBP].buffer, NULL);
+       assert_gt(g_utc_anim_output_buffer[IMAGE_UTIL_ANIM_WEBP].buffer_size, 8);
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_save_to_buffer_n1
+ * @since_tizen                6.0
+ * @description                Negative test case for image_util_anim_encode_save_to_buffer
+ */
+int utc_image_util_anim_encode_save_to_buffer_n1(void)
+{
+       int ret;
+
+       for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) {
+               ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+               for (g_utc_anim_idx = 0; g_utc_anim_idx < NUM_OF_ANIM_FILES; g_utc_anim_idx++) {
+                       ret = image_util_anim_encode_add_frame(g_utc_anim_encode_h[g_utc_anim_type], g_utc_anim_images[g_utc_anim_idx], 100);
+                       assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+               }
+
+               ret = image_util_anim_encode_save_to_buffer(NULL,
+                                                       &g_utc_anim_output_buffer[g_utc_anim_type].buffer,
+                                                       &g_utc_anim_output_buffer[g_utc_anim_type].buffer_size);
+               assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER);
+
+               ret = image_util_anim_encode_save_to_buffer(g_utc_anim_encode_h[g_utc_anim_type],
+                                                       NULL,
+                                                       &g_utc_anim_output_buffer[g_utc_anim_type].buffer_size);
+               assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER);
+
+               ret = image_util_anim_encode_save_to_buffer(g_utc_anim_encode_h[g_utc_anim_type],
+                                                       &g_utc_anim_output_buffer[g_utc_anim_type].buffer,
+                                                       NULL);
+               assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_save_to_buffer_n2
+ * @since_tizen                6.0
+ * @description                Negative test case for image_util_anim_encode_save_to_buffer
+ */
+int utc_image_util_anim_encode_save_to_buffer_n2(void)
+{
+       int ret;
+
+       for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) {
+               ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+               ret = image_util_anim_encode_save_to_buffer(g_utc_anim_encode_h[g_utc_anim_type],
+                                                       &g_utc_anim_output_buffer[g_utc_anim_type].buffer,
+                                                       &g_utc_anim_output_buffer[g_utc_anim_type].buffer_size);
+               assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER);
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_destroy_p
+ * @since_tizen                6.0
+ * @description                Positive test case for image_util_anim_encode_destroy
+ */
+int utc_image_util_anim_encode_destroy_p(void)
+{
+       int ret;
+
+       for (g_utc_anim_type = 0; g_utc_anim_type <= LAST_ANIM_TYPE; g_utc_anim_type++) {
+               ret = image_util_anim_encode_create(g_utc_anim_type, &g_utc_anim_encode_h[g_utc_anim_type]);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+
+               ret = image_util_anim_encode_destroy(g_utc_anim_encode_h[g_utc_anim_type]);
+               assert_eq(ret, IMAGE_UTIL_ERROR_NONE);
+               g_utc_anim_encode_h[g_utc_anim_type] = NULL;
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase           utc_image_util_anim_encode_destroy_n
+ * @since_tizen                6.0
+ * @description                Negative test case for image_util_anim_encode_destroy
+ */
+int utc_image_util_anim_encode_destroy_n(void)
+{
+       int ret;
+
+       ret = image_util_anim_encode_destroy(NULL);
+       assert_eq(ret, IMAGE_UTIL_ERROR_INVALID_PARAMETER);
+
+       return 0;
+}