Merge "custom eail widget implementation" into tizen
[platform/core/uifw/eail.git] / tests / eail_table_tc1.c
1 /*
2  * Tested interface: AtkObject
3  *
4  * Tested AtkObject: EailTable
5  *
6  * Description: Test AtkObject interface
7  *
8  * Test input: accessible object representing EailTable
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 INIT_TEST("EailTable")
19
20 static void
21 _init_table(Evas_Object *win)
22 {
23    Evas_Object *bg, *label, *table, *hover, *rect, *rect2, *rect3, *bt,
24                *spinner, *slider, *check, *icon, *en, *image, *video,
25                *global_gui_list;
26    const char * const filename = "./data/whiterabbit01.jpg";
27
28    bg = elm_bg_add(win);
29    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
30    elm_win_resize_object_add(win, bg);
31    evas_object_show(bg);
32
33    table = elm_table_add(win);
34    elm_win_resize_object_add(win, table);
35    elm_table_padding_set(table, 0,0 );
36    elm_table_homogeneous_set(table, EVAS_OBJECT_TABLE_HOMOGENEOUS_NONE);
37    evas_object_size_hint_weight_set(table, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
38    evas_object_show(table);
39
40    label = elm_label_add(win);
41    elm_object_text_set(label, "label 0");
42    evas_object_show(label);
43    elm_table_pack(table, label, 0, 0, 1, 1);
44
45    rect = evas_object_rectangle_add(evas_object_evas_get(win));
46    evas_object_size_hint_min_set(rect, 25, 25);
47    evas_object_color_set(rect, 255, 0, 0, 255);
48    evas_object_show(rect);
49
50    rect2 = evas_object_rectangle_add(evas_object_evas_get(win));
51    evas_object_size_hint_min_set(rect2, 25, 25);
52    evas_object_color_set(rect2, 0, 255, 0, 255);
53    evas_object_show(rect2);
54
55    rect3 = evas_object_rectangle_add(evas_object_evas_get(win));
56    evas_object_size_hint_min_set(rect3, 25, 25);
57    evas_object_color_set(rect3, 0, 0, 255, 255);
58    evas_object_show(rect3);
59
60    bt = elm_button_add(win);
61    elm_object_text_set(bt, "Show hover");
62    evas_object_move(bt, 60, 90);
63    evas_object_resize(bt, 80, 20);
64    evas_object_show(bt);
65    elm_table_pack(table, bt, 1, 0, 1, 1);
66
67    hover = elm_hover_add(win);
68    elm_hover_parent_set(hover, win);
69    elm_hover_target_set(hover, bt);
70    elm_object_style_set(hover, "popout");
71    elm_object_part_content_set(hover, "left", rect);
72    elm_object_part_content_set(hover, "top", rect2);
73    elm_object_part_content_set(hover, "right", rect3);
74
75    elm_table_pack(table, hover, 2, 0, 1, 1);
76    evas_object_move(win, 500, 300);
77
78    spinner = elm_spinner_add(win);
79    elm_spinner_label_format_set(spinner, "%1.1f units");
80    evas_object_show(spinner);
81    elm_table_pack(table, spinner, 3, 0, 1, 1);
82
83    slider = elm_slider_add(win);
84    elm_slider_min_max_set(slider, 0, 20);
85    elm_slider_unit_format_set(slider, "%2.1f");
86    evas_object_show(slider);
87    elm_table_pack(table, slider, 4, 0, 1, 1);
88
89    check = elm_check_add(win);
90    evas_object_show(check);
91    elm_table_pack(table, check, 5, 0, 1, 1);
92
93    en = elm_entry_add(win);
94    elm_entry_autosave_set(en, EINA_FALSE);
95    elm_entry_line_wrap_set(en, ELM_WRAP_WORD);
96    evas_object_show(en);
97    elm_table_pack(table, en, 6, 0, 1, 1);
98
99    icon = elm_icon_add(win);
100    elm_icon_order_lookup_set(icon, ELM_ICON_LOOKUP_THEME_FDO);
101    elm_icon_standard_set(icon, "home");
102    evas_object_resize(icon, 32, 32);
103    evas_object_show(icon);
104    elm_table_pack(table, icon, 7, 0, 1, 1);
105
106    image = elm_image_add(win);
107    g_assert(elm_image_file_set(image, filename, NULL));
108    elm_image_no_scale_set(image, EINA_TRUE);
109    elm_image_resizable_set(image, EINA_FALSE, EINA_TRUE);
110    elm_image_smooth_set(image, EINA_FALSE);
111    elm_image_orient_set(image, ELM_IMAGE_FLIP_HORIZONTAL);
112    elm_image_aspect_fixed_set(image, EINA_TRUE);
113    elm_image_fill_outside_set(image, EINA_TRUE);
114    elm_image_editable_set(image, EINA_TRUE);
115    evas_object_size_hint_weight_set(image, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
116    evas_object_show(image);
117    elm_table_pack(table, image, 8, 0, 1, 1);
118
119    video = elm_video_add(win);
120    evas_object_size_hint_align_set(video, EVAS_HINT_FILL, EVAS_HINT_FILL);
121    elm_table_pack(table, video, 9, 0, 1, 1);
122    evas_object_show(video);
123    evas_object_resize(video, 200, 200);
124    elm_video_file_set(video, "./data/softboy.avi");
125    elm_video_play(video);
126
127    global_gui_list = elm_list_add(win);
128    elm_list_multi_select_set(global_gui_list, EINA_TRUE);
129    evas_object_size_hint_weight_set(global_gui_list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
130    evas_object_size_hint_align_set(global_gui_list, EVAS_HINT_FILL, EVAS_HINT_FILL);
131    evas_object_show(global_gui_list);
132
133    elm_list_item_append(global_gui_list, "List Label1", NULL, NULL, NULL, NULL);
134    elm_list_item_append(global_gui_list, "List Label2", NULL, NULL, NULL, NULL);
135    elm_list_item_append(global_gui_list, "List Label3", NULL, NULL, NULL, NULL);
136    elm_list_item_append(global_gui_list, "List Label4", NULL, NULL, NULL, NULL);
137
138    elm_table_pack(table, global_gui_list, 0, 1, 6, 1);
139 }
140
141 static void
142 _do_test(AtkObject *obj)
143 {
144    AtkObject *child;
145    int index = 0;
146    int i;
147
148    atk_object_set_description(obj, "test");
149    g_assert_cmpstr(atk_object_get_description(obj), ==, "test");
150
151    atk_object_set_name(obj, "test name");
152    g_assert_cmpstr(atk_object_get_name(obj), ==, "test name");
153
154    for (i = 0; i < atk_object_get_n_accessible_children(obj); ++i)
155      {
156         child = atk_object_ref_accessible_child(obj, i);
157         g_assert(child);
158
159         index = atk_object_get_index_in_parent(child);
160         g_assert(index == i);
161
162         g_object_unref(child);
163      }
164
165    g_assert(ATK_IS_COMPONENT(obj));
166    g_assert(atk_component_set_position(ATK_COMPONENT(obj), -10, -10,
167                                        ATK_XY_SCREEN) == FALSE);
168    g_assert(atk_component_set_size(ATK_COMPONENT(obj), -5, -5) == FALSE);
169
170    eailu_test_code_called = 1;
171 }
172
173 EAPI_MAIN int
174 elm_main(int argc, char **argv)
175 {
176    Evas_Object *win;
177
178    win = eailu_create_test_window_with_glib_init(_on_done, _on_focus_in);
179    g_assert(win);
180    _init_table(win);
181    evas_object_show(win);
182    elm_run();
183    elm_shutdown();
184
185    return 0;
186 }
187 ELM_MAIN()