Merge "custom eail widget implementation" into tizen
[platform/core/uifw/eail.git] / tests / eail_toolbar_tc1.c
1 /*
2  * Tested interface: AtkObject
3  *
4  * Tested AtkObject: EailToolbar
5  *
6  * Description: Test AtkObject interface
7  *
8  * Test input: accessible object representing EailToolbar
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_FIRST_TOOLBAR_ITEM_NAME "Print"
19 #define EAIL_TEST_SUBITEM_TYPE "EailItem"
20
21 INIT_TEST("EailToolbar")
22
23 static void
24 _do_test(AtkObject *obj)
25 {
26    int child_amount = 0;
27    AtkObject *nested_obj;
28
29    g_assert(eailu_is_object_with_role(obj, ATK_ROLE_TOOL_BAR));
30    child_amount = atk_object_get_n_accessible_children(obj);
31    g_assert(3 == child_amount);
32    atk_object_set_description(obj, "test");
33    g_assert_cmpstr(atk_object_get_description(obj), ==, "test");
34
35    atk_object_set_name(obj, "test name");
36    g_assert_cmpstr(atk_object_get_name(obj), ==, "test name");
37
38    /* test if toolbar child is EailToolbarItem type*/
39    nested_obj = atk_object_ref_accessible_child(obj, 0);
40    g_assert(eailu_is_object_with_type(nested_obj, EAIL_TEST_SUBITEM_TYPE));
41    g_assert(
42           eailu_is_object_with_name(nested_obj, EAIL_FIRST_TOOLBAR_ITEM_NAME));
43
44    g_assert(eailu_is_object_with_role(nested_obj, ATK_ROLE_LIST_ITEM));
45
46    eailu_test_atk_focus(obj, TRUE);
47    eailu_test_action_activate(ATK_ACTION(nested_obj), "click");
48
49    eailu_test_code_called = 1;
50 }
51
52 static void
53 _init_toolbar(Evas_Object *win)
54 {
55    Evas_Object *toolbar, *box, *menu;
56    Elm_Object_Item *toolbar_item;
57
58    box = elm_box_add(win);
59    evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
60    elm_win_resize_object_add(win, box);
61    evas_object_show(box);
62
63    toolbar = elm_toolbar_add(win);
64    elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_SCROLL);
65    evas_object_size_hint_weight_set(toolbar, 0.0, 0.0);
66    evas_object_size_hint_align_set(toolbar, EVAS_HINT_FILL, 0.0);
67    evas_object_show(toolbar);
68
69    elm_toolbar_item_append
70          (toolbar, "document-print", EAIL_FIRST_TOOLBAR_ITEM_NAME, NULL, NULL);
71    elm_toolbar_item_append(toolbar, "folder-new", "New Folder", NULL, NULL);
72    toolbar_item = elm_toolbar_item_append
73                   (toolbar, NULL, "Nested menu", NULL, NULL);
74    elm_toolbar_item_menu_set(toolbar_item, EINA_TRUE);
75    menu = elm_toolbar_item_menu_get(toolbar_item);
76
77    elm_menu_item_add
78                   (menu, NULL, "emptytrash", "first menu item", NULL, NULL);
79    elm_menu_item_add
80                (menu, NULL, "trashcan_full", "second menu item", NULL, NULL);
81
82    elm_box_pack_end(box, toolbar);
83 }
84
85 EAPI_MAIN int
86 elm_main(int argc, char **argv)
87 {
88    Evas_Object *win;
89
90    win = eailu_create_test_window_with_glib_init(_on_done, _on_focus_in);
91    _init_toolbar(win);
92
93    evas_object_show(win);
94
95    elm_run();
96    elm_shutdown();
97
98    /* exit code */
99    return 0;
100 }
101 ELM_MAIN()