Merge "custom eail widget implementation" into tizen
[platform/core/uifw/eail.git] / tests / eail_button_tc2.c
1 /*
2  * Tested interface: AtkAction
3  *
4  * Tested AtkObject: EailButton
5  *
6  * Description: Test AtkAction interface
7  *
8  * Test input: accessible object representing EailButton
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 DEBUG
19
20 #define ACTIONS_NUMBER 3
21 #define BUTTON_TEXT1   "Button1"
22 #define BUTTON_TEXT2   "button2"
23
24 static int action_test_passed;
25
26 INIT_TEST("EailButton")
27
28 static void
29 _on_click(void *data, Evas_Object *obj, void *event_info)
30 {
31    _printf("button click\n");
32    ++action_test_passed;
33 }
34
35 static void
36 _on_press(void *data, Evas_Object *obj, void *event_info)
37 {
38    _printf("button press\n");
39    ++action_test_passed;
40 }
41
42 static void
43 _on_release(void *data, Evas_Object *obj, void *event_info)
44 {
45    _printf("button release\n");
46    ++action_test_passed;
47 }
48
49 static void
50 _do_test(AtkObject *obj)
51 {
52    g_assert(ATK_IS_ACTION(obj));
53
54    g_assert(ACTIONS_NUMBER == atk_action_get_n_actions(ATK_ACTION(obj)));
55    eailu_test_action_activate(ATK_ACTION(obj), "click");
56    eailu_test_action_activate(ATK_ACTION(obj), "press");
57    eailu_test_action_activate(ATK_ACTION(obj), "release");
58    g_assert((eailu_get_action_number(ATK_ACTION(obj), "typo")) == -1);
59    eailu_test_action_description_all(ATK_ACTION(obj));
60
61    g_assert(action_test_passed == 3);
62
63    eailu_test_code_called = 1;
64 }
65
66 static void
67 _init_button(Evas_Object *win)
68 {
69    Evas_Object *bg, *icon, *button1;
70
71    bg = elm_bg_add(win);
72    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
73    elm_win_resize_object_add(win, bg);
74    evas_object_show(bg);
75
76    icon = elm_icon_add(win);
77    elm_icon_order_lookup_set(icon, ELM_ICON_LOOKUP_THEME_FDO);
78    elm_icon_standard_set(icon, "home");
79    evas_object_show(icon);
80
81    button1 = elm_button_add(win);
82    elm_object_text_set(button1, BUTTON_TEXT1);
83    evas_object_smart_callback_add(button1, "clicked", _on_click, "button1");
84    evas_object_smart_callback_add(button1, "pressed", _on_press, "button1");
85    evas_object_smart_callback_add(button1, "unpressed", _on_release, "button1");
86
87    evas_object_resize(button1, 140, 60);
88    evas_object_move(button1, 50, 20);
89    evas_object_show(button1);
90 }
91
92 EAPI_MAIN int
93 elm_main(int argc, char **argv)
94 {
95    Evas_Object *win;
96
97    win = eailu_create_test_window_with_glib_init(_on_done, _on_focus_in);
98    g_assert(win);
99    _init_button(win);
100    evas_object_show(win);
101    elm_run();
102    elm_shutdown();
103
104    return 0;
105 }
106 ELM_MAIN()