Merge "custom eail widget implementation" into tizen
[platform/core/uifw/eail.git] / tests / eail_hoversel_tc1.c
1 /*
2  * Tested interface: AtkObject
3  *
4  * Tested AtkObject: EailHoversel
5  *
6  * Description: Test AtkObject 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    const char *type_name = g_type_name(G_TYPE_FROM_INSTANCE(obj));
66    AtkObject *child;
67    char *item_names[] = {ITEM1_NAME, ITEM2_NAME, ITEM3_NAME};
68    int n;
69
70    g_assert(ATK_IS_OBJECT(obj));
71    g_assert_cmpstr(type_name, ==, "EailHoversel");
72    atk_object_set_description(obj, "test");
73    g_assert_cmpstr(atk_object_get_description(obj), ==, "test");
74
75    atk_object_set_name(obj, "test name");
76    g_assert_cmpstr(atk_object_get_name(obj), ==, "test name");
77
78    g_assert(atk_object_get_n_accessible_children(obj) == ITEMS_COUNT);
79
80    n = ITEMS_COUNT;
81    while (n--)
82      {
83         child = eailu_find_child_with_name(obj, item_names[n]);
84         g_assert(child);
85         g_object_unref(child);
86      }
87
88    eailu_test_code_called = 1;
89 }
90
91 EAPI_MAIN int
92 elm_main(int argc, char **argv)
93 {
94    Evas_Object *win = NULL;
95
96    win = eailu_create_test_window_with_glib_init(_on_done, _on_focus_in);
97    g_assert(win);
98    _init_hoversel(win);
99    evas_object_show(win);
100    elm_run();
101    elm_shutdown();
102
103    return 0;
104 }
105 ELM_MAIN()