Merge "custom eail widget implementation" into tizen
[platform/core/uifw/eail.git] / tests / eail_radio_tc1.c
1 /*
2  * Tested interface: AtkAction
3  *
4  * Tested AtkObject: EailRadio
5  *
6  * Description: Test AtkAction interface
7  *
8  * Test input: accessible object representing EailRadio
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 ACTIONS_COUNT 1
19 #define DEFAULT_ACTION 0
20 #define RADIO1_SEL 1
21 #define RADIO2_SEL 2
22 #define RADIO3_SEL 3
23 #define RADIO1 "Radio 1"
24 #define RADIO2 "Radio 2"
25 #define RADIO3 "Radio 3"
26
27 int val = 1;
28
29 INIT_TEST("EailRadioButton")
30
31 static void
32 _init_radio(Evas_Object *win)
33 {
34    Evas_Object *bg, *radio, *group, *bx, *ic;
35
36    elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
37    elm_win_autodel_set(win, EINA_TRUE);
38
39    bg = elm_bg_add(win);
40    elm_win_resize_object_add(win, bg);
41    evas_object_show(bg);
42
43    bx = elm_box_add(win);
44    elm_box_horizontal_set(bx, EINA_TRUE);
45    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
46    elm_win_resize_object_add(win, bx);
47    evas_object_show(bx);
48
49    group = radio = elm_radio_add(win);
50    elm_object_text_set(radio, RADIO1);
51    elm_radio_state_value_set(radio, 1);
52    elm_radio_value_pointer_set(radio, &val);
53    ic = elm_icon_add(win);
54    elm_icon_standard_set(ic, "home");
55    elm_object_part_content_set(radio, "icon", ic);
56    elm_box_pack_end(bx, radio);
57    evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
58    evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
59    evas_object_show(radio);
60
61    radio = elm_radio_add(win);
62    elm_object_text_set(radio, RADIO2);
63    elm_radio_state_value_set(radio, 2);
64    elm_radio_value_pointer_set(radio, &val);
65    elm_radio_group_add(radio, group);
66    ic = elm_icon_add(win);
67    elm_icon_standard_set(ic, "file");
68    elm_object_part_content_set(radio, "icon", ic);
69    elm_box_pack_end(bx, radio);
70    evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
71    evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
72    evas_object_show(radio);
73
74    radio = elm_radio_add(win);
75    elm_object_text_set(radio, RADIO3);
76    elm_radio_state_value_set(radio, 3);
77    elm_radio_value_pointer_set(radio, &val);
78    elm_radio_group_add(radio, group);
79    elm_box_pack_end(bx, radio);
80    evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
81    evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
82    evas_object_show(radio);
83
84    elm_radio_value_set(radio, RADIO2_SEL);
85 }
86
87 static void
88 _do_test(AtkObject *obj)
89 {
90    AtkStateSet *state_set = atk_object_ref_state_set(obj);
91
92    g_assert(ATK_IS_ACTION(obj));
93
94    g_assert(atk_action_get_n_actions(ATK_ACTION(obj)) == ACTIONS_COUNT);
95
96    eailu_test_action_description_all(ATK_ACTION(obj));
97
98    g_assert(atk_action_do_action(ATK_ACTION(obj), DEFAULT_ACTION));
99    state_set = atk_object_ref_state_set(obj);
100    g_assert(atk_state_set_contains_state(state_set, ATK_STATE_CHECKED));
101    g_object_unref(state_set);
102
103    g_assert((eailu_get_action_number(ATK_ACTION(obj), "typo")) == -1);
104
105    eailu_test_code_called = 1;
106 }
107
108 EAPI_MAIN int
109 elm_main(int argc, char **argv)
110 {
111    Evas_Object *win;
112
113    win = eailu_create_test_window_with_glib_init(_on_done, _on_focus_in);
114    g_assert(win);
115    _init_radio(win);
116    evas_object_show(win);
117    elm_run();
118    elm_shutdown();
119
120    return 0;
121 }
122 ELM_MAIN()
123