Apply tizen coding rule
[platform/core/api/media-content.git] / test / media-content_test.c
1 /*
2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 #include <sys/time.h>
18 #include <stdio.h>
19 #include <stdlib.h>
20 #include <unistd.h>
21 #include <media_content.h>
22 #include <media_info_private.h>
23 #include <dlog.h>
24 #include <pthread.h>
25 #include <glib.h>
26 #include <tzplatform_config.h>
27
28 filter_h g_filter = NULL;
29 filter_h g_filter_g = NULL;     /*filter for group like folder, tag, playlist, album, year ... */
30
31 GMainLoop *g_loop = NULL;
32 static int g_cnt = 0;
33 static int g_media_cnt = 0;
34
35 #define test_audio_id   "0f999626-6218-450c-a4ad-181a3bab6ebf"
36 #define test_video_id   "c1a92494-cc5b-4d74-aa7d-253199234548"
37 #define test_image_id "db1c184c-6f31-43b4-b924-8c00ac5b6197"
38 media_folder_h g_folder = NULL;
39
40 bool get_audio_meta(audio_meta_h audio)
41 {
42         char *c_value = NULL;
43         int i_value = 0;
44         time_t t_value = 0;
45         int ret = MEDIA_CONTENT_ERROR_NONE;
46
47         media_content_debug("=== audio meta ===");
48
49         ret = audio_meta_get_media_id(audio, &c_value);
50         if (ret != MEDIA_CONTENT_ERROR_NONE)
51                 media_content_error("error when get meta : [%d]", ret);
52         media_content_debug("audio_id : [%s]", c_value);
53         SAFE_FREE(c_value);
54
55         ret = audio_meta_get_album(audio, &c_value);
56         if (ret != MEDIA_CONTENT_ERROR_NONE)
57                 media_content_error("error when get meta : [%d]", ret);
58         media_content_debug("album : [%s]", c_value);
59         SAFE_FREE(c_value);
60
61         ret = audio_meta_get_artist(audio, &c_value);
62         if (ret != MEDIA_CONTENT_ERROR_NONE)
63                 media_content_error("error when get meta : [%d]", ret);
64         media_content_debug("artist : [%s]", c_value);
65         SAFE_FREE(c_value);
66
67         ret = audio_meta_get_album_artist(audio, &c_value);
68         if (ret != MEDIA_CONTENT_ERROR_NONE)
69                 media_content_error("error when get meta : [%d]", ret);
70         media_content_debug("album_artist : [%s]", c_value);
71         SAFE_FREE(c_value);
72
73         ret = audio_meta_get_genre(audio, &c_value);
74         if (ret != MEDIA_CONTENT_ERROR_NONE)
75                 media_content_error("error when get meta : [%d]", ret);
76         media_content_debug("genre : [%s]", c_value);
77         SAFE_FREE(c_value);
78
79         ret = audio_meta_get_composer(audio, &c_value);
80         if (ret != MEDIA_CONTENT_ERROR_NONE)
81                 media_content_error("error when get meta : [%d]", ret);
82         media_content_debug("composer : [%s]", c_value);
83         SAFE_FREE(c_value);
84
85         ret = audio_meta_get_year(audio, &c_value);
86         if (ret != MEDIA_CONTENT_ERROR_NONE)
87                 media_content_error("error when get meta : [%d]", ret);
88         media_content_debug("year : [%s]", c_value);
89         SAFE_FREE(c_value);
90
91         ret = audio_meta_get_recorded_date(audio, &c_value);
92         if (ret != MEDIA_CONTENT_ERROR_NONE)
93                 media_content_error("error when get meta : [%d]", ret);
94         media_content_debug("recorded_date : [%s]", c_value);
95         SAFE_FREE(c_value);
96
97         ret = audio_meta_get_copyright(audio, &c_value);
98         if (ret != MEDIA_CONTENT_ERROR_NONE)
99                 media_content_error("error when get meta : [%d]", ret);
100         media_content_debug("copyright : [%s]", c_value);
101         SAFE_FREE(c_value);
102
103         ret = audio_meta_get_track_num(audio, &c_value);
104         if (ret != MEDIA_CONTENT_ERROR_NONE)
105                 media_content_error("error when get meta : [%d]", ret);
106         media_content_debug("track_num : [%s]", c_value);
107         SAFE_FREE(c_value);
108
109         ret = audio_meta_get_bit_rate(audio, &i_value);
110         if (ret != MEDIA_CONTENT_ERROR_NONE)
111                 media_content_error("error when get meta : [%d]", ret);
112         media_content_debug("bitrate : [%d]", i_value);
113
114         ret = audio_meta_get_sample_rate(audio, &i_value);
115         if (ret != MEDIA_CONTENT_ERROR_NONE)
116                 media_content_error("error when get meta : [%d]", ret);
117         media_content_debug("samplerate : [%d]", i_value);
118
119         ret = audio_meta_get_channel(audio, &i_value);
120         if (ret != MEDIA_CONTENT_ERROR_NONE)
121                 media_content_error("error when get meta : [%d]", ret);
122         media_content_debug("channel : [%d]", i_value);
123
124         ret = audio_meta_get_duration(audio, &i_value);
125         if (ret != MEDIA_CONTENT_ERROR_NONE)
126                 media_content_error("error when get meta : [%d]", ret);
127         media_content_debug("duration : [%d]", i_value);
128
129         ret = audio_meta_get_played_count(audio, &i_value);
130         if (ret != MEDIA_CONTENT_ERROR_NONE)
131                 media_content_error("error when get meta : [%d]", ret);
132         media_content_debug("played_count : [%d]", i_value);
133
134         ret = audio_meta_get_played_time(audio, &t_value);
135         if (ret != MEDIA_CONTENT_ERROR_NONE)
136                 media_content_error("error when get meta : [%d]", ret);
137         media_content_debug("played_time : [%d]", t_value);
138
139         ret = audio_meta_get_played_position(audio, &i_value);
140         if (ret != MEDIA_CONTENT_ERROR_NONE)
141                 media_content_error("error when get meta : [%d]", ret);
142         media_content_debug("played_position : [%d]", i_value);
143
144         return true;
145 }
146
147 bool get_video_meta(video_meta_h video)
148 {
149         char *c_value = NULL;
150         int i_value = 0;
151         time_t t_value = 0;
152         int ret = MEDIA_CONTENT_ERROR_NONE;
153
154         media_content_debug("=== video meta ===");
155
156         ret = video_meta_get_media_id(video, &c_value);
157         if (ret != MEDIA_CONTENT_ERROR_NONE)
158                 media_content_error("error when get meta : [%d]", ret);
159         media_content_debug("video_id : [%s]", c_value);
160         SAFE_FREE(c_value);
161
162         ret = video_meta_get_album(video, &c_value);
163         if (ret != MEDIA_CONTENT_ERROR_NONE)
164                 media_content_error("error when get meta : [%d]", ret);
165         media_content_debug("album : [%s]", c_value);
166         SAFE_FREE(c_value);
167
168         ret = video_meta_get_artist(video, &c_value);
169         if (ret != MEDIA_CONTENT_ERROR_NONE)
170                 media_content_error("error when get meta : [%d]", ret);
171         media_content_debug("artist : [%s]", c_value);
172         SAFE_FREE(c_value);
173
174         ret = video_meta_get_album_artist(video, &c_value);
175         if (ret != MEDIA_CONTENT_ERROR_NONE)
176                 media_content_error("error when get meta : [%d]", ret);
177         media_content_debug("album_artist : [%s]", c_value);
178         SAFE_FREE(c_value);
179
180         ret = video_meta_get_genre(video, &c_value);
181         if (ret != MEDIA_CONTENT_ERROR_NONE)
182                 media_content_error("error when get meta : [%d]", ret);
183         media_content_debug("genre : [%s]", c_value);
184         SAFE_FREE(c_value);
185
186         ret = video_meta_get_composer(video, &c_value);
187         if (ret != MEDIA_CONTENT_ERROR_NONE)
188                 media_content_error("error when get meta : [%d]", ret);
189         media_content_debug("omposer : [%s]", c_value);
190         SAFE_FREE(c_value);
191
192         ret = video_meta_get_year(video, &c_value);
193         if (ret != MEDIA_CONTENT_ERROR_NONE)
194                 media_content_error("error when get meta : [%d]", ret);
195         media_content_debug("year : [%s]", c_value);
196         SAFE_FREE(c_value);
197
198         ret = video_meta_get_recorded_date(video, &c_value);
199         if (ret != MEDIA_CONTENT_ERROR_NONE)
200                 media_content_error("error when get meta : [%d]", ret);
201         media_content_debug("recorded_date : [%s]", c_value);
202         SAFE_FREE(c_value);
203
204         ret = video_meta_get_copyright(video, &c_value);
205         if (ret != MEDIA_CONTENT_ERROR_NONE)
206                 media_content_error("error when get meta : [%d]", ret);
207         media_content_debug("copyright : [%s]", c_value);
208         SAFE_FREE(c_value);
209
210         ret = video_meta_get_track_num(video, &c_value);
211         if (ret != MEDIA_CONTENT_ERROR_NONE)
212                 media_content_error("error when get meta : [%d]", ret);
213         media_content_debug("track_num : [%s]", c_value);
214         SAFE_FREE(c_value);
215
216         ret = video_meta_get_bit_rate(video, &i_value);
217         if (ret != MEDIA_CONTENT_ERROR_NONE)
218                 media_content_error("error when get meta : [%d]", ret);
219         media_content_debug("bitrate : [%d]", i_value);
220
221         ret = video_meta_get_duration(video, &i_value);
222         if (ret != MEDIA_CONTENT_ERROR_NONE)
223                 media_content_error("error when get meta : [%d]", ret);
224         media_content_debug("duration : [%d]", i_value);
225
226         ret = video_meta_get_width(video, &i_value);
227         if (ret != MEDIA_CONTENT_ERROR_NONE)
228                 media_content_error("error when get meta : [%d]", ret);
229         media_content_debug("width : [%d]", i_value);
230
231         ret = video_meta_get_height(video, &i_value);
232         if (ret != MEDIA_CONTENT_ERROR_NONE)
233                 media_content_error("error when get meta : [%d]", ret);
234         media_content_debug("height : [%d]", i_value);
235
236         ret = video_meta_get_played_count(video, &i_value);
237         if (ret != MEDIA_CONTENT_ERROR_NONE)
238                 media_content_error("error when get meta : [%d]", ret);
239         media_content_debug("played_count : [%d]", i_value);
240
241         ret = video_meta_get_played_time(video, &t_value);
242         if (ret != MEDIA_CONTENT_ERROR_NONE)
243                 media_content_error("error when get meta : [%d]", ret);
244         media_content_debug("played_time : [%d]", t_value);
245
246         ret = video_meta_get_played_position(video, &i_value);
247         if (ret != MEDIA_CONTENT_ERROR_NONE)
248                 media_content_error("error when get meta : [%d]", ret);
249         media_content_debug("played_position : [%d]", i_value);
250
251         return true;
252 }
253
254 bool gallery_folder_list_cb(media_folder_h folder, void *user_data)
255 {
256         media_folder_h new_folder = NULL;
257         media_folder_clone(&new_folder, folder);
258
259         GList **list = (GList**)user_data;
260         *list = g_list_append(*list, new_folder);
261
262         return true;
263 }
264
265 bool gallery_media_item_cb(media_info_h media, void *user_data)
266 {
267         media_info_h new_media = NULL;
268         media_info_clone(&new_media, media);
269
270         GList **list = (GList**)user_data;
271         *list = g_list_append(*list, new_media);
272
273         return true;
274 }
275
276 bool gallery_tag_item_cb(media_tag_h tag, void *user_data)
277 {
278         media_tag_h new_tag = NULL;
279         media_tag_clone(&new_tag, tag);
280
281         GList **list = (GList**)user_data;
282         *list = g_list_append(*list, new_tag);
283
284         return true;
285 }
286
287 bool gallery_bookmarks_cb(media_bookmark_h bookmark, void *user_data)
288 {
289         media_bookmark_h new_bm = NULL;
290         int ret = MEDIA_CONTENT_ERROR_NONE;
291
292         ret = media_bookmark_clone(&new_bm, bookmark);
293         if (ret != MEDIA_CONTENT_ERROR_NONE)
294                 media_content_error("error media_bookmark_clone : [%d]", ret);
295
296         GList **list = (GList**)user_data;
297         *list = g_list_append(*list, new_bm);
298
299         return true;
300 }
301
302 bool media_item_cb(media_info_h media, void *user_data)
303 {
304         char *c_value = NULL;
305         char *media_id = NULL;
306         media_content_type_e media_type = 0;
307         int ret = MEDIA_CONTENT_ERROR_NONE;
308
309         if (media == NULL) {
310                 media_content_debug("NO Item");
311                 return true;
312         }
313
314         ret = media_info_get_media_type(media, &media_type);
315         if (ret != MEDIA_CONTENT_ERROR_NONE)
316                 media_content_error("error when get info : [%d]", ret);
317         media_content_debug("media_type : [%d]", media_type);
318
319         ret = media_info_get_media_id(media, &media_id);
320         if (ret != MEDIA_CONTENT_ERROR_NONE)
321                 media_content_error("error when get info : [%d]", ret);
322         media_content_debug("media_id : [%s]", media_id);
323
324         ret = media_info_get_file_path(media, &c_value);
325         if (ret != MEDIA_CONTENT_ERROR_NONE)
326                 media_content_error("error when get info : [%d]", ret);
327         media_content_debug("file_path : [%s]", c_value);
328         SAFE_FREE(c_value);
329
330 #if 0
331         int i_value = 0;
332         time_t t_value = 0;
333         bool b_value = false;
334         unsigned long long size = 0;
335
336         if (media_type == MEDIA_CONTENT_TYPE_MUSIC) {
337                 audio_meta_h audio;
338
339                 if (media_info_get_audio(media, &audio) == MEDIA_CONTENT_ERROR_NONE) {
340                         get_audio_meta(audio);
341                         ret = audio_meta_destroy(audio);
342                         if (ret != MEDIA_CONTENT_ERROR_NONE)
343                                 media_content_error("error audio_meta_destroy : [%d]", ret);
344                 } else
345                         media_content_error("[audio_error]");
346
347         } else if (media_type == MEDIA_CONTENT_TYPE_IMAGE) {
348                 image_meta_h image;
349                 media_content_orientation_e orientation = 0;
350                 bool is_burst_shot = false;
351                 char *burst_id = NULL;
352                 char *weather = NULL;
353
354                 if (media_info_get_image(media, &image) == MEDIA_CONTENT_ERROR_NONE) {
355                         ret = image_meta_get_orientation(image, &orientation);
356                         if (ret != MEDIA_CONTENT_ERROR_NONE)
357                                 media_content_error("error image_meta_get_orientation : [%d]", ret);
358                         else
359                                 media_content_debug("[image] orientation : %d", orientation);
360
361                         ret = image_meta_is_burst_shot(image, &is_burst_shot);
362                         if (ret != MEDIA_CONTENT_ERROR_NONE)
363                                 media_content_error("error image_meta_is_burst_shot : [%d]", ret);
364                         if (is_burst_shot) {
365                                 ret = image_meta_get_burst_id(image, &burst_id);
366                                 if (ret != MEDIA_CONTENT_ERROR_NONE)
367                                         media_content_error("error image_meta_get_burst_id : [%d]", ret);
368                                 else
369                                         media_content_debug("[image] burst_id : [%s]", burst_id);
370
371                                 SAFE_FREE(burst_id);
372                         }
373
374                         ret = image_meta_destroy(image);
375                         if (ret != MEDIA_CONTENT_ERROR_NONE)
376                                 media_content_error("error image_meta_destroy : [%d]", ret);
377                 } else
378                         media_content_error("[image_error]");
379
380         } else if (media_type == MEDIA_CONTENT_TYPE_VIDEO) {
381                 video_meta_h video;
382
383                 if (media_info_get_video(media, &video) == MEDIA_CONTENT_ERROR_NONE) {
384                         get_video_meta(video);
385                         ret = video_meta_destroy(video);
386                         if (ret != MEDIA_CONTENT_ERROR_NONE)
387                                 media_content_error("error video_meta_destroy : [%d]", ret);
388                 } else
389                         media_content_error("[video_error]");
390
391         } else {
392                 media_content_debug("Other Content");
393         }
394
395         media_content_debug("=== media_info ===");
396         ret = media_info_get_file_path(media, &c_value);
397         if (ret != MEDIA_CONTENT_ERROR_NONE)
398                 media_content_error("error when get info : [%d]", ret);
399         media_content_debug("file_path : [%s]", c_value);
400         SAFE_FREE(c_value);
401
402         ret = media_info_get_display_name(media, &c_value);
403         if (ret != MEDIA_CONTENT_ERROR_NONE)
404                 media_content_error("error when get info : [%d]", ret);
405         media_content_debug("display_name : [%s]", c_value);
406         SAFE_FREE(c_value);
407
408         ret = media_info_get_mime_type(media, &c_value);
409         if (ret != MEDIA_CONTENT_ERROR_NONE)
410                 media_content_error("error when get info : [%d]", ret);
411         media_content_debug("mime_type : [%s]", c_value);
412         SAFE_FREE(c_value);
413
414         ret = media_info_get_thumbnail_path(media, &c_value);
415         if (ret != MEDIA_CONTENT_ERROR_NONE)
416                 media_content_error("error when get info : [%d]", ret);
417         media_content_debug("thumbnail_path : [%s]", c_value);
418         SAFE_FREE(c_value);
419
420         ret = media_info_get_description(media, &c_value);
421         if (ret != MEDIA_CONTENT_ERROR_NONE)
422                 media_content_error("error when get info : [%d]", ret);
423         media_content_debug("description : [%s]", c_value);
424         SAFE_FREE(c_value);
425
426         ret = media_info_get_author(media, &c_value);
427         if (ret != MEDIA_CONTENT_ERROR_NONE)
428                 media_content_error("error when get info : [%d]", ret);
429         media_content_debug("author : [%s]", c_value);
430         SAFE_FREE(c_value);
431
432         ret = media_info_get_provider(media, &c_value);
433         if (ret != MEDIA_CONTENT_ERROR_NONE)
434                 media_content_error("error when get info : [%d]", ret);
435         media_content_debug("provider : [%s]", c_value);
436         SAFE_FREE(c_value);
437
438         ret = media_info_get_content_name(media, &c_value);
439         if (ret != MEDIA_CONTENT_ERROR_NONE)
440                 media_content_error("error when get info : [%d]", ret);
441         media_content_debug("content_name : [%s]", c_value);
442         SAFE_FREE(c_value);
443
444         ret = media_info_get_category(media, &c_value);
445         if (ret != MEDIA_CONTENT_ERROR_NONE)
446                 media_content_error("error when get info : [%d]", ret);
447         media_content_debug("category : [%s]", c_value);
448         SAFE_FREE(c_value);
449
450         ret = media_info_get_location_tag(media, &c_value);
451         if (ret != MEDIA_CONTENT_ERROR_NONE)
452                 media_content_error("error when get info : [%d]", ret);
453         media_content_debug("location_tag : [%s]", c_value);
454         SAFE_FREE(c_value);
455
456         ret = media_info_get_age_rating(media, &c_value);
457         if (ret != MEDIA_CONTENT_ERROR_NONE)
458                 media_content_error("error when get info : [%d]", ret);
459         media_content_debug("age_rating : [%s]", c_value);
460         SAFE_FREE(c_value);
461
462         ret = media_info_get_keyword(media, &c_value);
463         if (ret != MEDIA_CONTENT_ERROR_NONE)
464                 media_content_error("error when get info : [%d]", ret);
465         media_content_debug("keyword : [%s]", c_value);
466         SAFE_FREE(c_value);
467
468         ret = media_info_get_size(media, &size);
469         if (ret != MEDIA_CONTENT_ERROR_NONE)
470                 media_content_error("error when get info : [%d]", ret);
471         media_content_debug("size : [%lld]", size);
472
473         ret = media_info_get_added_time(media, &t_value);
474         if (ret != MEDIA_CONTENT_ERROR_NONE)
475                 media_content_error("error when get info : [%d]", ret);
476         media_content_debug("added_time : [%d]", t_value);
477
478         ret = media_info_get_modified_time(media, &t_value);
479         if (ret != MEDIA_CONTENT_ERROR_NONE)
480                 media_content_error("error when get info : [%d]", ret);
481         media_content_debug("modified_time : [%d]", t_value);
482
483         ret = media_info_get_timeline(media, &t_value);
484         if (ret != MEDIA_CONTENT_ERROR_NONE)
485                 media_content_error("error when get info : [%d]", ret);
486         media_content_debug("timeline : [%d]", t_value);
487
488         ret = media_info_get_rating(media, &i_value);
489         if (ret != MEDIA_CONTENT_ERROR_NONE)
490                 media_content_error("error when get info : [%d]", ret);
491         media_content_debug("rating : [%d]", i_value);
492
493         ret = media_info_get_favorite(media, &b_value);
494         if (ret != MEDIA_CONTENT_ERROR_NONE)
495                 media_content_error("error when get info : [%d]", ret);
496         media_content_debug("favorite : [%d]", b_value);
497
498         ret = media_info_is_drm(media, &b_value);
499         if (ret != MEDIA_CONTENT_ERROR_NONE)
500                 media_content_error("error when get info : [%d]", ret);
501         media_content_debug("is_drm : [%d]", b_value);
502
503         ret = media_info_is_360(media, &b_value);
504         if (ret != MEDIA_CONTENT_ERROR_NONE)
505                 media_content_error("error when get info : [%d]", ret);
506         media_content_debug("is_360 : [%d]", b_value);
507
508         ret = media_info_set_weather(media, "Sunny");
509         if (ret != MEDIA_CONTENT_ERROR_NONE) {
510                 media_content_error("Fail to set weather");
511                 return ret;
512
513         ret = media_info_get_weather(media, &c_value);
514         if (ret != MEDIA_CONTENT_ERROR_NONE)
515                 media_content_error("error when get info : [%d]", ret);
516         media_content_debug("weather : [%s]", c_value);
517         SAFE_FREE(c_value);
518
519         /* Media server can't update when another db handle holds DB connection by sqlite3_prepare */
520         /*ret = media_info_set_location_tag(media, "Test location tag");*/
521         /*media_info_update_to_db(media);*/
522         SAFE_FREE(media_id);
523 #endif
524         SAFE_FREE(media_id);
525         return true;
526 }
527
528 bool folder_list_cb(media_folder_h folder, void *user_data)
529 {
530         int item_count = 0;
531         char *folder_id = NULL;
532         char *str_val = NULL;
533         int int_val = -1;
534         media_content_storage_e storage_type;
535         bool ret;
536         media_folder_h *_folder = (media_folder_h*)user_data;
537
538         media_content_debug("===========================");
539         if (folder != NULL) {
540                 if (_folder != NULL)
541                         media_folder_clone(_folder, folder);
542
543                 if (media_folder_get_folder_id(folder, &folder_id) != MEDIA_CONTENT_ERROR_NONE) {
544                         media_content_error("[ERROR] media_folder_get_folder_id is failed");
545                         return false;
546                 }
547                 media_content_debug("folder_id = [%s]", folder_id);
548
549                 if (media_folder_get_parent_folder_id(folder, &str_val) != MEDIA_CONTENT_ERROR_NONE) {
550                         media_content_error("[ERROR] media_folder_get_parent_folder_id is failed");
551                         return false;
552                 }
553                 media_content_debug("parent_folder_id = [%s]", str_val);
554
555                 if (media_folder_get_path(folder, &str_val) != MEDIA_CONTENT_ERROR_NONE) {
556                         SAFE_FREE(folder_id);
557                         media_content_error("[ERROR] media_folder_get_path is failed");
558                         return false;
559                 }
560                 media_content_debug("folder_path = [%s]", str_val);
561                 SAFE_FREE(str_val);
562
563                 if (media_folder_get_name(folder, &str_val) != MEDIA_CONTENT_ERROR_NONE) {
564                         SAFE_FREE(folder_id);
565                         media_content_error("[ERROR] media_folder_get_name is failed");
566                         return false;
567                 }
568                 media_content_debug("folder_name = [%s]", str_val);
569                 SAFE_FREE(str_val);
570
571                 if (media_folder_get_storage_type(folder, &storage_type) != MEDIA_CONTENT_ERROR_NONE) {
572                         SAFE_FREE(folder_id);
573                         media_content_error("[ERROR] media_folder_get_storage_type is failed");
574                         return false;
575                 }
576                 media_content_debug("storage_type = [%d]", storage_type);
577
578                 if (media_folder_get_storage_id(folder, &str_val) != MEDIA_CONTENT_ERROR_NONE) {
579                         SAFE_FREE(folder_id);
580                         media_content_error("[ERROR] media_folder_get_name is failed");
581                         return false;
582                 }
583                 media_content_debug("storage_id = [%s]", str_val);
584
585                 if (media_folder_get_order(folder, &int_val) != MEDIA_CONTENT_ERROR_NONE) {
586                         media_content_error("[ERROR] media_folder_get_order is failed");
587                         return false;
588                 }
589                 media_content_debug("folder_order = [%d]", int_val);
590 #if 1
591                 if (media_folder_get_media_count_from_db(folder_id, g_filter, &item_count) != MEDIA_CONTENT_ERROR_NONE) {
592                         SAFE_FREE(folder_id);
593                         media_content_error("[ERROR] media_folder_get_media_count_from_db is failed");
594                         return false;
595                 }
596
597                 if (media_folder_foreach_media_from_db(folder_id, g_filter, media_item_cb, NULL) != MEDIA_CONTENT_ERROR_NONE) {
598                         SAFE_FREE(folder_id);
599                         media_content_error("[ERROR] media_folder_foreach_media_from_db is failed");
600                         return false;
601                 }
602 #endif
603                 SAFE_FREE(folder_id);
604                 ret = true;
605         } else {
606                 ret = false;
607         }
608
609         return ret;
610 }
611
612 bool test_album_from_db(int album_id)
613 {
614         int ret = MEDIA_CONTENT_ERROR_NONE;
615         media_album_h album_h;
616         int test_album_id = 0;
617         char *album_name = NULL;
618         char *artist = NULL;
619
620         ret = media_album_get_album_from_db(album_id, &album_h);
621         if (ret != MEDIA_CONTENT_ERROR_NONE) {
622                 media_content_error("error when get album");
623                 return false;
624         }
625
626         if (media_album_get_album_id(album_h, &test_album_id) != MEDIA_CONTENT_ERROR_NONE) {
627                 media_album_destroy(album_h);
628                 return false;
629         }
630
631         media_content_debug("test_album_id : [%d]", test_album_id);
632
633         if (media_album_get_name(album_h, &album_name) != MEDIA_CONTENT_ERROR_NONE) {
634                 media_album_destroy(album_h);
635                 return false;
636         }
637
638         media_content_debug("album_name : [%s]", album_name);
639
640         if (media_album_get_artist(album_h, &artist) != MEDIA_CONTENT_ERROR_NONE) {
641                 media_album_destroy(album_h);
642                 /* fix prevent: Resource Leak */
643                 SAFE_FREE(album_name);
644                 return false;
645         }
646
647         media_content_debug("artist : [%s]", artist);
648
649         SAFE_FREE(album_name);
650         SAFE_FREE(artist);
651
652         media_album_destroy(album_h);
653
654         return true;
655 }
656
657 bool playlist_list_cb(media_playlist_h playlist, void *user_data)
658 {
659         int playlist_id = 0;
660         char *playlist_name = NULL;
661         media_playlist_h playlist_h;
662         char *playlist_thumbnail_path = NULL;
663
664         media_content_debug("playlist_list_cb ======");
665 #if 0
666         GList **list = (GList**)user_data;
667 #endif
668
669         if (playlist == NULL) {
670                 media_content_debug(" playlist handle is NULL");
671                 return false;
672         }
673
674         media_playlist_get_playlist_id(playlist, &playlist_id);
675         media_content_debug("playlist_id : %d", playlist_id);
676         /* 64bit build issue */
677 #if 0
678         if (user_data != NULL)
679                 *list = g_list_append(*list, (gpointer)playlist_id);
680 #endif
681         media_playlist_get_name(playlist, &playlist_name);
682         media_content_debug("playlist_name : %s", playlist_name);
683         SAFE_FREE(playlist_name);
684
685         media_playlist_get_thumbnail_path(playlist, &playlist_thumbnail_path);
686         media_content_debug("playlist_thumbnail_path : %s", playlist_thumbnail_path);
687         SAFE_FREE(playlist_thumbnail_path);
688
689         media_playlist_get_playlist_from_db(playlist_id, &playlist_h);
690
691         media_playlist_destroy(playlist_h);
692
693         return true;
694 }
695
696 bool tag_list_cb(media_tag_h tag, void *user_data)
697 {
698         int tag_id = 0;
699         char *tag_name = NULL;
700         int ret = MEDIA_CONTENT_ERROR_NONE;
701
702         if (tag == NULL) {
703                 media_content_debug(" tag handle is NULL");
704                 return false;
705         }
706
707         ret = media_tag_get_tag_id(tag, &tag_id);
708         if (ret != MEDIA_CONTENT_ERROR_NONE)
709                 media_content_error("error media_tag_get_tag_id : [%d]", ret);
710         else
711                 media_content_debug("tag_id : %d", tag_id);
712
713         ret = media_tag_get_name(tag, &tag_name);
714         if (ret != MEDIA_CONTENT_ERROR_NONE)
715                 media_content_error("error media_tag_get_name : [%d]", ret);
716         else
717                 media_content_debug("tag_name : %s", tag_name);
718         SAFE_FREE(tag_name);
719
720         return true;
721 }
722
723 bool bookmarks_cb(media_bookmark_h bookmark, void *user_data)
724 {
725         media_bookmark_h *_bookmark = (media_bookmark_h*)bookmark;
726         int ret = MEDIA_CONTENT_ERROR_NONE;
727
728         if (_bookmark != NULL) {
729                 char *name = NULL;
730                 time_t time = 0;
731                 int bookmark_id = 0;
732
733                 ret = media_bookmark_get_bookmark_id(bookmark, &bookmark_id);
734                 if (ret != MEDIA_CONTENT_ERROR_NONE)
735                         media_content_error("error media_bookmark_get_bookmark_id : [%d]", ret);
736                 else
737                         media_content_debug("bookmark_id : %d", bookmark_id);
738
739                 ret = media_bookmark_get_thumbnail_path(bookmark, &name);
740                 if (ret != MEDIA_CONTENT_ERROR_NONE)
741                         media_content_error("error media_bookmark_get_thumbnail_path : [%d]", ret);
742                 else
743                         media_content_debug("bookmark thumbnail_path : %s", name);
744                 SAFE_FREE(name);
745
746                 ret = media_bookmark_get_marked_time(bookmark, &time);
747                 if (ret != MEDIA_CONTENT_ERROR_NONE)
748                         media_content_error("error media_bookmark_get_marked_time : [%d]", ret);
749                 else
750                         media_content_debug("bookmark marked_time : %d", time);
751         }
752
753         return true;
754 }
755
756 bool album_list_cb(media_album_h album, void *user_data)
757 {
758         int album_id = 0;
759         char *album_name = NULL;
760         char *artist = NULL;
761         char *album_art = NULL;
762         int media_count = 0;
763         int ret = MEDIA_CONTENT_ERROR_NONE;
764         filter_h filter = NULL;
765
766         /*Set Filter*/
767         const char *condition = "MEDIA_TYPE=3"; /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
768
769         ret = media_filter_create(&filter);
770         if (ret != MEDIA_CONTENT_ERROR_NONE) {
771                 media_content_error("Fail to create filter");
772                 return ret;
773         }
774         ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
775         if (ret != MEDIA_CONTENT_ERROR_NONE) {
776                 media_filter_destroy(filter);
777                 media_content_error("Fail to set condition");
778                 return ret;
779         }
780         ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
781         if (ret != MEDIA_CONTENT_ERROR_NONE) {
782                 media_filter_destroy(filter);
783                 media_content_error("Fail to set order");
784                 return ret;
785         }
786
787         if (album != NULL) {
788                 if (media_album_get_album_id(album, &album_id) != MEDIA_CONTENT_ERROR_NONE) {
789                         media_filter_destroy(filter);
790                         return false;
791                 }
792
793                 media_content_debug("album_id : [%d]", album_id);
794
795                 if (media_album_get_name(album, &album_name) != MEDIA_CONTENT_ERROR_NONE) {
796                         media_filter_destroy(filter);
797                         return false;
798                 }
799
800                 media_content_debug("album_name : [%s]", album_name);
801                 SAFE_FREE(album_name);
802
803                 if (media_album_get_artist(album, &artist) != MEDIA_CONTENT_ERROR_NONE) {
804                         media_filter_destroy(filter);
805                         return false;
806                 }
807
808                 media_content_debug("artist : [%s]", artist);
809                 SAFE_FREE(artist);
810
811                 if (media_album_get_album_art(album, &album_art) != MEDIA_CONTENT_ERROR_NONE) {
812                         media_filter_destroy(filter);
813                         return false;
814                 }
815
816                 media_content_debug("album_art : [%s]", album_art);
817                 SAFE_FREE(album_art);
818
819                 if (media_album_get_media_count_from_db(album_id, filter, &media_count) != MEDIA_CONTENT_ERROR_NONE) {
820                         media_filter_destroy(filter);
821                         return false;
822                 }
823
824                 media_content_debug("media_count : [%d]", media_count);
825
826                 if (media_album_foreach_media_from_db(album_id, filter, media_item_cb, NULL) != MEDIA_CONTENT_ERROR_NONE) {
827                         media_filter_destroy(filter);
828                         return false;
829                 }
830
831                 test_album_from_db(album_id);
832         } else {
833                 media_content_error("album item not Found!!");
834         }
835
836         media_filter_destroy(filter);
837
838         return true;
839 }
840
841 bool group_list_cb(const char *group_name, void *user_data)
842 {
843         int media_count = 0;
844         int *idx = user_data;
845
846         media_content_debug("group item : [%s] [%d]", group_name, *idx);
847
848         if (media_group_get_media_count_from_db(group_name, *idx, g_filter, &media_count) != MEDIA_CONTENT_ERROR_NONE)
849                 return false;
850
851         media_content_debug("media_count : [%d]", media_count);
852
853         if (media_group_foreach_media_from_db(group_name, *idx, g_filter, media_item_cb, NULL) != MEDIA_CONTENT_ERROR_NONE)
854                 return false;
855
856         return true;
857 }
858
859 bool playlist_item_cb(int playlist_member_id, media_info_h media, void *user_data)
860 {
861         media_content_debug("playlist_member_id : [%d]", playlist_member_id);
862         /* 64bit build issue */
863 #if 0
864         GList **list = (GList**)user_data;
865
866         *list = g_list_append(*list, (gpointer)playlist_member_id);
867 #endif
868         /*media_item_cb(media, user_data);*/
869
870         return true;
871 }
872
873 int test_filter_create(void)
874 {
875         media_content_debug("\n============Filter Create============\n\n");
876
877         int ret = MEDIA_CONTENT_ERROR_NONE;
878
879         /* Filter for media */
880         const char *condition = "MEDIA_TYPE=3"; /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
881         /*const char *condition = "MEDIA_TYPE IS NOT 0 AND MEDIA_DESCRIPTION IS NOT NULL"; */   /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
882
883         ret = media_filter_create(&g_filter);
884
885         /* Set condition and collate
886          * Condition string : You can make where statement of sql.
887          * Colation : You can use collation when comparing.
888          * Ex) In case of FILE_NAME='Samsung' as condition string,
889          *      if you want to compare with NOCASE collation,
890          *      call media_filter_set_condition(g_filter, condition, MEDIA_CONTENT_COLLATE_NOCASE);
891          *      if you want to compare in case-sensitive,
892          *      call media_filter_set_condition(g_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
893          */
894         ret = media_filter_set_condition(g_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
895
896         /* Collation of ordering
897          * If you want to get list, which is sorted by NOCASE,
898          * call media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_NOCASE);
899          * Or,
900          * call media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_DEFAULT);
901          */
902         /* Able to set multi column to set order */
903 #if 0
904         ret = media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, "MEDIA_MODIFIED_TIME, MEDIA_DISPLAY_NAME", MEDIA_CONTENT_COLLATE_DEFAULT);
905         ret = media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_DEFAULT);
906         ret = media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TRACK_NUM_INT, MEDIA_CONTENT_COLLATE_DEFAULT);
907         ret = media_filter_set_storage(g_filter, "cfbf3d2c-71c5-4611-bccc-7cbac890146e");
908
909         /* Filter for group */
910         const char *g_condition = "TAG_NAME like \"\%my\%\"";
911         const char *g_condition = "BOOKMARK_MARKED_TIME > 300";
912 #endif
913         ret = media_filter_create(&g_filter_g);
914
915         ret = media_filter_set_order(g_filter_g, MEDIA_CONTENT_ORDER_DESC, TAG_NAME, MEDIA_CONTENT_COLLATE_DEFAULT);
916
917         return ret;
918 }
919
920 int test_filter_destroy(void)
921 {
922         media_content_debug("\n============Filter Create============\n\n");
923
924         int ret = MEDIA_CONTENT_ERROR_NONE;
925
926         ret = media_filter_destroy(g_filter);
927
928         return ret;
929 }
930
931 int test_connect_database(void)
932 {
933         int ret = MEDIA_CONTENT_ERROR_NONE;
934
935         media_content_debug("\n============DB Connection Test============\n\n");
936
937         ret = media_content_connect();
938
939         if (ret == MEDIA_CONTENT_ERROR_NONE)
940                 media_content_debug("connection is success\n\n");
941         else
942                 media_content_error("connection is failed\n\n");
943
944         return ret;
945 }
946
947 int test_gallery_scenario(void)
948 {
949         int ret = MEDIA_CONTENT_ERROR_NONE;
950         unsigned int i = 0;
951         filter_h filter = NULL;
952
953         int count;
954         GList *folder_list = NULL;
955         media_folder_h folder_handle = NULL;
956
957         /* First, Get folder list */
958         ret = media_folder_foreach_folder_from_db(filter, gallery_folder_list_cb, &folder_list);
959         if (ret != MEDIA_CONTENT_ERROR_NONE) {
960                 media_content_error("media_folder_foreach_folder_from_db failed: %d", ret);
961                 return -1;
962         } else {
963                 media_content_debug("media_folder_foreach_folder_from_db success!!");
964                 char *folder_id = NULL;
965                 char *folder_name = NULL;
966                 char *folder_path = NULL;
967
968                 for (i = 0; i < g_list_length(folder_list); i++) {
969                         folder_handle = (media_folder_h)g_list_nth_data(folder_list, i);
970
971                         ret = media_folder_get_folder_id(folder_handle, &folder_id);
972                         if (ret != MEDIA_CONTENT_ERROR_NONE)
973                                 media_content_error("media_folder_get_folder_id failed: %d", ret);
974                         ret = media_folder_get_name(folder_handle, &folder_name);
975                         if (ret != MEDIA_CONTENT_ERROR_NONE)
976                                 media_content_error("media_folder_get_name failed: %d", ret);
977                         ret = media_folder_get_path(folder_handle, &folder_path);
978                         if (ret != MEDIA_CONTENT_ERROR_NONE)
979                                 media_content_error("media_folder_get_path failed: %d", ret);
980
981                         media_content_debug("folder_id [%d] : %s", i, folder_id);
982                         media_content_debug("folder_name [%d] : %s", i, folder_name);
983                         media_content_debug("folder_path [%d] : %s", i, folder_path);
984
985                         ret = media_folder_get_media_count_from_db(folder_id, filter, &count);
986                         /* User should free these string */
987                         SAFE_FREE(folder_id);
988                         SAFE_FREE(folder_name);
989                         SAFE_FREE(folder_path);
990                         if (ret != MEDIA_CONTENT_ERROR_NONE) {
991                                 media_content_error("media_folder_get_media_count_from_db failed: %d", ret);
992                                 return -1;
993                         } else {
994                                 media_content_debug("media count [%d] : %d", i, count);
995                         }
996                 }
997         }
998
999         /* To check performance */
1000         struct timeval start, end;
1001         gettimeofday(&start, NULL);
1002
1003         /* Second, Get all item list */
1004         media_info_h media_handle = NULL;
1005         GList *all_item_list = NULL;
1006
1007         media_content_collation_e collate_type = MEDIA_CONTENT_COLLATE_NOCASE;
1008         media_content_order_e order_type = MEDIA_CONTENT_ORDER_DESC;
1009         ret = media_filter_create(&filter);
1010         if (ret != MEDIA_CONTENT_ERROR_NONE) {
1011                 media_content_error("Fail to create filter");
1012                 return ret;
1013         }
1014         ret = media_filter_set_condition(filter, "MEDIA_TYPE = 0", collate_type);
1015         if (ret != MEDIA_CONTENT_ERROR_NONE) {
1016                 media_filter_destroy(filter);
1017                 media_content_error("Fail to set condition");
1018                 return ret;
1019         }
1020         ret = media_filter_set_order(filter, order_type, MEDIA_DISPLAY_NAME, collate_type);
1021         if (ret != MEDIA_CONTENT_ERROR_NONE) {
1022                 media_filter_destroy(filter);
1023                 media_content_error("Fail to set order");
1024                 return ret;
1025         }
1026
1027         ret = media_info_foreach_media_from_db(filter, gallery_media_item_cb, &all_item_list);
1028         if (ret != MEDIA_CONTENT_ERROR_NONE) {
1029                 media_content_error("media_info_foreach_media_from_db failed: %d", ret);
1030                 media_filter_destroy(filter);
1031                 return -1;
1032         } else {
1033                 media_content_debug("media_info_foreach_media_from_db success");
1034                 media_content_type_e media_type;
1035                 char *media_id = NULL;
1036                 char *media_name = NULL;
1037                 char *media_path = NULL;
1038
1039                 for (i = 0; i < g_list_length(all_item_list); i++) {
1040                         media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
1041
1042                         ret = media_info_get_media_id(media_handle, &media_id);
1043                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1044                                 media_content_error("media_info_get_media_id failed: %d", ret);
1045                         ret = media_info_get_media_type(media_handle, &media_type);
1046                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1047                                 media_content_error("media_info_get_media_type failed: %d", ret);
1048                         ret = media_info_get_display_name(media_handle, &media_name);
1049                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1050                                 media_content_error("media_info_get_display_name failed: %d", ret);
1051                         ret = media_info_get_file_path(media_handle, &media_path);
1052                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1053                                 media_content_error("media_info_get_file_path failed: %d", ret);
1054
1055                         if (media_type == MEDIA_CONTENT_TYPE_IMAGE) {
1056                                 image_meta_h image_handle;
1057                                 int width = 0, height = 0;
1058                                 media_content_orientation_e orientation = 0;
1059                                 char *datetaken = NULL;
1060                                 char *burst_id = NULL;
1061
1062                                 ret = media_info_get_image(media_handle, &image_handle);
1063                                 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1064                                         media_content_error("media_info_get_image failed: %d", ret);
1065                                 } else {
1066                                         ret = image_meta_get_width(image_handle, &width);
1067                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1068                                                 media_content_error("error image_meta_get_width : [%d]", ret);
1069                                         ret = image_meta_get_height(image_handle, &height);
1070                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1071                                                 media_content_error("error image_meta_get_height : [%d]", ret);
1072                                         ret = image_meta_get_orientation(image_handle, &orientation);
1073                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1074                                                 media_content_error("error image_meta_get_orientation : [%d]", ret);
1075                                         ret = image_meta_get_date_taken(image_handle, &datetaken);
1076                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1077                                                 media_content_error("error image_meta_get_date_taken : [%d]", ret);
1078                                         ret = image_meta_get_burst_id(image_handle, &burst_id);
1079                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1080                                                 media_content_error("error image_meta_get_burst_id : [%d]", ret);
1081
1082                                         media_content_debug("This is Image");
1083                                         media_content_debug("Width : %d, Height : %d, Orientation : %d, Date taken : %s", width, height, orientation, datetaken);
1084                                 }
1085
1086                                 SAFE_FREE(datetaken);
1087                                 SAFE_FREE(burst_id);
1088                                 ret = image_meta_destroy(image_handle);
1089                                 if (ret != MEDIA_CONTENT_ERROR_NONE)
1090                                         media_content_error("error image_meta_destroy : [%d]", ret);
1091
1092                         } else if (media_type == MEDIA_CONTENT_TYPE_VIDEO) {
1093                                 video_meta_h video_handle;
1094                                 char *title = NULL, *artist = NULL, *album = NULL, *album_artist = NULL;
1095                                 int duration = 0;
1096                                 time_t time_played = 0;
1097
1098                                 ret = media_info_get_video(media_handle, &video_handle);
1099                                 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1100                                         media_content_error("media_info_get_video failed: %d", ret);
1101                                 } else {
1102                                         ret = video_meta_get_artist(video_handle, &artist);
1103                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1104                                                 media_content_error("error video_meta_get_artist : [%d]", ret);
1105                                         ret = video_meta_get_album(video_handle, &album);
1106                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1107                                                 media_content_error("error video_meta_get_album : [%d]", ret);
1108                                         ret = video_meta_get_album_artist(video_handle, &album_artist);
1109                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1110                                                 media_content_error("error video_meta_get_album_artist : [%d]", ret);
1111                                         ret = video_meta_get_duration(video_handle, &duration);
1112                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1113                                                 media_content_error("error video_meta_get_duration : [%d]", ret);
1114                                         ret = video_meta_get_played_time(video_handle, &time_played);
1115                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1116                                                 media_content_error("error video_meta_get_played_time : [%d]", ret);
1117
1118                                         media_content_debug("This is Video");
1119                                         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);
1120                                 }
1121
1122                                 SAFE_FREE(title);
1123                                 SAFE_FREE(artist);
1124                                 SAFE_FREE(album);
1125                                 SAFE_FREE(album_artist);
1126
1127                                 ret = video_meta_destroy(video_handle);
1128                                 if (ret != MEDIA_CONTENT_ERROR_NONE)
1129                                         media_content_error("error video_meta_destroy : [%d]", ret);
1130                         }
1131
1132                         SAFE_FREE(media_id);
1133                         SAFE_FREE(media_name);
1134                         SAFE_FREE(media_path);
1135                 }
1136         }
1137
1138         media_filter_destroy(filter);
1139         filter = NULL;
1140
1141         /* To check performance */
1142         gettimeofday(&end, NULL);
1143         long time = (end.tv_sec * 1000000 + end.tv_usec) - (start.tv_sec * 1000000 + start.tv_usec);
1144         media_content_debug("Time : %ld\n", time);
1145
1146         /* Third, Get item list of a folder */
1147         GList *item_list = NULL;
1148
1149         for (i = 0; i < g_list_length(folder_list); i++) {
1150                 unsigned int j = 0;
1151                 char *folder_id = NULL;
1152                 char *folder_name = NULL;
1153                 folder_handle = (media_folder_h)g_list_nth_data(folder_list, i);
1154
1155                 media_folder_get_folder_id(folder_handle, &folder_id);
1156                 media_folder_get_name(folder_handle, &folder_name);
1157
1158                 ret = media_folder_foreach_media_from_db(folder_id, filter, gallery_media_item_cb, &item_list);
1159                 SAFE_FREE(folder_id);
1160                 SAFE_FREE(folder_name);
1161
1162                 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1163                         media_content_error("media_folder_foreach_media_from_db failed: %d", ret);
1164                         return -1;
1165                 } else {
1166                         media_content_error("media_folder_foreach_media_from_db success!", ret);
1167                         char *media_id = NULL;
1168                         char *media_name = NULL;
1169                         char *media_path = NULL;
1170                         media_content_type_e media_type = 0;
1171
1172                         for (j = 0; j < g_list_length(item_list); j++) {
1173                                 media_handle = (media_info_h)g_list_nth_data(item_list, j);
1174
1175                                 ret = media_info_get_media_id(media_handle, &media_id);
1176                                 if (ret != MEDIA_CONTENT_ERROR_NONE)
1177                                         media_content_error("media_info_get_media_id failed: %d", ret);
1178                                 ret = media_info_get_display_name(media_handle, &media_name);
1179                                 if (ret != MEDIA_CONTENT_ERROR_NONE)
1180                                         media_content_error("media_info_get_display_name failed: %d", ret);
1181                                 ret = media_info_get_file_path(media_handle, &media_path);
1182                                 if (ret != MEDIA_CONTENT_ERROR_NONE)
1183                                         media_content_error("media_info_get_file_path failed: %d", ret);
1184                                 ret = media_info_get_media_type(media_handle, &media_type);
1185                                 if (ret != MEDIA_CONTENT_ERROR_NONE)
1186                                         media_content_error("media_info_get_media_type failed: %d", ret);
1187
1188                                 media_content_debug("[%s] media_id [%d] : %s", folder_name, j, media_id);
1189                                 media_content_debug("[%s] media_type [%d] : %d", folder_name, j, media_type);
1190                                 media_content_debug("[%s] media_name [%d] : %s", folder_name, j, media_name);
1191                                 media_content_debug("[%s] media_path [%d] : %s", folder_name, j, media_path);
1192
1193                                 if (media_type == MEDIA_CONTENT_TYPE_IMAGE) {
1194                                         image_meta_h image_handle;
1195                                         int width = 0, height = 0;
1196                                         media_content_orientation_e orientation = 0;
1197                                         char *datetaken = NULL;
1198
1199                                         ret = media_info_get_image(media_handle, &image_handle);
1200                                         if (ret != MEDIA_CONTENT_ERROR_NONE) {
1201                                                 media_content_error("media_info_get_image failed: %d", ret);
1202                                         } else {
1203                                                 ret = image_meta_get_width(image_handle, &width);
1204                                                 if (ret != MEDIA_CONTENT_ERROR_NONE)
1205                                                         media_content_error("error image_meta_get_width : [%d]", ret);
1206                                                 ret = image_meta_get_height(image_handle, &height);
1207                                                 if (ret != MEDIA_CONTENT_ERROR_NONE)
1208                                                         media_content_error("error image_meta_get_height : [%d]", ret);
1209                                                 ret = image_meta_get_orientation(image_handle, &orientation);
1210                                                 if (ret != MEDIA_CONTENT_ERROR_NONE)
1211                                                         media_content_error("error image_meta_get_orientation : [%d]", ret);
1212                                                 ret = image_meta_get_date_taken(image_handle, &datetaken);
1213                                                 if (ret != MEDIA_CONTENT_ERROR_NONE)
1214                                                         media_content_error("error image_meta_get_date_taken : [%d]", ret);
1215
1216                                                 media_content_debug("This is Image");
1217                                                 media_content_debug("Width : %d, Height : %d, Orientation : %d, Date taken : %s", width, height, orientation, datetaken);
1218                                         }
1219
1220                                         SAFE_FREE(datetaken);
1221                                         ret = image_meta_destroy(image_handle);
1222                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1223                                                 media_content_error("error image_meta_destroy : [%d]", ret);
1224
1225                                 } else if (media_type == MEDIA_CONTENT_TYPE_VIDEO) {
1226                                         video_meta_h video_handle;
1227                                         char *title = NULL, *artist = NULL, *album = NULL, *album_artist = NULL;;
1228                                         int duration = 0;
1229                                         time_t time_played;
1230
1231                                         ret = media_info_get_video(media_handle, &video_handle);
1232                                         if (ret != MEDIA_CONTENT_ERROR_NONE) {
1233                                                 media_content_error("media_info_get_video failed: %d", ret);
1234                                         } else {
1235                                                 ret = video_meta_get_artist(video_handle, &artist);
1236                                                 if (ret != MEDIA_CONTENT_ERROR_NONE)
1237                                                         media_content_error("error video_meta_get_artist : [%d]", ret);
1238                                                 ret = video_meta_get_album(video_handle, &album);
1239                                                 if (ret != MEDIA_CONTENT_ERROR_NONE)
1240                                                         media_content_error("error video_meta_get_album : [%d]", ret);
1241                                                 ret = video_meta_get_album_artist(video_handle, &album_artist);
1242                                                 if (ret != MEDIA_CONTENT_ERROR_NONE)
1243                                                         media_content_error("error video_meta_get_album_artist : [%d]", ret);
1244                                                 ret = video_meta_get_duration(video_handle, &duration);
1245                                                 if (ret != MEDIA_CONTENT_ERROR_NONE)
1246                                                         media_content_error("error video_meta_get_duration : [%d]", ret);
1247                                                 ret = video_meta_get_played_time(video_handle, &time_played);
1248                                                 if (ret != MEDIA_CONTENT_ERROR_NONE)
1249                                                         media_content_error("error video_meta_get_played_time : [%d]", ret);
1250
1251                                                 media_content_debug("This is Video");
1252                                                 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);
1253                                         }
1254
1255                                         SAFE_FREE(title);
1256                                         SAFE_FREE(artist);
1257                                         SAFE_FREE(album);
1258                                         SAFE_FREE(album_artist);
1259
1260                                         ret = video_meta_destroy(video_handle);
1261                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1262                                                 media_content_error("error video_meta_destroy : [%d]", ret);
1263
1264                                         /* Get bookmar list in case of video */
1265                                         media_bookmark_h bm_handle;
1266                                         GList *bm_list = NULL;
1267
1268                                         ret = media_info_foreach_bookmark_from_db(media_id, filter, gallery_bookmarks_cb, &bm_list);
1269                                         if (ret != MEDIA_CONTENT_ERROR_NONE) {
1270                                                 media_content_error("media_info_foreach_bookmark_from_db failed: %d", ret);
1271                                         } else {
1272                                                 media_content_debug("media_info_foreach_bookmark_from_db success");
1273
1274                                                 unsigned int k = 0;
1275
1276                                                 for (k = 0; k < g_list_length(bm_list); k++) {
1277                                                         bm_handle = (media_bookmark_h)g_list_nth_data(bm_list, k);
1278                                                         time_t marked_time;
1279                                                         char *thumb_path = NULL;
1280
1281                                                         ret = media_bookmark_get_marked_time(bm_handle, &marked_time);
1282                                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1283                                                                 media_content_error("error media_bookmark_get_marked_time : [%d]", ret);
1284                                                         ret = media_bookmark_get_thumbnail_path(bm_handle, &thumb_path);
1285                                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1286                                                                 media_content_error("error media_bookmark_get_thumbnail_path : [%d]", ret);
1287
1288                                                         media_content_debug("Bookmark time : %d\nBookmar thumb: %s", marked_time, thumb_path);
1289                                                         SAFE_FREE(thumb_path);
1290                                                 }
1291
1292                                                 /* Remove bookmark list */
1293                                                 unsigned int l = 0;
1294                                                 if (bm_list) {
1295                                                         for (l = 0; l < g_list_length(bm_list); l++) {
1296                                                                 bm_handle = (media_bookmark_h)g_list_nth_data(bm_list, l);
1297                                                                 ret = media_bookmark_destroy(bm_handle);
1298                                                                 if (ret != MEDIA_CONTENT_ERROR_NONE)
1299                                                                         media_content_error("error media_bookmark_destroy : [%d]", ret);
1300                                                         }
1301
1302                                                         g_list_free(bm_list);
1303                                                 }
1304
1305                                         }
1306                                 }
1307
1308                                 SAFE_FREE(media_id);
1309                                 SAFE_FREE(media_name);
1310                                 SAFE_FREE(media_path);
1311                         }
1312                 }
1313         }
1314
1315         /* Get tag list */
1316         media_tag_h tag_handle = NULL;
1317         GList *tag_list = NULL;
1318         GList *media_list_in_tag = NULL;
1319
1320         ret = media_tag_foreach_tag_from_db(filter, gallery_tag_item_cb, &tag_list);
1321
1322         if (ret != MEDIA_CONTENT_ERROR_NONE) {
1323                 media_content_error("media_tag_foreach_tag_from_db failed: %d", ret);
1324                 return -1;
1325         } else {
1326                 media_content_error("media_tag_foreach_tag_from_db success");
1327                 char *tag_name = NULL;
1328                 int tag_id;
1329
1330                 for (i = 0; i < g_list_length(tag_list); i++) {
1331                         tag_handle = (media_tag_h)g_list_nth_data(tag_list, i);
1332                         media_tag_get_tag_id(tag_handle, &tag_id);
1333                         media_tag_get_name(tag_handle, &tag_name);
1334
1335                         media_content_debug("[%d] %s", tag_id, tag_name);
1336
1337                         ret = media_tag_foreach_media_from_db(tag_id, filter, gallery_media_item_cb, &media_list_in_tag);
1338                         if (ret != MEDIA_CONTENT_ERROR_NONE) {
1339                                 media_content_error("media_tag_foreach_media_from_db failed: %d", ret);
1340                                 return -1;
1341                         } else {
1342                                 media_content_error("media_tag_foreach_media_from_db success");
1343                                 unsigned int j = 0;
1344                                 media_info_h tag_media_handle;
1345                                 char *media_id = NULL;
1346                                 char *media_name = NULL;
1347                                 char *media_path = NULL;
1348                                 media_content_type_e media_type = 0;
1349
1350                                 for (j = 0; j < g_list_length(media_list_in_tag); j++) {
1351                                         tag_media_handle = (media_info_h)g_list_nth_data(media_list_in_tag, j);
1352                                         ret = media_info_get_media_id(tag_media_handle, &media_id);
1353                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1354                                                 media_content_error("media_info_get_media_id failed: %d", ret);
1355                                         ret = media_info_get_display_name(tag_media_handle, &media_name);
1356                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1357                                                 media_content_error("media_info_get_display_name failed: %d", ret);
1358                                         ret = media_info_get_file_path(tag_media_handle, &media_path);
1359                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1360                                                 media_content_error("media_info_get_file_path failed: %d", ret);
1361                                         ret = media_info_get_media_type(tag_media_handle, &media_type);
1362                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1363                                                 media_content_error("media_info_get_media_type failed: %d", ret);
1364
1365                                         media_content_debug("[%s] media_id [%d] : %s", tag_name, j, media_id);
1366                                         media_content_debug("[%s] media_type [%d] : %d", tag_name, j, media_type);
1367                                         media_content_debug("[%s] media_name [%d] : %s", tag_name, j, media_name);
1368                                         media_content_debug("[%s] media_path [%d] : %s", tag_name, j, media_path);
1369                                 }
1370                                 SAFE_FREE(media_id);
1371                                 SAFE_FREE(media_name);
1372                                 SAFE_FREE(media_path);
1373                         }
1374                         SAFE_FREE(tag_name);
1375                 }
1376         }
1377
1378         /* Remove folder list */
1379         if (folder_list) {
1380                 for (i = 0; i < g_list_length(folder_list); i++) {
1381                         folder_handle = (media_folder_h)g_list_nth_data(folder_list, i);
1382                         media_folder_destroy(folder_handle);
1383                 }
1384
1385                 g_list_free(folder_list);
1386         }
1387
1388         /* Remove all items list */
1389         if (all_item_list) {
1390                 for (i = 0; i < g_list_length(all_item_list); i++) {
1391                         media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
1392                         ret = media_info_destroy(media_handle);
1393                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1394                                 media_content_error("media_info_destroy failed: %d", ret);
1395                 }
1396
1397                 g_list_free(all_item_list);
1398         }
1399
1400         /* Remove items list */
1401         if (item_list) {
1402                 for (i = 0; i < g_list_length(item_list); i++) {
1403                         media_handle = (media_info_h)g_list_nth_data(item_list, i);
1404                         ret = media_info_destroy(media_handle);
1405                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1406                                 media_content_error("media_info_destroy failed: %d", ret);
1407                 }
1408
1409                 g_list_free(item_list);
1410         }
1411
1412         /* Remove tag list */
1413         if (tag_list) {
1414                 for (i = 0; i < g_list_length(tag_list); i++) {
1415                         tag_handle = (media_tag_h)g_list_nth_data(tag_list, i);
1416                         ret = media_tag_destroy(tag_handle);
1417                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1418                                 media_content_error("error media_tag_destroy : [%d]", ret);
1419                 }
1420
1421                 g_list_free(tag_list);
1422         }
1423
1424         /* Remove media list in a tag */
1425         if (media_list_in_tag) {
1426                 for (i = 0; i < g_list_length(media_list_in_tag); i++) {
1427                         media_handle = (media_info_h)g_list_nth_data(media_list_in_tag, i);
1428                         ret = media_info_destroy(media_handle);
1429                         if (ret != MEDIA_CONTENT_ERROR_NONE)
1430                                 media_content_error("media_info_destroy failed: %d", ret);
1431                 }
1432
1433                 g_list_free(media_list_in_tag);
1434         }
1435
1436         return MEDIA_CONTENT_ERROR_NONE;
1437 }
1438
1439 /*Get All Music file. sort by Title and not case sensitive*/
1440 int test_get_all_music_files(void)
1441 {
1442         int ret = MEDIA_CONTENT_ERROR_NONE;
1443         int media_count = 0;
1444         filter_h filter;
1445
1446         /*Set Filter*/
1447         const char *condition = "MEDIA_TYPE=3"; /*0-image, 1-video, 2-sound, 3-music, 4-other*/
1448
1449         ret = media_filter_create(&filter);
1450         if (ret != MEDIA_CONTENT_ERROR_NONE) {
1451                 media_content_error("Fail to create filter");
1452                 return ret;
1453         }
1454         ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_LOCALIZED);
1455         if (ret != MEDIA_CONTENT_ERROR_NONE) {
1456                 media_filter_destroy(filter);
1457                 media_content_error("Fail to set condition");
1458                 return ret;
1459         }
1460         ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_LOCALIZED);
1461         if (ret != MEDIA_CONTENT_ERROR_NONE) {
1462                 media_filter_destroy(filter);
1463                 media_content_error("Fail to set order");
1464                 return ret;
1465         }
1466
1467         /*Get Media Count*/
1468         ret = media_info_get_media_count_from_db(filter, &media_count);
1469         if (ret != MEDIA_CONTENT_ERROR_NONE) {
1470                 media_filter_destroy(filter);
1471                 media_content_error("Fail to get media count");
1472                 return ret;
1473         }
1474
1475         media_content_debug("media_count : [%d]", media_count);
1476
1477         ret = media_info_foreach_media_from_db(filter, media_item_cb, NULL);
1478         if (ret != MEDIA_CONTENT_ERROR_NONE) {
1479                 media_filter_destroy(filter);
1480                 media_content_error("Fail to get media");
1481                 return ret;
1482         }
1483
1484         ret = media_filter_destroy(filter);
1485
1486         return ret;
1487 }
1488
1489 int test_media_info_operation(void)
1490 {
1491         int ret = MEDIA_CONTENT_ERROR_NONE;
1492         int media_count = 0;
1493
1494         media_content_debug("\n============Media info Test============\n\n");
1495
1496         test_filter_create();
1497
1498         ret = media_info_get_media_count_from_db(g_filter, &media_count);
1499         if (ret != MEDIA_CONTENT_ERROR_NONE)
1500                 media_content_error("media_info_get_media_count_from_db failed: %d", ret);
1501         else
1502                 media_content_debug("media_count : [%d]", media_count);
1503
1504         ret = media_info_foreach_media_from_db(g_filter, media_item_cb, NULL);
1505         if (ret == MEDIA_CONTENT_ERROR_NONE)
1506                 media_content_debug("media_info_foreach_media_from_db is success");
1507         else
1508                 media_content_error("media_info_foreach_media_from_db is failed");
1509
1510         test_filter_destroy();
1511
1512         return ret;
1513 }
1514
1515 int test_media_info_operation_2(void)
1516 {
1517         int ret = MEDIA_CONTENT_ERROR_NONE;
1518         int bookmark_count = 0;
1519
1520         media_content_debug("\n============Media info Test 2============\n\n");
1521
1522         test_filter_create();
1523
1524 #if 0
1525         /* Bookmark */
1526         char *thumbnail_path1 = tzplatform_mkpath(TZ_USER_CONTENT, "Images and videos/My video clips/teat11.jpg"));
1527         media_bookmark_insert_to_db(test_video_id, 100, thumbnail_path1);
1528         media_bookmark_insert_to_db(test_video_id, 200, thumbnail_path1);
1529
1530         media_info_get_bookmark_count_from_db(test_video_id, g_filter_g, &bookmark_count);
1531
1532         media_content_debug("bookmark_count : [%d]", bookmark_count);
1533
1534         ret = media_info_foreach_bookmark_from_db(test_video_id, g_filter_g, bookmarks_cb, NULL);
1535 #endif
1536
1537         /* Tag */
1538         ret = media_info_get_tag_count_from_db(test_audio_id, g_filter_g, &bookmark_count);
1539         if (ret != MEDIA_CONTENT_ERROR_NONE)
1540                 media_content_error("media_info_get_tag_count_from_db failed: %d", ret);
1541         else
1542                 media_content_debug("tag_count : [%d]", bookmark_count);
1543
1544         ret = media_info_foreach_tag_from_db(test_audio_id, g_filter_g, tag_list_cb, NULL);
1545         if (ret != MEDIA_CONTENT_ERROR_NONE)
1546                 media_content_error("media_info_foreach_tag_from_db failed: %d", ret);
1547
1548         test_filter_destroy();
1549
1550         return ret;
1551 }
1552
1553 int test_folder_operation(void)
1554 {
1555         int ret = MEDIA_CONTENT_ERROR_NONE;
1556         filter_h filter = NULL;
1557         media_folder_h folder = NULL;
1558         char *folder_id = NULL;
1559         int count = 0;
1560
1561         media_content_debug("\n============Folder Test============\n\n");
1562
1563         test_filter_create();
1564
1565         ret = media_filter_create(&filter);
1566         if (ret != MEDIA_CONTENT_ERROR_NONE) {
1567                 media_content_error("[ERROR] media_folder_filter_create is failed");
1568                 return ret;
1569         }
1570
1571         media_filter_set_condition(filter, "(MEDIA_TYPE = 0 or MEDIA_TYPE = 1) and MEDIA_STORAGE_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT);       /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
1572         media_filter_set_offset(filter, 0, 5);
1573         media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, MEDIA_PATH, MEDIA_CONTENT_COLLATE_NOCASE);
1574         media_filter_set_storage(filter, "cfbf3d2c-71c5-4611-bccc-7cbac890146e");
1575
1576         ret = media_folder_get_folder_count_from_db(filter, &count);
1577         media_content_debug("Folder count : [%d]", count);
1578
1579         ret = media_folder_foreach_folder_from_db(filter, folder_list_cb, &folder);
1580
1581         filter_h m_filter = NULL;
1582
1583         ret = media_filter_create(&m_filter);
1584         if (ret != MEDIA_CONTENT_ERROR_NONE) {
1585                 test_filter_destroy();
1586                 media_filter_destroy(filter);
1587                 media_content_error("[ERROR] media_info_filter_create is failed");
1588                 return ret;
1589         }
1590
1591         media_filter_set_condition(m_filter, "MEDIA_TYPE=1 and MEDIA_STORAGE_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT);   /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
1592         media_filter_set_offset(m_filter, 0, 5);
1593         media_filter_set_order(m_filter, MEDIA_CONTENT_ORDER_DESC, MEDIA_PATH, MEDIA_CONTENT_COLLATE_NOCASE);
1594
1595         ret = media_folder_foreach_media_from_db(folder_id, m_filter, media_item_cb, NULL);
1596         if (ret != MEDIA_CONTENT_ERROR_NONE)
1597                 media_content_error("[ERROR] media_folder_foreach_media_from_db is failed, error code : %d", ret);
1598
1599         media_filter_destroy(filter);
1600         media_filter_destroy(m_filter);
1601
1602         test_filter_destroy();
1603
1604         /* fix prevent: Resource Leak */
1605         SAFE_FREE(folder_id);
1606
1607         return ret;
1608 }
1609
1610 bool folder_update_cb(media_folder_h folder, void *user_data)
1611 {
1612         char *folder_id = NULL;
1613         char *folder_path = NULL;
1614         char *folder_name = NULL;
1615         int folder_order = -1;
1616         bool ret = true;
1617
1618         if (folder != NULL) {
1619                 ret = media_folder_get_folder_id(folder, &folder_id);
1620                 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1621                 media_content_debug("folder_id = [%s]", folder_id);
1622                 SAFE_FREE(folder_id);
1623
1624                 ret = media_folder_get_path(folder, &folder_path);
1625                 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1626                 media_content_debug("folder_path = [%s]", folder_path);
1627                 SAFE_FREE(folder_path);
1628
1629                 ret = media_folder_get_name(folder, &folder_name);
1630                 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1631                 media_content_debug("folder_name = [%s]", folder_name);
1632                 SAFE_FREE(folder_name);
1633
1634                 ret = media_folder_get_order(folder, &folder_order);
1635                 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1636                 media_content_debug("folder_order = [%d]", folder_order);
1637
1638                 ret = media_folder_clone(&g_folder, folder);
1639                 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1640
1641                 ret = true;
1642         } else {
1643                 ret = false;
1644         }
1645
1646         return ret;
1647 }
1648
1649
1650 int test_folder_update(void)
1651 {
1652         int ret = MEDIA_CONTENT_ERROR_NONE;
1653         filter_h filter;
1654         int folder_count = 0;
1655
1656         media_content_debug("\n============Folder Update Test============\n\n");
1657
1658         ret = media_filter_create(&filter);
1659         media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1660
1661         ret = media_filter_set_condition(filter, "MEDIA_TYPE=0 and MEDIA_STORAGE_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT);       /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
1662         ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, FOLDER_ORDER, MEDIA_CONTENT_COLLATE_NOCASE);
1663
1664         ret = media_folder_get_folder_count_from_db(filter, &folder_count);
1665
1666         media_content_debug("Folder count : %d", folder_count);
1667
1668         ret = media_folder_foreach_folder_from_db(filter, folder_update_cb, NULL);
1669
1670         media_filter_destroy(filter);
1671
1672         ret = media_folder_set_name(g_folder, "test_folder");
1673
1674         ret = media_folder_set_order(g_folder, 200);
1675
1676         ret = media_folder_update_to_db(g_folder);
1677
1678         ret = media_folder_destroy(g_folder);
1679
1680         return ret;
1681 }
1682
1683 int test_playlist_operation(void)
1684 {
1685         int ret = MEDIA_CONTENT_ERROR_NONE;
1686         media_playlist_h playlist_1 = NULL;
1687         media_playlist_h playlist_2 = NULL;
1688         media_playlist_h playlist_3 = NULL;
1689         media_playlist_h playlist_4 = NULL;
1690         int playlist_id_1 = 0;
1691         int playlist_id_2 = 0;
1692         int playlist_id_3 = 0;
1693         const char *playlist_name_1 = "myPlaylist_1";
1694         const char *playlist_name_2 = "myPlaylist_2";
1695         const char *playlist_name_3 = "myPlaylist_3";
1696         int playlist_count = 0;
1697         int media_count = 0;
1698         int order_1 = 0;
1699         int order_2 = 0;
1700         int order_3 = 0;
1701         int order_4 = 0;
1702         int order_5 = 0;
1703         filter_h filter = NULL;
1704         filter_h m_filter = NULL;
1705
1706         media_content_debug("\n============Playlist Test============\n\n");
1707
1708         /* Filter for playlist */
1709
1710         const char *condition = "(MEDIA_TYPE=1 or MEDIA_TYPE=3)";       /*0-image, 1-video, 2-sound, 3-music, 4-other*/
1711
1712         ret = media_filter_create(&filter);
1713         ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_NOCASE);
1714         ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, PLAYLIST_NAME, MEDIA_CONTENT_COLLATE_NOCASE);
1715
1716         /* Create Playlist */
1717         media_playlist_insert_to_db(playlist_name_1, &playlist_1);
1718         media_playlist_insert_to_db(playlist_name_2, &playlist_2);
1719         media_playlist_insert_to_db(playlist_name_3, &playlist_3);
1720
1721         if (playlist_1 != NULL) {
1722                 /* Add media to Playlist */
1723                 media_playlist_add_media(playlist_1, test_audio_id);
1724                 media_playlist_add_media(playlist_1, test_audio_id);
1725                 media_playlist_add_media(playlist_1, test_video_id);
1726
1727                 #if 0
1728                 char *playlist_thumb_path = tzplatform_mkpath(TZ_USER_CONTENT, "Images/Default.jpg"));
1729                 media_playlist_set_thumbnail_path(playlist_1, playlist_thumb_path);
1730                 #endif
1731
1732                 media_playlist_update_to_db(playlist_1);
1733         }
1734
1735         if (playlist_2 != NULL) {
1736                 media_playlist_add_media(playlist_2, test_audio_id);
1737                 media_playlist_add_media(playlist_2, test_audio_id);
1738                 media_playlist_update_to_db(playlist_2);
1739         }
1740
1741         /* Get Playlist Count*/
1742         ret = media_playlist_get_playlist_count_from_db(filter, &playlist_count);
1743         if (ret == 0)
1744                 media_content_debug("playlist_count [%d]", playlist_count);
1745
1746         /* Get Playlist*/
1747         GList *playlist_id_list = NULL;
1748         media_playlist_foreach_playlist_from_db(filter, playlist_list_cb, &playlist_id_list);
1749         /* 64bit build issue */
1750 #if 0
1751         /* Get Playlist id*/
1752         playlist_id_1 = (int)g_list_nth_data(playlist_id_list, 0);
1753         playlist_id_2 = (int)g_list_nth_data(playlist_id_list, 1);
1754         playlist_id_3 = (int)g_list_nth_data(playlist_id_list, 2);
1755 #endif
1756         media_content_debug("playlist_id_1 [%d]", playlist_id_1);
1757         media_content_debug("playlist_id_2 [%d]", playlist_id_2);
1758         media_content_debug("playlist_id_3 [%d]", playlist_id_3);
1759
1760         /* Export and import playlist */
1761         media_playlist_export_to_file(playlist_3, "/opt/usr/media/Music/playlist.m3u");
1762         media_playlist_import_from_file("/opt/usr/media/Music/playlist.m3u", "playlist_4", &playlist_4);
1763
1764         /* Filter for media*/
1765         ret = media_filter_create(&m_filter);
1766
1767         ret = media_filter_set_condition(m_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
1768
1769         ret = media_filter_set_order(m_filter, MEDIA_CONTENT_ORDER_ASC, PLAYLIST_MEMBER_ORDER, MEDIA_CONTENT_COLLATE_DEFAULT);
1770
1771         /* Get media count */
1772         media_playlist_get_media_count_from_db(playlist_id_1, m_filter, &media_count);
1773         media_content_debug("playlist_1_media_count [%d]", media_count);
1774
1775         media_playlist_get_media_count_from_db(playlist_id_2, m_filter, &media_count);
1776         media_content_debug("playlist_2_media_count [%d]", media_count);
1777
1778         media_playlist_get_media_count_from_db(playlist_id_3, m_filter, &media_count);
1779         media_content_debug("playlist_3_media_count [%d]", media_count);
1780
1781         /* Get media of playlist */
1782         GList *playlist_member_id_list = NULL;
1783         GList *playlist_member_id_list_1 = NULL;
1784
1785         media_playlist_foreach_media_from_db(playlist_id_1, m_filter, playlist_item_cb, &playlist_member_id_list);
1786         media_playlist_foreach_media_from_db(playlist_id_2, m_filter, playlist_item_cb, &playlist_member_id_list_1);
1787
1788         int playlist_member_id_1_1 = 0;
1789         int playlist_member_id_1_2 = 0;
1790         int playlist_member_id_1_3 = 0;
1791         int playlist_member_id_2_1 = 0;
1792         int playlist_member_id_2_2 = 0;
1793         /* 64bit build issue */
1794 #if 0
1795         playlist_member_id_1_1 = (int)g_list_nth_data(playlist_member_id_list, 0);
1796         playlist_member_id_1_2 = (int)g_list_nth_data(playlist_member_id_list, 1);
1797         playlist_member_id_1_3 = (int)g_list_nth_data(playlist_member_id_list, 2);
1798         playlist_member_id_2_1 = (int)g_list_nth_data(playlist_member_id_list_1, 0);
1799         playlist_member_id_2_2 = (int)g_list_nth_data(playlist_member_id_list_1, 1);
1800 #endif
1801         media_content_debug("playlist_member_id_1_1 [%d]", playlist_member_id_1_1);
1802         media_content_debug("playlist_member_id_1_2 [%d]", playlist_member_id_1_2);
1803         media_content_debug("playlist_member_id_1_3 [%d]", playlist_member_id_1_3);
1804         media_content_debug("playlist_member_id_2_1 [%d]", playlist_member_id_2_1);
1805         media_content_debug("playlist_member_id_2_2 [%d]", playlist_member_id_2_2);
1806
1807         media_playlist_get_play_order(playlist_1, playlist_member_id_1_1, &order_1);
1808         media_playlist_get_play_order(playlist_1, playlist_member_id_1_2, &order_2);
1809         media_playlist_get_play_order(playlist_1, playlist_member_id_1_3, &order_3);
1810         media_playlist_get_play_order(playlist_2, playlist_member_id_2_1, &order_4);
1811         media_playlist_get_play_order(playlist_2, playlist_member_id_2_2, &order_5);
1812         media_content_debug("order_1 [%d] order_2 [%d] order_3 [%d] order_4 [%d] order_5 [%d]", order_1, order_2, order_3, order_4, order_5);
1813
1814         /* Update Playlist */
1815         media_playlist_remove_media(playlist_2, playlist_member_id_2_1);
1816         media_playlist_add_media(playlist_2, test_video_id);
1817         media_playlist_set_name(playlist_2, "test_playlist");
1818         media_playlist_set_play_order(playlist_2, playlist_member_id_2_2, order_5+100);
1819         media_playlist_update_to_db(playlist_2);
1820
1821         /* Get Updated Playlist*/
1822         media_playlist_foreach_playlist_from_db(filter, playlist_list_cb, NULL);
1823
1824         /* deletes the playlist */
1825 #if 0
1826         media_playlist_delete_from_db(playlist_id_1);
1827         media_playlist_delete_from_db(playlist_id_2);
1828 #endif
1829
1830         if (playlist_1 != NULL)
1831                 media_playlist_destroy(playlist_1);
1832         if (playlist_2 != NULL)
1833                 media_playlist_destroy(playlist_2);
1834         if (playlist_3 != NULL)
1835                 media_playlist_destroy(playlist_3);
1836         if (playlist_4 != NULL)
1837                 media_playlist_destroy(playlist_4);
1838
1839         g_list_free(playlist_id_list);
1840         g_list_free(playlist_member_id_list);
1841         g_list_free(playlist_member_id_list_1);
1842
1843         if (filter != NULL)
1844                 ret = media_filter_destroy(filter);
1845         if (m_filter != NULL)
1846                 ret = media_filter_destroy(m_filter);
1847
1848         return ret;
1849 }
1850
1851 int test_tag_operation(void)
1852 {
1853         int ret = MEDIA_CONTENT_ERROR_NONE;
1854         media_tag_h tag_1;
1855         media_tag_h tag_2;
1856         media_tag_h tag_3;
1857         int tag_id_1 = 0;
1858         int tag_id_2 = 0;
1859         int tag_id_3 = 0;
1860         const char *tag_name_1 = "myTag_1";
1861         const char *tag_name_2 = "myTag_2";
1862         const char *tag_name_3 = "myTag_3";
1863         int tag_count = 0;
1864         int media_count = 0;
1865         filter_h filter;
1866
1867         media_content_debug("\n============Tag Test============\n\n");
1868
1869         const char *g_condition = "TAG_NAME like \"%%my%%\"";
1870
1871         ret = media_filter_create(&filter);
1872
1873         ret = media_filter_set_condition(filter, g_condition, MEDIA_CONTENT_COLLATE_DEFAULT);
1874
1875         ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, TAG_NAME, MEDIA_CONTENT_COLLATE_DEFAULT);
1876
1877         /* Create Tag */
1878         ret = media_tag_insert_to_db(tag_name_1, &tag_1);
1879         if (ret != MEDIA_CONTENT_ERROR_NONE)
1880                 media_content_error("error media_tag_insert_to_db : [%d]", ret);
1881         ret = media_tag_insert_to_db(tag_name_2, &tag_2);
1882         if (ret != MEDIA_CONTENT_ERROR_NONE)
1883                 media_content_error("error media_tag_insert_to_db : [%d]", ret);
1884         ret = media_tag_insert_to_db(tag_name_3, &tag_3);
1885         if (ret != MEDIA_CONTENT_ERROR_NONE)
1886                 media_content_error("error media_tag_insert_to_db : [%d]", ret);
1887
1888         /* Add media to Tag */
1889         ret = media_tag_add_media(tag_1, test_audio_id);
1890         if (ret != MEDIA_CONTENT_ERROR_NONE)
1891                 media_content_error("error media_tag_add_media : [%d]", ret);
1892         ret = media_tag_add_media(tag_1, test_video_id);
1893         if (ret != MEDIA_CONTENT_ERROR_NONE)
1894                 media_content_error("error media_tag_add_media : [%d]", ret);
1895         ret = media_tag_update_to_db(tag_1);
1896         if (ret != MEDIA_CONTENT_ERROR_NONE)
1897                 media_content_error("error media_tag_update_to_db : [%d]", ret);
1898
1899         ret = media_tag_add_media(tag_2, test_audio_id);
1900         if (ret != MEDIA_CONTENT_ERROR_NONE)
1901                 media_content_error("error media_tag_add_media : [%d]", ret);
1902         ret = media_tag_update_to_db(tag_2);
1903         if (ret != MEDIA_CONTENT_ERROR_NONE)
1904                 media_content_error("error media_tag_update_to_db : [%d]", ret);
1905
1906         /* Get Tag Count*/
1907         ret = media_tag_get_tag_count_from_db(filter, &tag_count);
1908         if (ret != MEDIA_CONTENT_ERROR_NONE)
1909                 media_content_error("error media_tag_get_tag_count_from_db : [%d]", ret);
1910         else
1911                 media_content_debug("tag_count [%d]", tag_count);
1912
1913         /* Get Tag*/
1914         ret = media_tag_foreach_tag_from_db(filter, tag_list_cb, NULL);
1915         if (ret != MEDIA_CONTENT_ERROR_NONE)
1916                 media_content_error("error media_tag_foreach_tag_from_db : [%d]", ret);
1917
1918         /* Get Tag id*/
1919         ret = media_tag_get_tag_id(tag_1, &tag_id_1);
1920         if (ret != MEDIA_CONTENT_ERROR_NONE)
1921                 media_content_error("error media_tag_get_tag_id : [%d]", ret);
1922         else
1923                 media_content_debug("tag_id_1 [%d]", tag_id_1);
1924
1925         ret = media_tag_get_tag_id(tag_2, &tag_id_2);
1926         if (ret != MEDIA_CONTENT_ERROR_NONE)
1927                 media_content_error("error media_tag_get_tag_id : [%d]", ret);
1928         else
1929                 media_content_debug("tag_id_2 [%d]", tag_id_2);
1930
1931         ret = media_tag_get_tag_id(tag_3, &tag_id_3);
1932         if (ret != MEDIA_CONTENT_ERROR_NONE)
1933                 media_content_error("error media_tag_get_tag_id : [%d]", ret);
1934         else
1935                 media_content_debug("tag_id_3 [%d]", tag_id_3);
1936
1937         /* Get media count */
1938         ret = media_tag_get_media_count_from_db(tag_id_1, NULL, &media_count);
1939         if (ret != MEDIA_CONTENT_ERROR_NONE)
1940                 media_content_error("error media_tag_get_media_count_from_db : [%d]", ret);
1941         else
1942                 media_content_debug("tag_1_media_count [%d]", media_count);
1943
1944         ret = media_tag_get_media_count_from_db(tag_id_2, NULL, &media_count);
1945         if (ret != MEDIA_CONTENT_ERROR_NONE)
1946                 media_content_error("error media_tag_get_media_count_from_db : [%d]", ret);
1947         else
1948                 media_content_debug("tag_2_media_count [%d]", media_count);
1949
1950         /* Get media of Tag */
1951         ret = media_tag_foreach_media_from_db(tag_id_1, NULL, media_item_cb, NULL);
1952         if (ret != MEDIA_CONTENT_ERROR_NONE)
1953                 media_content_error("error media_tag_foreach_media_from_db : [%d]", ret);
1954
1955         ret = media_tag_foreach_media_from_db(tag_id_2, NULL, media_item_cb, NULL);
1956         if (ret != MEDIA_CONTENT_ERROR_NONE)
1957                 media_content_error("error media_tag_foreach_media_from_db : [%d]", ret);
1958
1959         /* Update Tag */
1960         ret = media_tag_add_media(tag_2, test_video_id);
1961         if (ret != MEDIA_CONTENT_ERROR_NONE)
1962                 media_content_error("error media_tag_add_media : [%d]", ret);
1963         ret = media_tag_set_name(tag_2, (char *)"test_tag");
1964         if (ret != MEDIA_CONTENT_ERROR_NONE)
1965                 media_content_error("error media_tag_set_name : [%d]", ret);
1966         ret = media_tag_update_to_db(tag_2);
1967         if (ret != MEDIA_CONTENT_ERROR_NONE)
1968                 media_content_error("error media_tag_update_to_db : [%d]", ret);
1969
1970         /* Get Updated Tag*/
1971         ret = media_tag_foreach_tag_from_db(filter, tag_list_cb, NULL);
1972         if (ret != MEDIA_CONTENT_ERROR_NONE)
1973                 media_content_error("error media_tag_foreach_tag_from_db : [%d]", ret);
1974
1975         /* deletes the tag */
1976         ret = media_tag_delete_from_db(tag_id_1);
1977         if (ret != MEDIA_CONTENT_ERROR_NONE)
1978                 media_content_error("error media_tag_delete_from_db : [%d]", ret);
1979         ret = media_tag_delete_from_db(tag_id_2);
1980         if (ret != MEDIA_CONTENT_ERROR_NONE)
1981                 media_content_error("error media_tag_delete_from_db : [%d]", ret);
1982
1983         ret = media_tag_destroy(tag_1);
1984         if (ret != MEDIA_CONTENT_ERROR_NONE)
1985                 media_content_error("error media_tag_destroy : [%d]", ret);
1986         ret = media_tag_destroy(tag_2);
1987         if (ret != MEDIA_CONTENT_ERROR_NONE)
1988                 media_content_error("error media_tag_destroy : [%d]", ret);
1989         ret = media_filter_destroy(filter);
1990         if (ret != MEDIA_CONTENT_ERROR_NONE)
1991                 media_content_error("error media_filter_destroy : [%d]", ret);
1992
1993         return ret;
1994 }
1995
1996
1997 int test_bookmark_operation(void)
1998 {
1999         /* bookmark is only supported for video information. */
2000         int ret = MEDIA_CONTENT_ERROR_NONE;
2001         int bookmark_count = 0;
2002         filter_h filter;
2003
2004         media_content_debug("\n============Bookmark Test============\n\n");
2005
2006         const char *g_condition = "BOOKMARK_MARKED_TIME > 300";
2007
2008         ret = media_filter_create(&filter);
2009         if (ret != MEDIA_CONTENT_ERROR_NONE)
2010                 media_content_error("error media_filter_create : [%d]", ret);
2011
2012         ret = media_filter_set_condition(filter, g_condition, MEDIA_CONTENT_COLLATE_DEFAULT);
2013         if (ret != MEDIA_CONTENT_ERROR_NONE)
2014                 media_content_error("error media_filter_set_condition : [%d]", ret);
2015
2016         ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, BOOKMARK_MARKED_TIME, MEDIA_CONTENT_COLLATE_DEFAULT);
2017         if (ret != MEDIA_CONTENT_ERROR_NONE)
2018                 media_content_error("error media_filter_set_order : [%d]", ret);
2019
2020         /* insert bookmark to video */
2021         const char *thumbnail_path1 = tzplatform_mkpath(TZ_USER_CONTENT, "Images and videos/My video clips/teat11.jpg");
2022         ret = media_bookmark_insert_to_db(test_video_id, 400, thumbnail_path1);
2023         if (ret != MEDIA_CONTENT_ERROR_NONE)
2024                 media_content_error("error media_bookmark_insert_to_db : [%d]", ret);
2025
2026         ret = media_bookmark_insert_to_db(test_video_id, 600, thumbnail_path1);
2027         if (ret != MEDIA_CONTENT_ERROR_NONE)
2028                 media_content_error("error media_bookmark_insert_to_db : [%d]", ret);
2029
2030         ret = media_bookmark_get_bookmark_count_from_db(filter, &bookmark_count);
2031         if (ret != MEDIA_CONTENT_ERROR_NONE)
2032                 media_content_error("error media_bookmark_get_bookmark_count_from_db : [%d]", ret);
2033         else
2034                 media_content_debug("bookmark_count = [%d]", bookmark_count);
2035
2036         ret = media_filter_destroy(filter);
2037         if (ret != MEDIA_CONTENT_ERROR_NONE)
2038                 media_content_error("error media_filter_destroy : [%d]", ret);
2039
2040         return ret;
2041 }
2042
2043 int test_album_list(void)
2044 {
2045         media_content_debug("\n============Album Test============\n\n");
2046
2047         int ret = MEDIA_CONTENT_ERROR_NONE;
2048         int album_count = 0;
2049         filter_h filter;
2050
2051         /*Set Filter*/
2052         const char *condition = "MEDIA_TYPE=3"; /*0-image, 1-video, 2-sound, 3-music, 4-other*/
2053
2054         ret = media_filter_create(&filter);
2055         if (ret != MEDIA_CONTENT_ERROR_NONE) {
2056                 media_content_error("Fail to create filter");
2057                 return ret;
2058         }
2059         ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
2060         if (ret != MEDIA_CONTENT_ERROR_NONE) {
2061                 media_filter_destroy(filter);
2062                 media_content_error("Fail to set condition");
2063                 return ret;
2064         }
2065         ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ALBUM, MEDIA_CONTENT_COLLATE_NOCASE);
2066         if (ret != MEDIA_CONTENT_ERROR_NONE) {
2067                 media_filter_destroy(filter);
2068                 media_content_error("Fail to set order");
2069                 return ret;
2070         }
2071
2072         ret = media_album_get_album_count_from_db(filter, &album_count);
2073         if (ret != MEDIA_CONTENT_ERROR_NONE) {
2074                 media_filter_destroy(filter);
2075                 return ret;
2076         } else {
2077                 media_content_debug("album_count [%d]", album_count);
2078         }
2079
2080         ret = media_album_foreach_album_from_db(filter, album_list_cb, NULL);
2081         if (ret != MEDIA_CONTENT_ERROR_NONE)
2082                 media_content_error("error media_album_foreach_album_from_db : [%d]", ret);
2083
2084         ret = media_filter_destroy(filter);
2085         if (ret != MEDIA_CONTENT_ERROR_NONE)
2086                 media_content_error("error media_filter_destroy : [%d]", ret);
2087
2088         return ret;
2089 }
2090
2091 int test_group_operation(void)
2092 {
2093         media_content_debug("\n============Group Test============\n\n");
2094
2095         int ret = MEDIA_CONTENT_ERROR_NONE;
2096         int group_count = 0;
2097         int idx = 0;
2098
2099         ret = test_filter_create();
2100         if (ret != MEDIA_CONTENT_ERROR_NONE) {
2101                 media_content_error("[error(0x%08x)", ret);
2102                 return ret;
2103         }
2104
2105         for (idx = 0; idx < MEDIA_CONTENT_GROUP_MAX; idx++) {
2106                 ret = media_group_get_group_count_from_db(g_filter, idx, &group_count);
2107                 if (ret != MEDIA_CONTENT_ERROR_NONE) {
2108                         test_filter_destroy();
2109                         media_content_error("media_group_get_group_count_from_db fail. idx=[%d]", ret, idx);
2110                         return ret;
2111                 } else {
2112                         media_content_debug("[%2d]group_count [%d]", idx, group_count);
2113                 }
2114
2115                 ret = media_group_foreach_group_from_db(g_filter, idx, group_list_cb, &idx);
2116         }
2117         ret = test_filter_destroy();
2118
2119         return ret;
2120 }
2121
2122 int test_update_operation()
2123 {
2124         int ret = MEDIA_CONTENT_ERROR_NONE;
2125         unsigned int i = 0;
2126         media_info_h media_handle = NULL;
2127         GList *all_item_list = NULL;
2128
2129         /* Get all item list */
2130         ret = media_info_foreach_media_from_db(NULL, gallery_media_item_cb, &all_item_list);
2131         if (ret != MEDIA_CONTENT_ERROR_NONE) {
2132                 media_content_error("media_info_foreach_media_from_db failed: %d", ret);
2133                 return -1;
2134         } else {
2135                 media_content_debug("media_info_foreach_media_from_db success");
2136                 char *media_id = NULL;
2137                 char *media_path = NULL;
2138                 media_content_type_e media_type = 0;
2139
2140                 for (i = 0; i < g_list_length(all_item_list); i++) {
2141                         media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
2142
2143                         ret = media_info_get_media_id(media_handle, &media_id);
2144                         if (ret != MEDIA_CONTENT_ERROR_NONE)
2145                                 media_content_error("media_info_get_media_id failed: %d", ret);
2146                         ret = media_info_get_file_path(media_handle, &media_path);
2147                         if (ret != MEDIA_CONTENT_ERROR_NONE)
2148                                 media_content_error("media_info_get_file_path failed: %d", ret);
2149                         ret = media_info_get_media_type(media_handle, &media_type);
2150                         if (ret != MEDIA_CONTENT_ERROR_NONE)
2151                                 media_content_error("media_info_get_media_type failed: %d", ret);
2152
2153                         media_content_debug("media_id [%d] : %s", i, media_id);
2154                         media_content_debug("media_type [%d] : %d", i, media_type);
2155                         media_content_debug("media_path [%d] : %s", i, media_path);
2156 #if 0
2157                         if (media_type == MEDIA_CONTENT_TYPE_IMAGE) {
2158                                 image_meta_h image_handle;
2159                                 media_content_orientation_e orientation;
2160
2161                                 ret = media_info_get_image(media_handle, &image_handle);
2162                                 if (ret != MEDIA_CONTENT_ERROR_NONE) {
2163                                         media_content_error("media_info_get_image failed: %d", ret);
2164                                 } else {
2165                                         media_content_debug("media_info_get_image success");
2166
2167                                         /* update image meta */
2168                                         orientation = MEDIA_CONTENT_ORIENTATION_ROT_180;
2169                                         image_meta_set_orientation(image_handle, orientation);
2170
2171                                         ret = image_meta_update_to_db(image_handle);
2172                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
2173                                                 media_content_error("image_meta_update_to_db failed: %d", ret);
2174                                         else
2175                                                 media_content_debug("image_meta_update_to_db success");
2176                                 }
2177
2178                         } else if (media_type == MEDIA_CONTENT_TYPE_VIDEO) {
2179                                 video_meta_h video_handle;
2180
2181                                 ret = media_info_get_video(media_handle, &video_handle);
2182                                 if (ret != MEDIA_CONTENT_ERROR_NONE) {
2183                                         media_content_error("media_info_get_video failed: %d", ret);
2184                                 } else {
2185                                         media_content_debug("media_info_get_video success");
2186
2187                                         /* update video meta */
2188                                         video_meta_set_played_count(video_handle, 5);
2189                                         video_meta_set_played_time(video_handle, 5);
2190                                         video_meta_set_played_position(video_handle, 5);
2191                                         video_meta_update_to_db(video_handle);
2192
2193                                         ret = video_meta_update_to_db(video_handle);
2194                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
2195                                                 media_content_error("video_meta_update_to_db failed: %d", ret);
2196                                         else
2197                                                 media_content_debug("video_meta_update_to_db success");
2198                                 }
2199                         } else if (media_type == MEDIA_CONTENT_TYPE_MUSIC) {
2200                                 audio_meta_h audio_handle = NULL;
2201                                 ret = media_info_get_audio(media_handle, &audio_handle);
2202                                 if (ret != MEDIA_CONTENT_ERROR_NONE) {
2203                                         media_content_error("media_info_get_audio failed: %d", ret);
2204                                 } else {
2205                                         media_content_debug("media_info_get_audio success");
2206
2207                                         audio_meta_set_played_count(audio_handle, 5);
2208                                         audio_meta_set_played_time(audio_handle, 1000);
2209                                         audio_meta_set_played_position(audio_handle, 180);
2210
2211                                         ret = audio_meta_update_to_db(audio_handle);
2212                                         if (ret != MEDIA_CONTENT_ERROR_NONE)
2213                                                 media_content_error("audio_meta_update_to_db failed: %d", ret);
2214                                         else
2215                                                 media_content_debug("audio_meta_update_to_db success");
2216                                 }
2217
2218                         }
2219 #endif
2220                 }
2221
2222                 /* fix prevent: Resource Leak */
2223                 SAFE_FREE(media_id);
2224                 SAFE_FREE(media_path);
2225         }
2226
2227         return MEDIA_CONTENT_ERROR_NONE;
2228 }
2229
2230 int test_insert(void)
2231 {
2232         int ret = MEDIA_CONTENT_ERROR_NONE;
2233         const char *path = "/opt/usr/media/Images/Default.jpg";
2234 #if 0
2235         const char *path = "/opt/usr/media/Others/other.txt";
2236         char *path = NULL;
2237 #endif
2238         media_info_h media_item = NULL;
2239         media_content_debug("\n============DB Insert Test============\n\n");
2240
2241         ret = media_info_insert_to_db(path, &media_item);
2242
2243         if ((ret == MEDIA_CONTENT_ERROR_NONE) && (media_item != NULL)) {
2244                 media_content_debug("Insertion is success");
2245         } else {
2246                 media_content_error("Insertion is failed");
2247                 ret = media_info_destroy(media_item);
2248                 return ret;
2249         }
2250
2251         char *media_id = NULL;
2252
2253         ret = media_info_get_media_id(media_item, &media_id);
2254         if (ret != MEDIA_CONTENT_ERROR_NONE)
2255                 media_content_error("media_info_get_media_id failed: %d", ret);
2256         else
2257                 media_content_debug("Media ID: %s", media_id);
2258
2259         SAFE_FREE(media_id);
2260
2261         ret = media_info_update_to_db(media_item);
2262         if (ret == MEDIA_CONTENT_ERROR_NONE)
2263                 media_content_debug("media_info_update_to_db is success");
2264         else
2265                 media_content_error("media_info_update_to_db is failed");
2266
2267         ret = media_info_destroy(media_item);
2268         if (ret != MEDIA_CONTENT_ERROR_NONE)
2269                 media_content_error("media_info_destroy failed: %d", ret);
2270
2271         return ret;
2272 }
2273
2274 int test_move(void)
2275 {
2276         int ret = MEDIA_CONTENT_ERROR_NONE;
2277         const char *move_media_id = "60aea677-4742-408e-b5f7-f2628062d06d";
2278         const char *dst_path = tzplatform_mkpath(TZ_USER_CONTENT, "Images/XX/Default1.jpg");
2279         media_info_h move_media = NULL;
2280
2281         ret = media_info_get_media_from_db(move_media_id, &move_media);
2282         if (ret == MEDIA_CONTENT_ERROR_NONE)
2283                 media_content_debug("media_info_get_media_from_db success");
2284         else
2285                 media_content_error("media_info_get_media_from_db failed: %d", ret);
2286
2287         media_content_debug("\n============DB Move Test============\n\n");
2288
2289         if (move_media) {
2290                 ret = media_info_move_to_db(move_media, dst_path);
2291
2292                 if (ret == MEDIA_CONTENT_ERROR_NONE)
2293                         media_content_debug("Move is success");
2294                 else
2295                         media_content_error("Move is failed");
2296
2297                 ret = media_info_destroy(move_media);
2298         } else {
2299                 media_content_debug("There is no item : %s", move_media_id);
2300         }
2301
2302         return ret;
2303 }
2304
2305 void thumbnail_completed_cb(media_content_error_e error, const char *path, void *user_data)
2306 {
2307         char *thumbnail_path = NULL;
2308         int ret = MEDIA_CONTENT_ERROR_NONE;
2309         g_cnt++;
2310
2311         media_content_debug("=================[%d][%d]", g_media_cnt, g_cnt);
2312         media_content_debug("error_code [%d]", error);
2313         media_content_debug("thumbnail_path [%s]", path);
2314         if (user_data != NULL) {
2315                 media_info_h media = (media_info_h)user_data;
2316                 ret = media_info_get_thumbnail_path(media, &thumbnail_path);
2317                 if (ret != MEDIA_CONTENT_ERROR_NONE)
2318                         media_content_error("media_info_get_thumbnail_path failed: %d", ret);
2319                 else
2320                         media_content_debug("thumbnail_path get from media[%s]", thumbnail_path);
2321                 SAFE_FREE(thumbnail_path);
2322                 ret = media_info_destroy(media);
2323                 if (ret != MEDIA_CONTENT_ERROR_NONE)
2324                         media_content_error("media_info_destroy failed: %d", ret);
2325         }
2326
2327         if (g_cnt == g_media_cnt)
2328                 g_main_loop_quit(g_loop);
2329
2330         return;
2331 }
2332
2333 bool thumbnail_create_cb(media_info_h media, void *user_data)
2334 {
2335         char *media_id = NULL;
2336         media_info_h dst = NULL;
2337         int ret = MEDIA_CONTENT_ERROR_NONE;
2338
2339         if (media == NULL) {
2340                 media_content_debug("NO Item");
2341                 return true;
2342         }
2343
2344         ret = media_info_get_media_id(media, &media_id);
2345         if (ret != MEDIA_CONTENT_ERROR_NONE)
2346                 media_content_error("media_info_get_media_id failed: %d", ret);
2347         else
2348                 media_content_debug("media_id : [%s]", media_id);
2349
2350         ret = media_info_clone(&dst, media);
2351         if (ret != MEDIA_CONTENT_ERROR_NONE)
2352                 media_content_error("media_info_clone failed: %d", ret);
2353         else {
2354                 ret = media_info_create_thumbnail(dst, thumbnail_completed_cb, dst);
2355                 if (ret != MEDIA_CONTENT_ERROR_NONE)
2356                         media_content_error("media_info_create_thumbnail failed: %d", ret);
2357         }
2358
2359         /* fix prevent: Resource leak */
2360         SAFE_FREE(media_id);
2361
2362         return true;
2363 }
2364
2365 bool thumbnail_cancel_cb(media_info_h media, void *user_data)
2366 {
2367         int ret = MEDIA_CONTENT_ERROR_NONE;
2368
2369         char *media_id = NULL;
2370         media_info_h dst = NULL;
2371
2372         g_cnt++;
2373
2374         if (media == NULL) {
2375                 media_content_debug("NO Item");
2376                 return true;
2377         }
2378
2379         ret = media_info_get_media_id(media, &media_id);
2380         if (ret != MEDIA_CONTENT_ERROR_NONE)
2381                 media_content_error("media_info_get_media_id failed: %d", ret);
2382         else
2383                 media_content_debug("media_id : [%s]", media_id);
2384
2385         ret = media_info_clone(&dst, media);
2386         if (ret != MEDIA_CONTENT_ERROR_NONE)
2387                 media_content_error("media_info_clone failed: %d", ret);
2388
2389         ret = media_info_cancel_thumbnail(dst);
2390         if (ret != MEDIA_CONTENT_ERROR_NONE)
2391                 media_content_error("media_info_cancel_thumbnail failed: %d", ret);
2392
2393         ret = media_info_destroy(dst);
2394         if (ret != MEDIA_CONTENT_ERROR_NONE)
2395                         media_content_error("media_info_destroy failed: %d", ret);
2396
2397         if (g_cnt == g_media_cnt)
2398                 g_main_loop_quit(g_loop);
2399
2400         /* fix prevent: Resource leak */
2401         SAFE_FREE(media_id);
2402
2403         return true;
2404 }
2405
2406 gboolean create_thumbnail_start(gpointer data)
2407 {
2408         int ret = MEDIA_CONTENT_ERROR_NONE;
2409
2410         ret = media_info_foreach_media_from_db(g_filter, thumbnail_create_cb, NULL);
2411
2412         if (ret == MEDIA_CONTENT_ERROR_NONE)
2413                 media_content_debug("media_info_foreach_media_from_db is success");
2414         else
2415                 media_content_error("media_info_foreach_media_from_db is failed");
2416
2417         return false;
2418 }
2419
2420 gboolean cancel_thumbnail_start(gpointer data)
2421 {
2422         int ret = MEDIA_CONTENT_ERROR_NONE;
2423
2424         ret = media_info_foreach_media_from_db(g_filter, thumbnail_cancel_cb, NULL);
2425
2426         if (ret == MEDIA_CONTENT_ERROR_NONE)
2427                 media_content_debug("media_info_foreach_media_from_db is success");
2428         else
2429                 media_content_error("media_info_foreach_media_from_db is failed");
2430
2431         return false;
2432 }
2433
2434 int test_create_thumbnail(int cancel)
2435 {
2436         int ret = MEDIA_CONTENT_ERROR_NONE;
2437         GSource *source = NULL;
2438         GMainContext *context = NULL;
2439
2440         test_filter_create();
2441
2442         ret = media_info_get_media_count_from_db(g_filter, &g_media_cnt);
2443         if (ret != MEDIA_CONTENT_ERROR_NONE)
2444                 media_content_error("media_info_get_media_count_from_db failed: %d", ret);
2445         else
2446                 media_content_debug("media_count : [%d]", g_media_cnt);
2447
2448         g_loop = g_main_loop_new(NULL, FALSE);
2449         context = g_main_loop_get_context(g_loop);
2450         source = g_idle_source_new();
2451         g_source_set_callback(source, create_thumbnail_start, NULL, NULL);
2452         g_source_attach(source, context);
2453
2454         /* Logic to cancel */
2455         if (cancel) {
2456                 GSource *cancel_src = NULL;
2457                 cancel_src = g_idle_source_new();
2458                 g_source_set_callback(cancel_src, cancel_thumbnail_start, NULL, NULL);
2459                 g_source_attach(cancel_src, context);
2460         }
2461
2462         g_main_loop_run(g_loop);
2463         g_main_loop_unref(g_loop);
2464
2465         test_filter_destroy();
2466
2467         return ret;
2468 }
2469
2470 int test_disconnect_database(void)
2471 {
2472         int ret = MEDIA_CONTENT_ERROR_NONE;
2473         media_content_debug("\n============DB Disconnection Test============\n\n");
2474
2475         ret = media_content_disconnect();
2476
2477         if (ret == MEDIA_CONTENT_ERROR_NONE)
2478                 media_content_debug("disconnection is success");
2479         else
2480                 media_content_error("disconnection is failed");
2481
2482         return ret;
2483 }
2484
2485 int test_request_update_db(void)
2486 {
2487         int ret = MEDIA_CONTENT_ERROR_NONE;
2488         media_info_h media = NULL;
2489         char *content_name = NULL;
2490         bool favorite = FALSE;
2491
2492         ret = media_info_get_media_from_db("71b19196-5b38-4ab1-ab34-bfe05c369614", &media);
2493         if (ret != MEDIA_CONTENT_ERROR_NONE)
2494                 media_content_error("media_info_get_media_from_db failed: %d", ret);
2495
2496         ret = media_info_set_content_name(media, "TEST_content_name");
2497         if (ret != MEDIA_CONTENT_ERROR_NONE)
2498                 media_content_error("media_info_set_content_name failed: %d", ret);
2499
2500         ret = media_info_set_favorite(media, TRUE);
2501         if (ret != MEDIA_CONTENT_ERROR_NONE)
2502                 media_content_error("media_info_set_favorite failed: %d", ret);
2503
2504         ret = media_info_update_to_db(media);
2505         if (ret == MEDIA_CONTENT_ERROR_NONE)
2506                 media_content_debug("media_info_update_to_db is success");
2507         else
2508                 media_content_error("media_info_update_to_db is failed");
2509
2510         if (media != NULL)
2511                 media_info_destroy(media);
2512
2513         /*get the updated value*/
2514         ret = media_info_get_media_from_db("71b19196-5b38-4ab1-ab34-bfe05c369614", &media);
2515         if (ret != MEDIA_CONTENT_ERROR_NONE)
2516                 media_content_error("media_info_get_media_from_db failed: %d", ret);
2517
2518         ret = media_info_get_content_name(media, &content_name);
2519         if (ret != MEDIA_CONTENT_ERROR_NONE)
2520                 media_content_error("media_info_get_content_name failed: %d", ret);
2521         else
2522                 media_content_debug("content name [%s]", content_name);
2523
2524         SAFE_FREE(content_name);
2525
2526         ret = media_info_get_favorite(media, &favorite);
2527         if (ret != MEDIA_CONTENT_ERROR_NONE)
2528                 media_content_error("media_info_get_favorite failed: %d", ret);
2529         else
2530                 media_content_debug("favorite [%d]", favorite);
2531
2532         ret = media_info_destroy(media);
2533
2534         return ret;
2535 }
2536
2537 int g_total_photo_size = 0;
2538 int g_total_video_size = 0;
2539 int g_total_mp3_size = 0;
2540 int g_total_voice_memo_size = 0;
2541
2542 bool dft_cb(media_info_h media, void *user_data)
2543 {
2544         unsigned long long file_size = 0;
2545         media_content_type_e media_type = -1;
2546         char *mime_type = NULL;
2547         int ret = MEDIA_CONTENT_ERROR_NONE;
2548
2549         if (media == NULL)
2550                 return true;
2551
2552         ret = media_info_get_media_type(media, &media_type);
2553         if (ret != MEDIA_CONTENT_ERROR_NONE)
2554                 media_content_error("media_info_get_media_type failed: %d", ret);
2555         ret = media_info_get_size(media, &file_size);
2556         if (ret != MEDIA_CONTENT_ERROR_NONE)
2557                 media_content_error("media_info_get_size failed: %d", ret);
2558         ret = media_info_get_mime_type(media, &mime_type);
2559         if (ret != MEDIA_CONTENT_ERROR_NONE)
2560                 media_content_error("media_info_get_mime_type failed: %d", ret);
2561
2562         if (media_type == MEDIA_CONTENT_TYPE_IMAGE)
2563                 g_total_photo_size += file_size;
2564         else if (media_type == MEDIA_CONTENT_TYPE_VIDEO)
2565                 g_total_video_size += file_size;
2566         else if (media_type == MEDIA_CONTENT_TYPE_SOUND)
2567                 g_total_voice_memo_size += file_size;
2568         else if (media_type == MEDIA_CONTENT_TYPE_MUSIC) {
2569                 if ((mime_type != NULL) && (!strcmp("audio/mpeg", mime_type)))
2570                         g_total_mp3_size += file_size;
2571                 else
2572                         g_total_voice_memo_size += file_size;
2573         } else
2574                 media_content_debug("invalid media_type");
2575
2576         if (mime_type != NULL)
2577                 free(mime_type);
2578
2579         return true;
2580
2581 }
2582
2583 int DFT_test(void)
2584 {
2585         int ret = MEDIA_CONTENT_ERROR_NONE;
2586         media_content_debug("\n============DFT_test============\n\n");
2587
2588         filter_h filter = NULL;
2589         int media_cnt = 0;
2590
2591         /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
2592
2593         ret = media_filter_create(&filter);
2594
2595 /*Internal Memory*/
2596         media_content_debug("[Internal Memory]\n");
2597         /*1. Photo ============================================================*/
2598         ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND MEDIA_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT);
2599
2600         /*Get Photo Count*/
2601         ret = media_info_get_media_count_from_db(filter, &media_cnt);
2602         media_content_debug("Photo count = [%d]\n", media_cnt);
2603
2604         /*Get Photo Size*/
2605         ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2606         media_content_debug("Photo size = [%d]\n", g_total_photo_size);
2607
2608         /*2. Video ============================================================*/
2609         ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND MEDIA_TYPE=1", MEDIA_CONTENT_COLLATE_DEFAULT);
2610
2611         /*Get Video Count*/
2612         ret = media_info_get_media_count_from_db(filter, &media_cnt);
2613         media_content_debug("Video count = [%d]\n", media_cnt);
2614
2615         /*Get Video Size*/
2616         ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2617         media_content_debug("Video size = [%d]\n", g_total_video_size);
2618
2619         /*3. MP3 ============================================================*/
2620         ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND MEDIA_TYPE=3 AND MEDIA_MIME_TYPE=\"audio/mpeg\"", MEDIA_CONTENT_COLLATE_DEFAULT);
2621
2622         /*Get MP3 Count*/
2623         ret = media_info_get_media_count_from_db(filter, &media_cnt);
2624         media_content_debug("MP3 count = [%d]\n", media_cnt);
2625
2626         /*Get MP3 Size*/
2627         ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2628         media_content_debug("MP3 size = [%d]\n", g_total_mp3_size);
2629
2630         /*4. Voice Memo ============================================================*/
2631         ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND (MEDIA_MIME_TYPE=\"audio/AMR\" OR MEDIA_MIME_TYPE=\"audio/mp4\")", MEDIA_CONTENT_COLLATE_DEFAULT);
2632
2633         /*Get Voice Memo Count*/
2634         ret = media_info_get_media_count_from_db(filter, &media_cnt);
2635         media_content_debug("Voice Memo count = [%d]\n", media_cnt);
2636
2637         /*Get Voice Memo Size*/
2638         ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2639         media_content_debug("Voice Memo size = [%d]\n", g_total_voice_memo_size);
2640
2641         g_total_photo_size = 0;
2642         g_total_video_size = 0;
2643         g_total_mp3_size = 0;
2644         g_total_voice_memo_size = 0;
2645
2646 /*External Memory*/
2647         media_content_debug("\n[External Memory]\n");
2648         /*1. Photo ============================================================*/
2649         ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND MEDIA_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT);
2650
2651         /*Get Photo Count*/
2652         ret = media_info_get_media_count_from_db(filter, &media_cnt);
2653         media_content_debug("Photo count = [%d]\n", media_cnt);
2654
2655         /*Get Photo Size*/
2656         ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2657         media_content_debug("Photo size = [%d]\n", g_total_photo_size);
2658
2659         /*2. Video ============================================================*/
2660         ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND MEDIA_TYPE=1", MEDIA_CONTENT_COLLATE_DEFAULT);
2661
2662         /*Get Video Count*/
2663         ret = media_info_get_media_count_from_db(filter, &media_cnt);
2664         media_content_debug("Video count = [%d]\n", media_cnt);
2665
2666         /*Get Video Size*/
2667         ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2668         media_content_debug("Video size = [%d]\n", g_total_video_size);
2669
2670         /*3. MP3 ============================================================*/
2671         ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND MEDIA_TYPE=3 AND MEDIA_MIME_TYPE=\"audio/mpeg\"", MEDIA_CONTENT_COLLATE_DEFAULT);
2672
2673         /*Get MP3 Count*/
2674         ret = media_info_get_media_count_from_db(filter, &media_cnt);
2675         media_content_debug("MP3 count = [%d]\n", media_cnt);
2676
2677         /*Get MP3 Size*/
2678         ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2679         media_content_debug("MP3 size = [%d]\n", g_total_mp3_size);
2680
2681         /*4. Voice Memo ============================================================*/
2682         ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND (MEDIA_MIME_TYPE=\"audio/AMR\" OR MEDIA_MIME_TYPE=\"audio/mp4\")", MEDIA_CONTENT_COLLATE_DEFAULT);
2683
2684         /*Get Voice Memo Count*/
2685         ret = media_info_get_media_count_from_db(filter, &media_cnt);
2686         media_content_debug("Voice Memo count = [%d]\n", media_cnt);
2687
2688         /*Get Voice Memo Size*/
2689         ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2690         media_content_debug("Voice Memo size = [%d]\n", g_total_voice_memo_size);
2691         ret = media_filter_destroy(filter);
2692
2693         return ret;
2694 }
2695
2696 void insert_batch_cb(media_content_error_e error, void * user_data)
2697 {
2698         media_content_debug("media_info_insert_batch_to_db completed!\n");
2699 }
2700
2701 int test_batch_operations()
2702 {
2703         int ret = -1;
2704         int i;
2705         char *file_list[10];
2706
2707         for (i = 0; i < 10; i++) {
2708                 char filepath[255] = {0,};
2709                 snprintf(filepath, sizeof(filepath), "%s%d.jpg", tzplatform_mkpath(TZ_USER_CONTENT, "test/image"), i+1);
2710                 media_content_debug("File : %s\n", filepath);
2711                 file_list[i] = strdup(filepath);
2712         }
2713
2714         ret = media_info_insert_batch_to_db((const char **)file_list, 10, insert_batch_cb, NULL);
2715         if (ret != MEDIA_CONTENT_ERROR_NONE)
2716                 media_content_error("media_info_insert_batch_to_db failed : %d\n", ret);
2717
2718         filter_h filter;
2719         char *condition = "MEDIA_PATH LIKE \'";
2720         strncat(condition, tzplatform_mkpath(TZ_USER_CONTENT, "test/image%%jpg\'"), 17);
2721         ret = media_filter_create(&filter);
2722         if (ret != MEDIA_CONTENT_ERROR_NONE) {
2723                 media_content_error("Fail to create filter");
2724                 return ret;
2725         }
2726
2727         ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
2728         if (ret != MEDIA_CONTENT_ERROR_NONE) {
2729                 media_filter_destroy(filter);
2730                 media_content_error("Fail to set condition");
2731                 return ret;
2732         }
2733
2734         ret = media_info_delete_batch_from_db(filter);
2735         if (ret != MEDIA_CONTENT_ERROR_NONE) {
2736                 media_filter_destroy(filter);
2737                 media_content_error("media_info_delete_batch_from_db failed : %d\n", ret);
2738                 return ret;
2739         }
2740
2741         ret = media_filter_destroy(filter);
2742
2743         return ret;
2744 }
2745
2746 void insert_burst_shot_cb(media_content_error_e error, void * user_data)
2747 {
2748         media_content_debug("media_info_insert_burst_shot_to_db completed![%d]\n", error);
2749         g_main_loop_quit(g_loop);
2750 }
2751
2752 gboolean test_insert_burst_shot_to_db_start(gpointer data)
2753 {
2754         int ret = MEDIA_CONTENT_ERROR_NONE;
2755         int i = 0;
2756         char *file_list[10];
2757
2758         for (i = 0; i < 10; i++) {
2759                 char filepath[255] = {0,};
2760                 snprintf(filepath, sizeof(filepath), "%s%d.jpg", tzplatform_mkpath(TZ_USER_CONTENT, "test/image"), i+1);
2761                 media_content_debug("File : %s\n", filepath);
2762                 file_list[i] = strdup(filepath);
2763         }
2764
2765         ret = media_info_insert_burst_shot_to_db((const char **)file_list, 10, insert_burst_shot_cb, NULL);
2766         if (ret != MEDIA_CONTENT_ERROR_NONE)
2767                 media_content_error("media_info_insert_burst_shot_to_db failed : %d\n", ret);
2768
2769         return ret;
2770 }
2771
2772 int test_insert_burst_shot_to_db(void)
2773 {
2774         GSource *source = NULL;
2775         GMainContext *context = NULL;
2776
2777         g_loop = g_main_loop_new(NULL, FALSE);
2778         context = g_main_loop_get_context(g_loop);
2779         source = g_idle_source_new();
2780         g_source_set_callback(source, test_insert_burst_shot_to_db_start, NULL, NULL);
2781         g_source_attach(source, context);
2782
2783         g_main_loop_run(g_loop);
2784         g_main_loop_unref(g_loop);
2785
2786         return 0;
2787 }
2788
2789 void _scan_cb(media_content_error_e err, void *user_data)
2790 {
2791         media_content_debug("scan callback is called : %d\n", err);
2792         g_main_loop_quit(g_loop);
2793
2794         return;
2795 }
2796
2797 int test_scan_file()
2798 {
2799         int ret = -1;
2800
2801         const char *file_path = tzplatform_mkpath(TZ_USER_CONTENT, "test/image1.jpg");
2802         ret = media_content_scan_file(file_path);
2803         if (ret != MEDIA_CONTENT_ERROR_NONE) {
2804                 media_content_error("Fail to media_content_scan_file : %d", ret);
2805                 return ret;
2806         }
2807
2808         return 0;
2809 }
2810
2811 gboolean test_scan_dir_start(gpointer data)
2812 {
2813         int ret = -1;
2814
2815         const char *dir_path = tzplatform_getenv(TZ_USER_CONTENT);
2816
2817         ret = media_content_scan_folder(dir_path, TRUE, _scan_cb, NULL);
2818
2819         if (ret != MEDIA_CONTENT_ERROR_NONE) {
2820                 media_content_error("Fail to test_scan_dir_start : %d", ret);
2821                 return ret;
2822         }
2823
2824         return 0;
2825 }
2826
2827 gboolean cancel_scan_dir_start(gpointer data)
2828 {
2829         int ret = MEDIA_CONTENT_ERROR_NONE;
2830
2831         const char *dir_path = "/opt/usr/media/Images";
2832
2833         ret = media_content_cancel_scan_folder(dir_path);
2834
2835         if (ret == MEDIA_CONTENT_ERROR_NONE)
2836                 media_content_debug("media_content_cancel_scan_folder is success");
2837         else
2838                 media_content_error("media_content_cancel_scan_folder is failed");
2839
2840         return false;
2841 }
2842
2843 int test_scan_dir(int cancel)
2844 {
2845         GSource *source = NULL;
2846         GMainContext *context = NULL;
2847
2848         g_loop = g_main_loop_new(NULL, FALSE);
2849         context = g_main_loop_get_context(g_loop);
2850         source = g_idle_source_new();
2851         g_source_set_callback(source, test_scan_dir_start, NULL, NULL);
2852         g_source_attach(source, context);
2853
2854         if (cancel) {
2855                 GSource *cancel_src = NULL;
2856                 cancel_src = g_idle_source_new();
2857                 g_source_set_callback(cancel_src, cancel_scan_dir_start, NULL, NULL);
2858                 g_source_attach(cancel_src, context);
2859         }
2860
2861         g_main_loop_run(g_loop);
2862         g_main_loop_unref(g_loop);
2863
2864         return 0;
2865 }
2866
2867 void _noti_cb(media_content_error_e error,
2868                                 int pid,
2869                                 media_content_db_update_item_type_e update_item,
2870                                 media_content_db_update_type_e update_type,
2871                                 media_content_type_e media_type,
2872                                 char *uuid,
2873                                 char *path,
2874                                 char *mime_type,
2875                                 void *user_data)
2876 {
2877         if (error == 0)
2878                 media_content_debug("noti success! : %d\n", error);
2879         else
2880                 media_content_debug("error occured! : %d\n", error);
2881
2882         media_content_debug("Noti from PID(%d)\n", pid);
2883
2884         if (update_item == MEDIA_ITEM_FILE)
2885                 media_content_debug("Noti item : MEDIA_ITEM_FILE\n");
2886         else if (update_item == MEDIA_ITEM_DIRECTORY)
2887                 media_content_debug("Noti item : MEDIA_ITEM_DIRECTORY\n");
2888
2889         if (update_type == MEDIA_CONTENT_INSERT)
2890                 media_content_debug("Noti type : MEDIA_CONTENT_INSERT\n");
2891         else if (update_type == MEDIA_CONTENT_DELETE)
2892                 media_content_debug("Noti type : MEDIA_CONTENT_DELETE\n");
2893         else if (update_type == MEDIA_CONTENT_UPDATE)
2894                 media_content_debug("Noti type : MEDIA_CONTENT_UPDATE\n");
2895
2896         media_content_debug("content type : %d\n", media_type);
2897
2898         if (path)
2899                 media_content_debug("path : %s\n", path);
2900         else
2901                 media_content_debug("path not\n");
2902
2903         if (uuid)
2904                 media_content_debug("uuid : %s\n", uuid);
2905         else
2906                 media_content_debug("uuid not\n");
2907
2908         if (mime_type)
2909                 media_content_debug("mime_type : %s\n", mime_type);
2910         else
2911                 media_content_debug("mime not\n");
2912
2913         if (user_data) media_content_debug("String : %s\n", (char *)user_data);
2914
2915         return;
2916 }
2917
2918 void _noti_cb_2(media_content_error_e error,
2919                                 int pid,
2920                                 media_content_db_update_item_type_e update_item,
2921                                 media_content_db_update_type_e update_type,
2922                                 media_content_type_e media_type,
2923                                 char *uuid,
2924                                 char *path,
2925                                 char *mime_type,
2926                                 void *user_data)
2927 {
2928         if (error == 0)
2929                 media_content_debug("noti_2 success! : %d\n", error);
2930         else
2931                 media_content_debug("error occured! : %d\n", error);
2932
2933         media_content_debug("Noti_2 from PID(%d)\n", pid);
2934
2935         g_main_loop_quit(g_loop);
2936         return;
2937 }
2938
2939 static media_content_noti_h noti_h;
2940 static media_content_noti_h noti_h_2;
2941
2942 gboolean _send_noti_operations(gpointer data)
2943 {
2944         int ret = MEDIA_CONTENT_ERROR_NONE;
2945
2946         /* First of all, noti subscription */
2947         char *user_str = strdup("hi");
2948         media_content_add_db_updated_cb(_noti_cb, (void*)user_str, &noti_h);
2949         media_content_add_db_updated_cb(_noti_cb_2, (void*)user_str, &noti_h_2);
2950
2951         /* media_info_insert_to_db */
2952         media_info_h media_item = NULL;
2953         const char *path = tzplatform_mkpath(TZ_USER_CONTENT, "test/image1.jpg");
2954
2955         ret = media_info_insert_to_db(path, &media_item);
2956         if (ret != MEDIA_CONTENT_ERROR_NONE) {
2957                 media_content_error("media_info_insert_to_db failed : %d", ret);
2958                 media_info_destroy(media_item);
2959                 return FALSE;
2960         }
2961
2962         media_content_debug("media_info_insert_to_db success");
2963
2964         /* media_info_delete_batch_from_db */
2965         filter_h filter;
2966         char condition[2048] = {0,};
2967         const char *temp = NULL;
2968         temp = tzplatform_mkpath(TZ_USER_CONTENT, "test/image%%\'");
2969         snprintf(condition, sizeof(condition), "MEDIA_PATH LIKE \'%s", temp);
2970
2971         ret = media_filter_create(&filter);
2972         if (ret != MEDIA_CONTENT_ERROR_NONE) {
2973                 media_content_error("Fail to create filter");
2974                 media_info_destroy(media_item);
2975                 return ret;
2976         }
2977
2978         ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
2979         if (ret != MEDIA_CONTENT_ERROR_NONE) {
2980                 media_filter_destroy(filter);
2981                 media_info_destroy(media_item);
2982                 media_content_error("Fail to set condition");
2983                 return ret;
2984         }
2985         ret = media_info_delete_batch_from_db(filter);
2986         if (ret != MEDIA_CONTENT_ERROR_NONE) {
2987                 media_filter_destroy(filter);
2988                 media_info_destroy(media_item);
2989                 media_content_error("media_info_delete_batch_from_db failed : %d\n", ret);
2990                 return ret;
2991         }
2992
2993         media_filter_destroy(filter);
2994
2995         media_content_remove_db_updated_cb(noti_h);
2996
2997         /* media_info_update_to_db */
2998         ret = media_info_update_to_db(media_item);
2999         if (ret != MEDIA_CONTENT_ERROR_NONE) {
3000                 media_content_error("media_info_update_to_db failed : %d\n", ret);
3001                 media_info_destroy(media_item);
3002                 return ret;
3003         }
3004
3005         media_info_destroy(media_item);
3006
3007         return FALSE;
3008 }
3009
3010 int test_noti()
3011 {
3012         int ret = MEDIA_CONTENT_ERROR_NONE;
3013         GSource *source = NULL;
3014         GMainContext *context = NULL;
3015
3016         g_loop = g_main_loop_new(NULL, FALSE);
3017         context = g_main_loop_get_context(g_loop);
3018         source = g_idle_source_new();
3019         g_source_set_callback(source, _send_noti_operations, NULL, NULL);
3020         g_source_attach(source, context);
3021
3022         g_main_loop_run(g_loop);
3023         g_main_loop_unref(g_loop);
3024
3025         test_filter_destroy();
3026         media_content_remove_db_updated_cb(noti_h_2);
3027
3028         return ret;
3029 }
3030
3031 int test_create_handle(void)
3032 {
3033         int ret = MEDIA_CONTENT_ERROR_NONE;
3034         media_info_h media = NULL;
3035         const char *path = "/home/owner/content/test/test.txt";
3036         char *str_value = NULL;
3037         int int_value = -1;
3038         bool bool_value = FALSE;
3039         unsigned long long content_size = 0;
3040         time_t modified_time = 0;
3041         double double_value = 0.0;
3042
3043         ret = media_info_create(path, &media);
3044
3045         ret = media_info_set_title(media, "test_title");
3046         ret = media_info_set_album(media, "test_album");
3047         ret = media_info_set_artist(media, "test_artist");
3048         ret = media_info_set_genre(media, "test_genre");
3049         ret = media_info_set_recorded_date(media, "test_recorded_date");
3050         ret = media_info_set_age_rating(media, "test_age_rating");
3051         ret = media_info_set_author(media, "test_author");
3052         ret = media_info_set_category(media, "test_category");
3053         ret = media_info_set_content_name(media, "test_content_name");
3054         ret = media_info_set_description(media, "test_description");
3055         ret = media_info_set_display_name(media, "test_display_name");
3056         ret = media_info_set_keyword(media, "test_keyword");
3057         ret = media_info_set_location_tag(media, "test_location_tag");
3058         ret = media_info_set_weather(media, "test_weather");
3059         ret = media_info_set_provider(media, "test_provider");
3060
3061         ret = media_info_set_altitude(media, 100.10);
3062         ret = media_info_set_latitude(media, 200.20);
3063         ret = media_info_set_longitude(media, 300.30);
3064         ret = media_info_set_rating(media, 10);
3065         ret = media_info_set_played_time(media);
3066         ret = media_info_set_favorite(media, TRUE);
3067         ret = media_info_increase_played_count(media);
3068         ret = media_info_set_added_time(media, 12345);
3069
3070         ret = media_info_insert_to_db_with_data(media);
3071         if (ret != MEDIA_CONTENT_ERROR_NONE) {
3072                 media_content_error("media_info_insert_to_db_with_data failed : %d\n", ret);
3073                 media_info_destroy(media);
3074                 return ret;
3075         }
3076
3077         ret = media_info_get_media_id(media, &str_value);
3078         media_content_debug("media_id = [%s]", str_value);
3079         SAFE_FREE(str_value);
3080
3081         ret = media_info_get_file_path(media, &str_value);
3082         media_content_debug("file_path = [%s]", str_value);
3083         SAFE_FREE(str_value);
3084
3085         ret = media_info_get_title(media, &str_value);
3086         media_content_debug("title = [%s]", str_value);
3087         SAFE_FREE(str_value);
3088
3089         ret = media_info_get_age_rating(media, &str_value);
3090         media_content_debug("age_rating = [%s]", str_value);
3091         SAFE_FREE(str_value);
3092
3093         ret = media_info_get_author(media, &str_value);
3094         media_content_debug("author = [%s]", str_value);
3095         SAFE_FREE(str_value);
3096
3097         ret = media_info_get_category(media, &str_value);
3098         media_content_debug("category = [%s]", str_value);
3099         SAFE_FREE(str_value);
3100
3101         ret = media_info_get_content_name(media, &str_value);
3102         media_content_debug("content_name = [%s]", str_value);
3103         SAFE_FREE(str_value);
3104
3105         ret = media_info_get_description(media, &str_value);
3106         media_content_debug("description = [%s]", str_value);
3107         SAFE_FREE(str_value);
3108
3109         ret = media_info_get_display_name(media, &str_value);
3110         media_content_debug("display_name = [%s]", str_value);
3111         SAFE_FREE(str_value);
3112
3113         ret = media_info_get_keyword(media, &str_value);
3114         media_content_debug("keyword = [%s]", str_value);
3115         SAFE_FREE(str_value);
3116
3117         ret = media_info_get_location_tag(media, &str_value);
3118         media_content_debug("location_tag = [%s]", str_value);
3119         SAFE_FREE(str_value);
3120
3121         ret = media_info_get_weather(media, &str_value);
3122         media_content_debug("weather = [%s]", str_value);
3123         SAFE_FREE(str_value);
3124
3125         ret = media_info_get_provider(media, &str_value);
3126         media_content_debug("provider = [%s]", str_value);
3127         SAFE_FREE(str_value);
3128
3129         ret = media_info_get_longitude(media, &double_value);
3130         media_content_debug("longitude = [%lf]", double_value);
3131
3132         ret = media_info_get_latitude(media, &double_value);
3133         media_content_debug("latitude = [%lf]", double_value);
3134
3135         ret = media_info_get_altitude(media, &double_value);
3136         media_content_debug("altitud = [%lf]", double_value);
3137
3138         ret = media_info_get_rating(media, &int_value);
3139         media_content_debug("rating = [%d]", int_value);
3140
3141         ret = media_info_get_favorite(media, &bool_value);
3142         media_content_debug("favorite = [%d]", bool_value);
3143
3144         ret = media_info_get_played_time(media, &modified_time);
3145         media_content_debug("played_time = [%d]", modified_time);
3146
3147         ret = media_info_get_played_count(media, &int_value);
3148         media_content_debug("played_count = [%d]", int_value);
3149
3150         ret = media_info_get_added_time(media, &modified_time);
3151         media_content_debug("added_time = [%d]", modified_time);
3152
3153         ret = media_info_get_size(media, &content_size);
3154         media_content_debug("size = [%d]", content_size);
3155
3156         ret = media_info_get_modified_time(media, &modified_time);
3157         media_content_debug("modified_time = [%d]", modified_time);
3158
3159         ret = media_info_get_media_type(media, (media_content_type_e *)&int_value);
3160         media_content_debug("media_type = [%d]", int_value);
3161
3162         ret = media_info_get_storage_type(media, (media_content_storage_e *)&int_value);
3163         media_content_debug("storage_type = [%d]", int_value);
3164
3165         media_info_destroy(media);
3166
3167         return ret;
3168
3169 }
3170
3171 bool media_face_test_cb(media_face_h face, void *user_data)
3172 {
3173         char *face_id = NULL;
3174         char *media_id = NULL;
3175         unsigned int rect_x = 0;
3176         unsigned int rect_y = 0;
3177         unsigned int rect_w = 0;
3178         unsigned int rect_h = 0;
3179         media_content_orientation_e orientation = 0;
3180         char *face_tag = NULL;
3181
3182         media_face_get_face_id(face, &face_id);
3183         media_face_get_media_id(face, &media_id);
3184         media_face_get_face_rect(face, &rect_x, &rect_y, &rect_w, &rect_h);
3185         media_face_get_orientation(face, &orientation);
3186         media_face_get_tag(face, &face_tag);
3187
3188         media_content_debug("face_id [%s] media_id [%s]", face_id, media_id);
3189         media_content_debug("rect_x [%d] rect_y [%d] rect_w [%d] rect_h [%d] orientation [%d]", rect_x, rect_y, rect_w, rect_h, orientation);
3190         media_content_debug("tag [%s]", face_tag);
3191
3192         if (user_data != NULL) {
3193                 media_face_h new_face = NULL;
3194                 media_face_clone(&new_face, face);
3195
3196                 GList **list = (GList**)user_data;
3197                 *list = g_list_append(*list, new_face);
3198         }
3199
3200         SAFE_FREE(face_id);
3201         SAFE_FREE(media_id);
3202         SAFE_FREE(face_tag);
3203
3204         return true;
3205 }
3206
3207 int test_face(void)
3208 {
3209         int ret = MEDIA_CONTENT_ERROR_NONE;
3210         filter_h filter = NULL;
3211         GList *all_item_list = NULL;
3212         int i = 0;
3213
3214         ret = media_filter_create(&filter);
3215         media_content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "fail media_filter_create");
3216
3217         ret = media_filter_set_condition(filter, "MEDIA_TYPE = 0", MEDIA_CONTENT_COLLATE_DEFAULT);
3218         if (ret != MEDIA_CONTENT_ERROR_NONE) {
3219                 media_filter_destroy(filter);
3220                 media_content_error("Fail to set condition");
3221                 return ret;
3222         }
3223
3224         ret = media_info_foreach_media_from_db(filter, gallery_media_item_cb, &all_item_list);
3225         if (ret != MEDIA_CONTENT_ERROR_NONE) {
3226                 media_content_error("media_info_foreach_media_from_db failed: %d", ret);
3227                 media_filter_destroy(filter);
3228                 return ret;
3229         }
3230
3231         for (i = 0; i < g_list_length(all_item_list); i++) {
3232                 media_info_h media_handle = NULL;
3233                 char *media_id = NULL;
3234                 int face_count = 0;
3235
3236                 media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
3237
3238                 ret = media_info_get_media_id(media_handle, &media_id);
3239                 if (ret != MEDIA_CONTENT_ERROR_NONE)
3240                         media_content_error("media_info_get_media_id failed: %d", ret);
3241
3242                 ret = media_info_get_face_count_from_db(media_id, filter, &face_count);
3243                 if (ret != MEDIA_CONTENT_ERROR_NONE)
3244                         media_content_error("media_info_get_face_count_from_db failed: %d", ret);
3245
3246                 media_content_error("media_id [%s] face_count [%d]", media_id, face_count);
3247
3248                 ret = media_info_foreach_face_from_db(media_id, filter, media_face_test_cb, NULL);
3249                 if (ret != MEDIA_CONTENT_ERROR_NONE)
3250                         media_content_error("media_info_foreach_face_from_db failed: %d", ret);
3251
3252                 media_info_destroy(media_handle);
3253         }
3254
3255         media_filter_destroy(filter);
3256
3257         return ret;
3258 }
3259
3260 int test_face_add_del(void)
3261 {
3262         int ret = MEDIA_CONTENT_ERROR_NONE;
3263         char *media_id = "ecca7366-e085-41d8-a12b-cbdfc2b9c5fc";
3264
3265         /* Insert Test */
3266         media_face_h face = NULL;
3267
3268         char *face_tag = "test_face_tag";
3269
3270         ret = media_face_create(media_id, &face);
3271         media_content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "fail media_face_create");
3272
3273         ret = media_face_set_face_rect(face, 10, 12, 50, 100);
3274         ret = media_face_set_orientation(face, 5);
3275         ret = media_face_set_tag(face, face_tag);
3276
3277         ret = media_face_insert_to_db(face);
3278         ret = media_face_destroy(face);
3279
3280         /* Update Test */
3281         GList *all_item_list = NULL;
3282         filter_h filter = NULL;
3283         ret = media_filter_create(&filter);
3284         media_content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "fail media_filter_create");
3285
3286         ret = media_filter_set_condition(filter, "MEDIA_FACE_TAG IS NOT NULL", MEDIA_CONTENT_COLLATE_DEFAULT);
3287         if (ret != MEDIA_CONTENT_ERROR_NONE) {
3288                 media_filter_destroy(filter);
3289                 media_content_error("Fail to set condition");
3290                 return ret;
3291         }
3292
3293         ret = media_info_foreach_face_from_db(media_id, filter, media_face_test_cb, &all_item_list);
3294
3295         if (g_list_length(all_item_list) > 0) {
3296                 media_face_h face_handle = NULL;
3297                 face_handle = (media_face_h)g_list_nth_data(all_item_list, 0);
3298
3299                 ret = media_face_set_face_rect(face_handle, 20, 22, 70, 70);
3300                 ret = media_face_set_orientation(face_handle, 3);
3301                 ret = media_face_set_tag(face_handle, NULL);
3302                 ret = media_face_update_to_db(face_handle);
3303
3304                 media_face_destroy(face_handle);
3305         }
3306
3307         media_filter_destroy(filter);
3308
3309         /* Delete Test */
3310         char *face_id = "5e58a3a8-f0b2-4c29-b799-b49a70dc2313";
3311
3312         /* Delete Test*/
3313         ret = media_face_delete_from_db(face_id);
3314
3315         return ret;
3316 }
3317
3318 int main(int argc, char *argv[])
3319 {
3320         int ret = MEDIA_CONTENT_ERROR_NONE;
3321
3322         media_content_debug("--- content manager test start ---\n\n");
3323
3324         ret = test_connect_database();
3325         if (ret != MEDIA_CONTENT_ERROR_NONE)
3326                 return MEDIA_CONTENT_ERROR_NONE;
3327
3328 #if 0
3329         ret = test_move();
3330         if (ret != MEDIA_CONTENT_ERROR_NONE)
3331                 return ret;
3332
3333         ret = test_gallery_scenario();
3334         if (ret != MEDIA_CONTENT_ERROR_NONE)
3335                 return ret;
3336
3337         ret = test_get_all_music_files();
3338         if (ret != MEDIA_CONTENT_ERROR_NONE)
3339                 return ret;
3340
3341         ret = test_media_info_operation();
3342         if (ret != MEDIA_CONTENT_ERROR_NONE)
3343                 return ret;
3344
3345         ret = test_folder_operation();
3346         if (ret != MEDIA_CONTENT_ERROR_NONE)
3347                 return ret;
3348
3349         ret = test_folder_update();
3350         if (ret != MEDIA_CONTENT_ERROR_NONE)
3351                 return ret;
3352
3353         ret = test_playlist_operation();
3354         if (ret != MEDIA_CONTENT_ERROR_NONE)
3355                 return ret;
3356
3357         ret = test_tag_operation();
3358         if (ret != MEDIA_CONTENT_ERROR_NONE)
3359                 return ret;
3360
3361         ret = test_bookmark_operation();
3362         if (ret != MEDIA_CONTENT_ERROR_NONE)
3363                 return ret;
3364
3365         ret = test_album_list();
3366         if (ret != MEDIA_CONTENT_ERROR_NONE)
3367                 return ret;
3368
3369         ret = test_group_operation();
3370         if (ret != MEDIA_CONTENT_ERROR_NONE)
3371                 return ret;
3372
3373         ret = test_update_operation();
3374         if (ret != MEDIA_CONTENT_ERROR_NONE)
3375                 return ret;
3376
3377         ret = test_insert();
3378         if (ret != MEDIA_CONTENT_ERROR_NONE)
3379                 return ret;
3380
3381         ret = test_move();
3382         if (ret != MEDIA_CONTENT_ERROR_NONE)
3383                 return ret;
3384
3385         ret = test_create_thumbnail(TRUE);
3386         if (ret != MEDIA_CONTENT_ERROR_NONE)
3387                 return ret;
3388
3389         ret = test_request_update_db();
3390         if (ret != MEDIA_CONTENT_ERROR_NONE)
3391                 return ret;
3392
3393         ret = DFT_test();
3394         if (ret != MEDIA_CONTENT_ERROR_NONE)
3395                 return ret;
3396
3397         ret = test_batch_operations();
3398         if (ret != MEDIA_CONTENT_ERROR_NONE)
3399                 return MEDIA_CONTENT_ERROR_NONE;
3400
3401         ret = test_insert_burst_shot_to_db();
3402         if (ret != MEDIA_CONTENT_ERROR_NONE)
3403                 return MEDIA_CONTENT_ERROR_NONE;
3404
3405         ret = test_scan_file();
3406         if (ret != MEDIA_CONTENT_ERROR_NONE)
3407                 return MEDIA_CONTENT_ERROR_NONE;
3408
3409         ret = test_scan_dir(true);
3410         if (ret != MEDIA_CONTENT_ERROR_NONE)
3411                 return MEDIA_CONTENT_ERROR_NONE;
3412
3413         ret = test_noti();
3414         if (ret != MEDIA_CONTENT_ERROR_NONE)
3415                 return MEDIA_CONTENT_ERROR_NONE;
3416
3417         ret = test_create_handle();
3418         if (ret != MEDIA_CONTENT_ERROR_NONE)
3419                 return MEDIA_CONTENT_ERROR_NONE;
3420
3421         ret = test_face();
3422         if (ret != MEDIA_CONTENT_ERROR_NONE)
3423                 return MEDIA_CONTENT_ERROR_NONE;
3424
3425         ret = test_face_add_del();
3426         if (ret != MEDIA_CONTENT_ERROR_NONE)
3427                 return MEDIA_CONTENT_ERROR_NONE;
3428 #endif
3429
3430         ret = test_disconnect_database();
3431         if (ret != MEDIA_CONTENT_ERROR_NONE)
3432                 return ret;
3433
3434         media_content_debug("--- content manager test end ---\n");
3435
3436         return ret;
3437 }