Fix Coverity issues
[platform/core/api/media-content.git] / test / media-content_test.c
index 9c1be5c..809382f 100755 (executable)
@@ -24,6 +24,8 @@
 #include <pthread.h>
 #include <glib.h>
 #include <tzplatform_config.h>
+#include <media_content_internal.h>
+
 
 filter_h g_filter = NULL;
 filter_h g_filter_g = NULL;    /*filter for group like folder, tag, playlist, album, year ... */
@@ -32,8 +34,8 @@ GMainLoop *g_loop = NULL;
 static int g_cnt = 0;
 static int g_media_cnt = 0;
 
-#define test_audio_id  "0f999626-6218-450c-a4ad-181a3bab6ebf"
-#define test_video_id  "c1a92494-cc5b-4d74-aa7d-253199234548"
+#define test_audio_id  "3304285f-1070-41af-8b4e-f0086cc768f3"
+#define test_video_id  "53c43e7e-53d2-4194-80a6-55d5dcde0def"
 #define test_image_id "db1c184c-6f31-43b4-b924-8c00ac5b6197"
 media_folder_h g_folder = NULL;
 
@@ -41,7 +43,6 @@ bool get_audio_meta(audio_meta_h audio)
 {
        char *c_value = NULL;
        int i_value = 0;
-       time_t t_value = 0;
        int ret = MEDIA_CONTENT_ERROR_NONE;
 
        media_content_debug("=== audio meta ===");
@@ -126,21 +127,6 @@ bool get_audio_meta(audio_meta_h audio)
                media_content_error("error when get meta : [%d]", ret);
        media_content_debug("duration : [%d]", i_value);
 
-       ret = audio_meta_get_played_count(audio, &i_value);
-       if (ret != MEDIA_CONTENT_ERROR_NONE)
-               media_content_error("error when get meta : [%d]", ret);
-       media_content_debug("played_count : [%d]", i_value);
-
-       ret = audio_meta_get_played_time(audio, &t_value);
-       if (ret != MEDIA_CONTENT_ERROR_NONE)
-               media_content_error("error when get meta : [%d]", ret);
-       media_content_debug("played_time : [%d]", t_value);
-
-       ret = audio_meta_get_played_position(audio, &i_value);
-       if (ret != MEDIA_CONTENT_ERROR_NONE)
-               media_content_error("error when get meta : [%d]", ret);
-       media_content_debug("played_position : [%d]", i_value);
-
        return true;
 }
 
@@ -148,7 +134,6 @@ bool get_video_meta(video_meta_h video)
 {
        char *c_value = NULL;
        int i_value = 0;
-       time_t t_value = 0;
        int ret = MEDIA_CONTENT_ERROR_NONE;
 
        media_content_debug("=== video meta ===");
@@ -233,21 +218,6 @@ bool get_video_meta(video_meta_h video)
                media_content_error("error when get meta : [%d]", ret);
        media_content_debug("height : [%d]", i_value);
 
-       ret = video_meta_get_played_count(video, &i_value);
-       if (ret != MEDIA_CONTENT_ERROR_NONE)
-               media_content_error("error when get meta : [%d]", ret);
-       media_content_debug("played_count : [%d]", i_value);
-
-       ret = video_meta_get_played_time(video, &t_value);
-       if (ret != MEDIA_CONTENT_ERROR_NONE)
-               media_content_error("error when get meta : [%d]", ret);
-       media_content_debug("played_time : [%d]", t_value);
-
-       ret = video_meta_get_played_position(video, &i_value);
-       if (ret != MEDIA_CONTENT_ERROR_NONE)
-               media_content_error("error when get meta : [%d]", ret);
-       media_content_debug("played_position : [%d]", i_value);
-
        return true;
 }
 
@@ -265,10 +235,14 @@ bool gallery_folder_list_cb(media_folder_h folder, void *user_data)
 bool gallery_media_item_cb(media_info_h media, void *user_data)
 {
        media_info_h new_media = NULL;
-       media_info_clone(&new_media, media);
+       int ret = MEDIA_CONTENT_ERROR_NONE;
 
-       GList **list = (GList**)user_data;
-       *list = g_list_append(*list, new_media);
+       ret = media_info_clone(&new_media, media);
+
+       if (ret != MEDIA_CONTENT_ERROR_NONE) {
+               GList **list = (GList**)user_data;
+               *list = g_list_append(*list, new_media);
+       }
 
        return true;
 }
@@ -473,17 +447,17 @@ bool media_item_cb(media_info_h media, void *user_data)
        ret = media_info_get_added_time(media, &t_value);
        if (ret != MEDIA_CONTENT_ERROR_NONE)
                media_content_error("error when get info : [%d]", ret);
-       media_content_debug("added_time : [%d]", t_value);
+       media_content_debug("added_time : [%ld]", t_value);
 
        ret = media_info_get_modified_time(media, &t_value);
        if (ret != MEDIA_CONTENT_ERROR_NONE)
                media_content_error("error when get info : [%d]", ret);
-       media_content_debug("modified_time : [%d]", t_value);
+       media_content_debug("modified_time : [%ld]", t_value);
 
        ret = media_info_get_timeline(media, &t_value);
        if (ret != MEDIA_CONTENT_ERROR_NONE)
                media_content_error("error when get info : [%d]", ret);
-       media_content_debug("timeline : [%d]", t_value);
+       media_content_debug("timeline : [%ld]", t_value);
 
        ret = media_info_get_rating(media, &i_value);
        if (ret != MEDIA_CONTENT_ERROR_NONE)
@@ -557,10 +531,12 @@ bool folder_list_cb(media_folder_h folder, void *user_data)
                media_content_debug("folder_id = [%s]", folder_id);
 
                if (media_folder_get_parent_folder_id(folder, &str_val) != MEDIA_CONTENT_ERROR_NONE) {
+                       SAFE_FREE(folder_id);
                        media_content_error("[ERROR] media_folder_get_parent_folder_id is failed");
                        return false;
                }
                media_content_debug("parent_folder_id = [%s]", str_val);
+               SAFE_FREE(str_val);
 
                if (media_folder_get_path(folder, &str_val) != MEDIA_CONTENT_ERROR_NONE) {
                        SAFE_FREE(folder_id);
@@ -591,6 +567,7 @@ bool folder_list_cb(media_folder_h folder, void *user_data)
                        return false;
                }
                media_content_debug("storage_id = [%s]", str_val);
+               SAFE_FREE(str_val);
 
                if (media_folder_get_order(folder, &int_val) != MEDIA_CONTENT_ERROR_NONE) {
                        media_content_error("[ERROR] media_folder_get_order is failed");
@@ -666,6 +643,7 @@ bool test_album_from_db(int album_id)
 
 bool playlist_list_cb(media_playlist_h playlist, void *user_data)
 {
+       int ret = MEDIA_CONTENT_ERROR_NONE;
        int playlist_id = 0;
        char *playlist_name = NULL;
        media_playlist_h playlist_h;
@@ -681,24 +659,37 @@ bool playlist_list_cb(media_playlist_h playlist, void *user_data)
                return false;
        }
 
-       media_playlist_get_playlist_id(playlist, &playlist_id);
+       ret = media_playlist_get_playlist_id(playlist, &playlist_id);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_playlist_get_playlist_id : [%d]", ret);
+
        media_content_debug("playlist_id : %d", playlist_id);
        /* 64bit build issue */
 #if 0
        if (user_data != NULL)
                *list = g_list_append(*list, (gpointer)playlist_id);
 #endif
-       media_playlist_get_name(playlist, &playlist_name);
+       ret = media_playlist_get_name(playlist, &playlist_name);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_playlist_get_name : [%d]", ret);
+
        media_content_debug("playlist_name : %s", playlist_name);
        SAFE_FREE(playlist_name);
 
-       media_playlist_get_thumbnail_path(playlist, &playlist_thumbnail_path);
+       ret = media_playlist_get_thumbnail_path(playlist, &playlist_thumbnail_path);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_playlist_get_thumbnail_path : [%d]", ret);
+
        media_content_debug("playlist_thumbnail_path : %s", playlist_thumbnail_path);
        SAFE_FREE(playlist_thumbnail_path);
 
-       media_playlist_get_playlist_from_db(playlist_id, &playlist_h);
+       ret = media_playlist_get_playlist_from_db(playlist_id, &playlist_h);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_playlist_get_playlist_from_db : [%d]", ret);
 
-       media_playlist_destroy(playlist_h);
+       ret = media_playlist_destroy(playlist_h);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_playlist_destroy : [%d]", ret);
 
        return true;
 }
@@ -735,6 +726,14 @@ bool bookmarks_cb(media_bookmark_h bookmark, void *user_data)
        media_bookmark_h *_bookmark = (media_bookmark_h*)bookmark;
        int ret = MEDIA_CONTENT_ERROR_NONE;
 
+       if (_bookmark != NULL && user_data != NULL) {
+               media_bookmark_h new_bookmark;
+
+               media_bookmark_clone(&new_bookmark, bookmark);
+               GList **list = (GList**)user_data;
+               *list = g_list_append(*list, new_bookmark);
+       }
+
        if (_bookmark != NULL) {
                char *name = NULL;
                time_t time = 0;
@@ -757,7 +756,16 @@ bool bookmarks_cb(media_bookmark_h bookmark, void *user_data)
                if (ret != MEDIA_CONTENT_ERROR_NONE)
                        media_content_error("error media_bookmark_get_marked_time : [%d]", ret);
                else
-                       media_content_debug("bookmark marked_time : %d", time);
+                       media_content_debug("bookmark marked_time : %ld", time);
+
+               ret = media_bookmark_get_name(bookmark, &name);
+               if (ret != MEDIA_CONTENT_ERROR_NONE)
+                       media_content_error("error media_bookmark_get_name : [%d]", ret);
+               else
+                       media_content_debug("bookmark name : %s", name);
+
+               SAFE_FREE(name);
+
        }
 
        return true;
@@ -1103,7 +1111,6 @@ int test_gallery_scenario(void)
                                video_meta_h video_handle;
                                char *title = NULL, *artist = NULL, *album = NULL, *album_artist = NULL;
                                int duration = 0;
-                               time_t time_played = 0;
 
                                ret = media_info_get_video(media_handle, &video_handle);
                                if (ret != MEDIA_CONTENT_ERROR_NONE) {
@@ -1121,12 +1128,9 @@ int test_gallery_scenario(void)
                                        ret = video_meta_get_duration(video_handle, &duration);
                                        if (ret != MEDIA_CONTENT_ERROR_NONE)
                                                media_content_error("error video_meta_get_duration : [%d]", ret);
-                                       ret = video_meta_get_played_time(video_handle, &time_played);
-                                       if (ret != MEDIA_CONTENT_ERROR_NONE)
-                                               media_content_error("error video_meta_get_played_time : [%d]", ret);
 
                                        media_content_debug("This is Video");
-                                       media_content_debug("Title: %s, Album: %s, Artist: %s, Album_artist: %s \n Duration: %d, Played time: %d", title, album, artist, album_artist, duration, time_played);
+                                       media_content_debug("Title: %s, Album: %s, Artist: %s, Album_artist: %s \n Duration: %d", title, album, artist, album_artist, duration);
                                }
 
                                SAFE_FREE(title);
@@ -1173,7 +1177,7 @@ int test_gallery_scenario(void)
                        media_content_error("media_folder_foreach_media_from_db failed: %d", ret);
                        return -1;
                } else {
-                       media_content_error("media_folder_foreach_media_from_db success!", ret);
+                       media_content_error("media_folder_foreach_media_from_db success!");
                        char *media_id = NULL;
                        char *media_name = NULL;
                        char *media_path = NULL;
@@ -1236,7 +1240,6 @@ int test_gallery_scenario(void)
                                        video_meta_h video_handle;
                                        char *title = NULL, *artist = NULL, *album = NULL, *album_artist = NULL;;
                                        int duration = 0;
-                                       time_t time_played;
 
                                        ret = media_info_get_video(media_handle, &video_handle);
                                        if (ret != MEDIA_CONTENT_ERROR_NONE) {
@@ -1254,12 +1257,9 @@ int test_gallery_scenario(void)
                                                ret = video_meta_get_duration(video_handle, &duration);
                                                if (ret != MEDIA_CONTENT_ERROR_NONE)
                                                        media_content_error("error video_meta_get_duration : [%d]", ret);
-                                               ret = video_meta_get_played_time(video_handle, &time_played);
-                                               if (ret != MEDIA_CONTENT_ERROR_NONE)
-                                                       media_content_error("error video_meta_get_played_time : [%d]", ret);
 
                                                media_content_debug("This is Video");
-                                               media_content_debug("Title: %s, Album: %s, Artist: %s, Album_artist: %s \n Duration: %d, Played time: %d\n", title, album, artist, album_artist, duration, time_played);
+                                               media_content_debug("Title: %s, Album: %s, Artist: %s, Album_artist: %s \n Duration: %d\n", title, album, artist, album_artist, duration);
                                        }
 
                                        SAFE_FREE(title);
@@ -1295,7 +1295,7 @@ int test_gallery_scenario(void)
                                                        if (ret != MEDIA_CONTENT_ERROR_NONE)
                                                                media_content_error("error media_bookmark_get_thumbnail_path : [%d]", ret);
 
-                                                       media_content_debug("Bookmark time : %d\nBookmar thumb: %s", marked_time, thumb_path);
+                                                       media_content_debug("Bookmark time : %ld\nBookmar thumb: %s", marked_time, thumb_path);
                                                        SAFE_FREE(thumb_path);
                                                }
 
@@ -1533,7 +1533,7 @@ int test_media_info_operation_2(void)
 
 #if 0
        /* Bookmark */
-       char *thumbnail_path1 = tzplatform_mkpath(TZ_USER_CONTENT, "Images and videos/My video clips/teat11.jpg"));
+       char *thumbnail_path1 = tzplatform_mkpath(TZ_USER_VIDEOS, "teat11.jpg");
        media_bookmark_insert_to_db(test_video_id, 100, thumbnail_path1);
        media_bookmark_insert_to_db(test_video_id, 200, thumbnail_path1);
 
@@ -1735,7 +1735,7 @@ int test_playlist_operation(void)
                media_playlist_add_media(playlist_1, test_video_id);
 
                #if 0
-               char *playlist_thumb_path = tzplatform_mkpath(TZ_USER_CONTENT, "Images/Default.jpg"));
+               char *playlist_thumb_path = tzplatform_mkpath(TZ_USER_IMAGES, "Default.jpg"));
                media_playlist_set_thumbnail_path(playlist_1, playlist_thumb_path);
                #endif
 
@@ -1768,8 +1768,8 @@ int test_playlist_operation(void)
        media_content_debug("playlist_id_3 [%d]", playlist_id_3);
 
        /* Export and import playlist */
-       media_playlist_export_to_file(playlist_3, "/opt/usr/media/Music/playlist.m3u");
-       media_playlist_import_from_file("/opt/usr/media/Music/playlist.m3u", "playlist_4", &playlist_4);
+       media_playlist_export_to_file(playlist_3, tzplatform_mkpath(TZ_USER_MUSIC, "playlist.m3u"));
+       media_playlist_import_from_file(tzplatform_mkpath(TZ_USER_MUSIC, "playlist.m3u"), "playlist_4", &playlist_4);
 
        /* Filter for media*/
        ret = media_filter_create(&m_filter);
@@ -1858,6 +1858,51 @@ int test_playlist_operation(void)
        return ret;
 }
 
+int test_playlist_operation_v2(void)
+{
+       int ret = MEDIA_CONTENT_ERROR_NONE;
+       media_playlist_h playlist_1 = NULL;
+       const char *playlist_name_1 = "myPlaylist_1";
+       const char *playlist_thumb_path = tzplatform_mkpath(TZ_USER_IMAGES, "Default.jpg");
+       int playlist_id = 0;
+
+       media_content_debug("\n============Playlist Test V2============\n\n");
+
+       ret = media_playlist_create(&playlist_1);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_playlist_create : [%d]", ret);
+
+       ret = media_playlist_set_name(playlist_1, playlist_name_1);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_playlist_set_name : [%d]", ret);
+
+       ret = media_playlist_set_thumbnail_path(playlist_1, playlist_thumb_path);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_playlist_set_thumbnail_path : [%d]", ret);
+
+       ret = media_playlist_insert_to_db_v2(playlist_1);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_playlist_insert_to_db_v2 : [%d]", ret);
+
+       ret = media_playlist_set_name(playlist_1, "myPlaylist_3");
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_playlist_set_name : [%d]", ret);
+
+       ret = media_playlist_get_playlist_id(playlist_1, &playlist_id);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_playlist_get_playlist_id : [%d]", ret);
+
+       ret = media_playlist_update_to_db_v2(playlist_id, playlist_1);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_playlist_update_to_db_v2 : [%d]", ret);
+
+       ret = media_playlist_destroy(playlist_1);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_playlist_destroy : [%d]", ret);
+
+       return ret;
+}
+
 int test_tag_operation(void)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
@@ -1970,7 +2015,7 @@ int test_tag_operation(void)
        ret = media_tag_add_media(tag_2, test_video_id);
        if (ret != MEDIA_CONTENT_ERROR_NONE)
                media_content_error("error media_tag_add_media : [%d]", ret);
-       ret = media_tag_set_name(tag_2, (char *)"test_tag");
+       ret = media_tag_set_name(tag_2, "test_tag");
        if (ret != MEDIA_CONTENT_ERROR_NONE)
                media_content_error("error media_tag_set_name : [%d]", ret);
        ret = media_tag_update_to_db(tag_2);
@@ -1996,6 +2041,9 @@ int test_tag_operation(void)
        ret = media_tag_destroy(tag_2);
        if (ret != MEDIA_CONTENT_ERROR_NONE)
                media_content_error("error media_tag_destroy : [%d]", ret);
+       ret = media_tag_destroy(tag_3);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_tag_destroy : [%d]", ret);
        ret = media_filter_destroy(filter);
        if (ret != MEDIA_CONTENT_ERROR_NONE)
                media_content_error("error media_filter_destroy : [%d]", ret);
@@ -2003,6 +2051,57 @@ int test_tag_operation(void)
        return ret;
 }
 
+int test_tag_operation_v2(void)
+{
+       int ret = MEDIA_CONTENT_ERROR_NONE;
+       media_tag_h tag_1;
+       const char *tag_name_1 = "myTag_1";
+       int tag_id = -1;
+
+       media_content_debug("\n============Tag Test V2============\n\n");
+
+       /* Create Tag */
+       ret = media_tag_create(&tag_1);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_tag_create : [%d]", ret);
+
+       ret = media_tag_set_name(tag_1, tag_name_1);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_tag_set_name : [%d]", ret);
+
+       /* Add media to Tag */
+       ret = media_tag_add_media(tag_1, test_audio_id);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_tag_add_media : [%d]", ret);
+
+       ret = media_tag_add_media(tag_1, test_video_id);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_tag_add_media : [%d]", ret);
+
+       ret = media_tag_insert_to_db_v2(tag_1);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_tag_insert_to_db_v2 : [%d]", ret);
+
+#if 1
+       ret = media_tag_get_tag_id(tag_1, &tag_id);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_tag_get_tag_id : [%d]", ret);
+
+       ret = media_tag_remove_media(tag_1, test_video_id);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_tag_add_media : [%d]", ret);
+
+       ret = media_tag_update_to_db_v2(tag_id, tag_1);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_tag_update_to_db_v2 : [%d]", ret);
+#endif
+
+       ret = media_tag_destroy(tag_1);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_tag_destroy : [%d]", ret);
+
+       return ret;
+}
 
 int test_bookmark_operation(void)
 {
@@ -2010,6 +2109,8 @@ int test_bookmark_operation(void)
        int ret = MEDIA_CONTENT_ERROR_NONE;
        int bookmark_count = 0;
        filter_h filter;
+       GList *all_item_list = NULL;
+       int idx = 0;
 
        media_content_debug("\n============Bookmark Test============\n\n");
 
@@ -2028,7 +2129,7 @@ int test_bookmark_operation(void)
                media_content_error("error media_filter_set_order : [%d]", ret);
 
        /* insert bookmark to video */
-       const char *thumbnail_path1 = tzplatform_mkpath(TZ_USER_CONTENT, "Images and videos/My video clips/teat11.jpg");
+       const char *thumbnail_path1 = tzplatform_mkpath(TZ_USER_VIDEOS, "teat11.jpg");
        ret = media_bookmark_insert_to_db(test_video_id, 400, thumbnail_path1);
        if (ret != MEDIA_CONTENT_ERROR_NONE)
                media_content_error("error media_bookmark_insert_to_db : [%d]", ret);
@@ -2043,6 +2144,27 @@ int test_bookmark_operation(void)
        else
                media_content_debug("bookmark_count = [%d]", bookmark_count);
 
+       ret = media_info_foreach_bookmark_from_db(test_video_id, NULL, bookmarks_cb, &all_item_list);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_info_foreach_bookmark_from_db : [%d]", ret);
+
+       for (idx = 0; idx < g_list_length(all_item_list); idx++) {
+               media_bookmark_h bookmark_handle;
+               bookmark_handle = (media_bookmark_h)g_list_nth_data(all_item_list, idx);
+
+               ret = media_bookmark_set_name(bookmark_handle, "test 1");
+               if (ret != MEDIA_CONTENT_ERROR_NONE)
+                       media_content_error("error media_bookmark_set_name : [%d]", ret);
+
+               ret = media_bookmark_update_to_db(bookmark_handle);
+               if (ret != MEDIA_CONTENT_ERROR_NONE)
+                       media_content_error("error media_bookmark_update_to_db : [%d]", ret);
+       }
+
+       ret = media_info_foreach_bookmark_from_db(test_video_id, NULL, bookmarks_cb, NULL);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_info_foreach_bookmark_from_db : [%d]", ret);
+
        ret = media_filter_destroy(filter);
        if (ret != MEDIA_CONTENT_ERROR_NONE)
                media_content_error("error media_filter_destroy : [%d]", ret);
@@ -2050,6 +2172,45 @@ int test_bookmark_operation(void)
        return ret;
 }
 
+int test_bookmark_operation_v2(void)
+{
+       media_content_debug("\n============Bookmark Test V2============\n\n");
+
+       int ret = MEDIA_CONTENT_ERROR_NONE;
+       media_bookmark_h bookmark = NULL;
+       const char *thumbnail_path1 = tzplatform_mkpath(TZ_USER_VIDEOS, "teat11.jpg");
+
+       ret = media_bookmark_create(test_video_id, 400, &bookmark);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_bookmark_create : [%d]", ret);
+
+       ret = media_bookmark_set_name(bookmark, "test bookmark");
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_bookmark_set_name : [%d]", ret);
+
+       ret = media_bookmark_set_thumbnail_path(bookmark, thumbnail_path1);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_bookmark_set_thumbnail_path : [%d]", ret);
+
+       ret = media_bookmark_insert_to_db_v2(bookmark);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_bookmark_insert_to_db_v2 : [%d]", ret);
+
+       ret = media_bookmark_set_name(bookmark, "test bookmark 2");
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_bookmark_set_name : [%d]", ret);
+
+       ret = media_bookmark_update_to_db(bookmark);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_bookmark_update_to_db : [%d]", ret);
+
+       ret = media_bookmark_destroy(bookmark);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("error media_bookmark_destroy : [%d]", ret);
+
+       return ret;
+}
+
 int test_album_list(void)
 {
        media_content_debug("\n============Album Test============\n\n");
@@ -2116,13 +2277,15 @@ int test_group_operation(void)
                ret = media_group_get_group_count_from_db(g_filter, idx, &group_count);
                if (ret != MEDIA_CONTENT_ERROR_NONE) {
                        test_filter_destroy();
-                       media_content_error("media_group_get_group_count_from_db fail. idx=[%d]", ret, idx);
+                       media_content_error("media_group_get_group_count_from_db fail. ret=[%d] idx=[%d]", ret, idx);
                        return ret;
                } else {
                        media_content_debug("[%2d]group_count [%d]", idx, group_count);
                }
 
                ret = media_group_foreach_group_from_db(g_filter, idx, group_list_cb, &idx);
+               if (ret != MEDIA_CONTENT_ERROR_NONE)
+                       media_content_error("media_group_foreach_group_from_db failed: %d", ret);
        }
        ret = test_filter_destroy();
 
@@ -2240,9 +2403,9 @@ int test_update_operation()
 int test_insert(void)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
-       const char *path = "/opt/usr/media/Images/Default.jpg";
+       const char *path = tzplatform_mkpath(TZ_USER_IMAGES, "Default.jpg");
 #if 0
-       const char *path = "/opt/usr/media/Others/other.txt";
+       const char *path = tzplatform_mkpath(TZ_USER_DOCUMENTS, "other.txt"));
        char *path = NULL;
 #endif
        media_info_h media_item = NULL;
@@ -2285,7 +2448,7 @@ int test_move(void)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
        const char *move_media_id = "60aea677-4742-408e-b5f7-f2628062d06d";
-       const char *dst_path = tzplatform_mkpath(TZ_USER_CONTENT, "Images/XX/Default1.jpg");
+       const char *dst_path = tzplatform_mkpath(TZ_USER_IMAGES, "XX/Default1.jpg");
        media_info_h move_media = NULL;
 
        ret = media_info_get_media_from_db(move_media_id, &move_media);
@@ -2506,6 +2669,7 @@ void face_detection_complete_cb(media_content_error_e error, int count, void *us
                        media_content_error("media_info_get_media_id failed: %d", ret);
                if (media_id != NULL) {
                        ret = media_info_foreach_face_from_db(media_id, NULL, face_cb, NULL);
+                       SAFE_FREE(media_id);
                        if (ret != MEDIA_CONTENT_ERROR_NONE)
                                media_content_error("media_info_foreach_face_from_db failed: %d", ret);
                }
@@ -2540,11 +2704,9 @@ bool start_face_detection_cb(media_info_h media, void *user_data)
        ret = media_info_clone(&dst, media);
        if (ret != MEDIA_CONTENT_ERROR_NONE)
                media_content_error("media_info_clone failed: %d", ret);
-       else {
-               ret = media_info_start_face_detection(dst, face_detection_complete_cb, dst);
-               if (ret != MEDIA_CONTENT_ERROR_NONE)
-                       media_content_error("media_info_start_face_detection failed: %d", ret);
-       }
+
+       GList **list = (GList**)user_data;
+       *list = g_list_append(*list, dst);
 
        /* fix prevent: Resource leak */
        SAFE_FREE(media_id);
@@ -2596,14 +2758,27 @@ bool cancel_face_detection_cb(media_info_h media, void *user_data)
 gboolean face_detection_start(gpointer data)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
+       GList *all_item_list = NULL;
+       int idx = 0;
 
-       ret = media_info_foreach_media_from_db(g_filter, start_face_detection_cb, NULL);
+       ret = media_info_foreach_media_from_db(g_filter, start_face_detection_cb, &all_item_list);
 
        if (ret == MEDIA_CONTENT_ERROR_NONE)
                media_content_debug("media_info_foreach_media_from_db is success");
        else
                media_content_error("media_info_foreach_media_from_db is failed");
 
+       for (idx = 0; idx < g_list_length(all_item_list); idx++) {
+               media_info_h media_handle = NULL;
+
+               media_handle = (media_info_h)g_list_nth_data(all_item_list, idx);
+
+               ret = media_info_start_face_detection(media_handle, face_detection_complete_cb, NULL);
+               if (ret != MEDIA_CONTENT_ERROR_NONE)
+                       media_content_error("media_info_start_face_detection failed: %d", ret);
+
+       }
+
        return false;
 }
 
@@ -2767,8 +2942,7 @@ bool dft_cb(media_info_h media, void *user_data)
        } else
                media_content_debug("invalid media_type");
 
-       if (mime_type != NULL)
-               free(mime_type);
+       SAFE_FREE(mime_type);
 
        return true;
 
@@ -2895,7 +3069,7 @@ void insert_batch_cb(media_content_error_e error, void * user_data)
 int test_batch_operations()
 {
        int ret = -1;
-       int i;
+       int i = 0;
        char *file_list[10];
 
        for (i = 0; i < 10; i++) {
@@ -2910,8 +3084,13 @@ int test_batch_operations()
                media_content_error("media_info_insert_batch_to_db failed : %d\n", ret);
 
        filter_h filter;
-       char *condition = "MEDIA_PATH LIKE \'";
-       strncat(condition, tzplatform_mkpath(TZ_USER_CONTENT, "test/image%%jpg\'"), 17);
+       char condition[2048] = {0, };
+       const char *temp = NULL;
+       memset(condition, 0x00, sizeof(condition));
+
+       temp = tzplatform_mkpath(TZ_USER_CONTENT, "test/image%%jpg\'");
+       snprintf(condition, sizeof(condition), "MEDIA_PATH LIKE \'%s", temp);
+
        ret = media_filter_create(&filter);
        if (ret != MEDIA_CONTENT_ERROR_NONE) {
                media_content_error("Fail to create filter");
@@ -2957,8 +3136,10 @@ gboolean test_insert_burst_shot_to_db_start(gpointer data)
        }
 
        ret = media_info_insert_burst_shot_to_db((const char **)file_list, 10, insert_burst_shot_cb, NULL);
-       if (ret != MEDIA_CONTENT_ERROR_NONE)
+       if (ret != MEDIA_CONTENT_ERROR_NONE) {
                media_content_error("media_info_insert_burst_shot_to_db failed : %d\n", ret);
+               g_main_loop_quit(g_loop);
+       }
 
        return ret;
 }
@@ -3022,7 +3203,7 @@ gboolean cancel_scan_dir_start(gpointer data)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
 
-       const char *dir_path = "/opt/usr/media/Images";
+       const char *dir_path = tzplatform_getenv(TZ_USER_IMAGES);
 
        ret = media_content_cancel_scan_folder(dir_path);
 
@@ -3159,6 +3340,8 @@ gboolean _send_noti_operations(gpointer data)
        filter_h filter;
        char condition[2048] = {0,};
        const char *temp = NULL;
+       memset(condition, 0x00, sizeof(condition));
+
        temp = tzplatform_mkpath(TZ_USER_CONTENT, "test/image%%\'");
        snprintf(condition, sizeof(condition), "MEDIA_PATH LIKE \'%s", temp);
 
@@ -3226,7 +3409,7 @@ int test_create_handle(void)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
        media_info_h media = NULL;
-       const char *path = "/home/owner/content/test/test.txt";
+       const char *path = tzplatform_mkpath(TZ_USER_CONTENT, "test/test.txt");
        char *str_value = NULL;
        int int_value = -1;
        bool bool_value = FALSE;
@@ -3336,19 +3519,19 @@ int test_create_handle(void)
        media_content_debug("favorite = [%d]", bool_value);
 
        ret = media_info_get_played_time(media, &modified_time);
-       media_content_debug("played_time = [%d]", modified_time);
+       media_content_debug("played_time = [%ld]", modified_time);
 
        ret = media_info_get_played_count(media, &int_value);
        media_content_debug("played_count = [%d]", int_value);
 
        ret = media_info_get_added_time(media, &modified_time);
-       media_content_debug("added_time = [%d]", modified_time);
+       media_content_debug("added_time = [%ld]", modified_time);
 
        ret = media_info_get_size(media, &content_size);
-       media_content_debug("size = [%d]", content_size);
+       media_content_debug("size = [%llu]", content_size);
 
        ret = media_info_get_modified_time(media, &modified_time);
-       media_content_debug("modified_time = [%d]", modified_time);
+       media_content_debug("modified_time = [%ld]", modified_time);
 
        ret = media_info_get_media_type(media, (media_content_type_e *)&int_value);
        media_content_debug("media_type = [%d]", int_value);
@@ -3465,11 +3648,24 @@ int test_face_add_del(void)
        media_content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "fail media_face_create");
 
        ret = media_face_set_face_rect(face, 10, 12, 50, 100);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("media_face_set_face_rect failed: %d", ret);
+
        ret = media_face_set_orientation(face, 5);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("media_face_set_orientation failed: %d", ret);
+
        ret = media_face_set_tag(face, face_tag);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("media_face_set_tag failed: %d", ret);
 
        ret = media_face_insert_to_db(face);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("media_face_insert_to_db failed: %d", ret);
+
        ret = media_face_destroy(face);
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               media_content_error("media_face_destroy failed: %d", ret);
 
        /* Update Test */
        GList *all_item_list = NULL;
@@ -3491,9 +3687,17 @@ int test_face_add_del(void)
                face_handle = (media_face_h)g_list_nth_data(all_item_list, 0);
 
                ret = media_face_set_face_rect(face_handle, 20, 22, 70, 70);
+               if (ret != MEDIA_CONTENT_ERROR_NONE)
+                       media_content_error("media_face_set_face_rect failed: %d", ret);
                ret = media_face_set_orientation(face_handle, 3);
+               if (ret != MEDIA_CONTENT_ERROR_NONE)
+                       media_content_error("media_face_set_orientation failed: %d", ret);
                ret = media_face_set_tag(face_handle, NULL);
+               if (ret != MEDIA_CONTENT_ERROR_NONE)
+                       media_content_error("media_face_set_tag failed: %d", ret);
                ret = media_face_update_to_db(face_handle);
+               if (ret != MEDIA_CONTENT_ERROR_NONE)
+                       media_content_error("media_face_update_to_db failed: %d", ret);
 
                media_face_destroy(face_handle);
        }
@@ -3509,7 +3713,7 @@ int test_face_add_del(void)
        return ret;
 }
 
-#ifdef _USE_TV_PROFILE
+#ifdef _USE_TVPD_MODE
 filter_h g_tv_filter = NULL;
 
 int test_tv_filter_create(void)
@@ -3614,7 +3818,7 @@ bool pvr_item_cb(media_pvr_h pvr, void *user_data)
        ret = media_pvr_get_size(pvr, &l_value);
        if (ret != MEDIA_CONTENT_ERROR_NONE)
                media_content_error("Fail to media_pvr_get_size");
-       media_content_debug("size [%ld]", l_value);
+       media_content_debug("size [%lld]", l_value);
 
        ret = media_pvr_get_timezone(pvr, &i_value);
        if (ret != MEDIA_CONTENT_ERROR_NONE)
@@ -3834,7 +4038,7 @@ int main(int argc, char *argv[])
        ret = test_connect_database();
        if (ret != MEDIA_CONTENT_ERROR_NONE)
                return MEDIA_CONTENT_ERROR_NONE;
-#ifdef _USE_TV_PROFILE
+#ifdef _USE_TVPD_MODE
        test_pvr();
 
        test_pvr_update_db();
@@ -3950,6 +4154,18 @@ int main(int argc, char *argv[])
        ret = test_face_add_del();
        if (ret != MEDIA_CONTENT_ERROR_NONE)
                return MEDIA_CONTENT_ERROR_NONE;
+
+       ret = test_playlist_operation_v2();
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               return MEDIA_CONTENT_ERROR_NONE;
+
+       ret = test_bookmark_operation_v2();
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               return MEDIA_CONTENT_ERROR_NONE;
+
+       ret = test_tag_operation_v2();
+       if (ret != MEDIA_CONTENT_ERROR_NONE)
+               return MEDIA_CONTENT_ERROR_NONE;
 #endif
 
        ret = test_disconnect_database();