Merge "custom eail widget implementation" into tizen
[platform/core/uifw/eail.git] / tests / eail_segment_control_tc1.c
1 /*
2  * Tested interface: AtkObject
3  *
4  * Tested AtkObject: EailSegmentControl
5  *
6  * Description: Test AtkObject interface
7  *
8  * Test input: accessible object representing EailSegmentControl
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 EAIL_TEST_SELECTED_INDEX 3
19
20 INIT_TEST("EailSegmentControl")
21
22 static void
23 _do_test(AtkObject *obj)
24 {
25    int child_count = 0, i = 0;
26
27    _printf("Testing SegmentControl instance....\n");
28    child_count = atk_object_get_n_accessible_children(obj);
29    g_assert(7 == child_count);
30    atk_object_set_description(obj, "test");
31    g_assert_cmpstr(atk_object_get_description(obj), ==, "test");
32
33    atk_object_set_name(obj, "test name");
34    g_assert_cmpstr(atk_object_get_name(obj), ==, "test name");
35
36
37    /* testing child refs*/
38    for (i = 0; i < 7; ++i)
39      {
40         AtkObject *child = atk_object_ref_accessible_child(obj, i);
41         g_assert(child);
42
43         g_object_unref(child);
44      }
45
46    /* NOTE: segment control widget does not support focus */
47    eailu_test_atk_focus(obj, FALSE);
48
49    _printf("DONE. All SegmentControl tests passed successfully \n");
50
51    eailu_test_code_called = 1;
52 }
53
54 static void
55 _init_diskselector(Evas_Object *win)
56 {
57    Evas_Object *sgm_ctrl = NULL, *vbox;
58    Elm_Object_Item *obj_item = NULL;
59    unsigned int i;
60    static const char *lbl[] =
61      {
62         "Sunday",
63         "Monday",
64         "Tuesday",
65         "Wednesday",
66         "Thursday",
67         "Friday",
68         "Saturday"
69      };
70
71    vbox = elm_box_add(win);
72    elm_win_resize_object_add(win, vbox);
73    evas_object_size_hint_weight_set(vbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
74    evas_object_show(vbox);
75
76    /* default */
77    sgm_ctrl = elm_segment_control_add(win);
78    evas_object_size_hint_weight_set
79        (sgm_ctrl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
80    evas_object_size_hint_align_set
81        (sgm_ctrl, EVAS_HINT_FILL, EVAS_HINT_FILL);
82
83    elm_box_pack_end(vbox, sgm_ctrl);
84
85    for (i = 0; i < sizeof(lbl) / sizeof(lbl[0]); i++)
86      {
87         obj_item = elm_segment_control_item_add(sgm_ctrl, NULL , lbl[i]);
88
89         /* marking element as selected */
90         if (EAIL_TEST_SELECTED_INDEX == i)
91           elm_segment_control_item_selected_set(obj_item, EINA_TRUE);
92      }
93
94
95    evas_object_show(sgm_ctrl);
96    evas_object_resize(win, 800, 200);
97 }
98
99 EAPI_MAIN int
100 elm_main(int argc, char **argv)
101 {
102    Evas_Object *win;
103
104    win = eailu_create_test_window_with_glib_init(_on_done, _on_focus_in);
105    _init_diskselector(win);
106
107    evas_object_show(win);
108
109    elm_run();
110    elm_shutdown();
111
112    /* exit code */
113    return 0;
114 }
115 ELM_MAIN()