Merge "custom eail widget implementation" into tizen
[platform/core/uifw/eail.git] / tests / eail_video_tc3.c
1 /*
2  * Tested interface: AtkStreamableContent
3  *
4  * Tested AtkObject: EailVideo
5  *
6  * Description: Test AtkStreamableContent interface
7  *
8  * Test input: accessible object representing EailVideo
9  *
10  * Expected test result: test should return 0 (success)
11  */
12
13 #include <Elementary.h>
14 #include <atk/atk.h>
15
16 #include "eail_test_utils.h"
17
18 #define VIDEO_FILE "./data/softboy.avi"
19
20 INIT_TEST("EailVideo")
21
22 static void
23 _do_test(AtkObject *object)
24 {
25    AtkStreamableContent *streamable;
26    const gchar *mime, *uri;
27    int n_mimes;
28    GIOChannel *gio;
29
30    /*AtkStreamableContent test*/
31    g_assert(ATK_IS_STREAMABLE_CONTENT(object));
32    streamable = ATK_STREAMABLE_CONTENT(object);
33    n_mimes = atk_streamable_content_get_n_mime_types(streamable);
34    g_assert(n_mimes == 1);
35    mime = atk_streamable_content_get_mime_type(streamable, 0);
36    g_assert(!strcmp(mime, "video/x-msvideo"));
37    uri = atk_streamable_content_get_uri(streamable, "video/x-msvideo");
38    _printf("file uri %s\n", uri);
39    char *res = g_strrstr(uri, "softboy.avi");
40    g_assert(res);
41    gio = NULL;
42    gio = atk_streamable_content_get_stream(streamable, "video/x-msvideo");
43    g_assert(gio);
44    if (gio)
45      {
46         g_io_channel_shutdown(gio, TRUE, NULL);
47         g_io_channel_unref(gio);
48      }
49
50    eailu_test_code_called = 1;
51 }
52
53 static void
54 _playback_started(void *data, Evas_Object *obj, void *ev)
55 {
56    _on_focus_in(NULL, data, NULL);
57 }
58
59 static void
60 _init_video(Evas_Object *win)
61 {
62    Evas_Object *bg, *video, *emotion;
63
64    bg = elm_bg_add(win);
65    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
66    elm_win_resize_object_add(win, bg);
67    evas_object_show(bg);
68
69    video = elm_video_add(win);
70    evas_object_size_hint_weight_set(video, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
71    elm_win_resize_object_add(win, video);
72    evas_object_show(video);
73
74    elm_video_file_set(video, VIDEO_FILE);
75    elm_video_play(video);
76    emotion = elm_video_emotion_get(video);
77    evas_object_smart_callback_add(emotion,
78                                   "playback_started",
79                                   _playback_started,
80                                   win);
81
82    evas_object_resize(win, 800, 800);
83    evas_object_show(win);
84 }
85
86 EAPI_MAIN int
87 elm_main(int argc, char **argv)
88 {
89    Evas_Object *win;
90
91    win = eailu_create_test_window_with_glib_init(0,0);
92    _init_video(win);
93
94    elm_run();
95    elm_shutdown();
96
97    return 0;
98 }
99 ELM_MAIN()