Merge "custom eail widget implementation" into tizen
[platform/core/uifw/eail.git] / tests / eail_hoversel_tc2.c
1 /*
2  * Tested interface: AtkAction
3  *
4  * Tested AtkObject: EailHoversel
5  *
6  * Description: Test AtkAction interface
7  *
8  * Test input: accessible object representing EailHoversel
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 2
19 #define ACTION_SHRINK 0
20 #define ACTION_EXPAND 1
21 #define ITEMS_COUNT 3
22 #define ITEM1_NAME "Print items"
23 #define ITEM2_NAME "Option 2"
24 #define ITEM3_NAME "Clear all items"
25
26 INIT_TEST("EailHoversel")
27
28 static void
29 _init_hoversel(Evas_Object *win)
30 {
31    Evas_Object *bg, *rect, *hoversel;
32
33    bg = elm_bg_add(win);
34    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
35    elm_win_resize_object_add(win, bg);
36    evas_object_show(bg);
37
38    rect = evas_object_rectangle_add(evas_object_evas_get(win));
39    evas_object_color_set(rect, 255, 0, 0, 255);
40    evas_object_show(rect);
41
42    hoversel = elm_hoversel_add(win);
43    elm_hoversel_hover_parent_set(hoversel, win);
44    elm_hoversel_horizontal_set(hoversel, EINA_FALSE);
45    elm_object_text_set(hoversel, "Hoversel");
46    elm_object_part_content_set(hoversel, "icon", rect);
47
48    elm_hoversel_item_add(hoversel, ITEM1_NAME, NULL, ELM_ICON_NONE,
49                          NULL, NULL);
50    elm_hoversel_item_add(hoversel, ITEM2_NAME, "home", ELM_ICON_STANDARD, NULL,
51                          NULL);
52    elm_hoversel_item_add(hoversel, ITEM3_NAME, "close",
53                          ELM_ICON_STANDARD, NULL, NULL);
54
55    evas_object_resize(hoversel, 180, 30);
56    evas_object_resize(win, 200, 180);
57    evas_object_move(hoversel, 10, 10);
58    evas_object_show(hoversel);
59    elm_hoversel_hover_begin(hoversel);
60 }
61
62 static void
63 _do_test(AtkObject *obj)
64 {
65    AtkStateSet *state_set;
66
67    g_assert(ATK_IS_ACTION(obj));
68
69    g_assert(atk_action_get_n_actions(ATK_ACTION(obj)) == ACTIONS_COUNT);
70
71    eailu_test_action_description_all(ATK_ACTION(obj));
72
73    g_assert(atk_action_do_action(ATK_ACTION(obj), ACTION_SHRINK));
74    state_set = atk_object_ref_state_set(obj);
75    atk_state_set_contains_state(state_set, ATK_STATE_DEFAULT);
76    g_object_unref(state_set);
77
78    g_assert(atk_action_do_action(ATK_ACTION(obj), ACTION_EXPAND));
79    state_set = atk_object_ref_state_set(obj);
80    g_assert(atk_state_set_contains_state(state_set, ATK_STATE_EXPANDED));
81    g_assert(atk_state_set_contains_state(state_set, ATK_STATE_VERTICAL));
82    g_object_unref(state_set);
83
84    g_assert((eailu_get_action_number(ATK_ACTION(obj), "typo")) == -1);
85
86    eailu_test_code_called = 1;
87 }
88
89 EAPI_MAIN int
90 elm_main(int argc, char **argv)
91 {
92    Evas_Object *win = NULL;
93
94    win = eailu_create_test_window_with_glib_init(_on_done, _on_focus_in);
95    g_assert(win);
96    _init_hoversel(win);
97    evas_object_show(win);
98    elm_run();
99    elm_shutdown();
100
101    return 0;
102 }
103 ELM_MAIN()