Merge "custom eail widget implementation" into tizen
[platform/core/uifw/eail.git] / tests / eail_fileselector_tc1.c
1 /*
2  * Tested interface: AtkObject
3  *
4  * Tested AtkObject: EailFileselector
5  *
6  * Description: Test AtkObject interface
7  *
8  * Test input: accessible object representing EailFileselector
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 FILESELECTOR_NAME "fileselector name"
19
20 INIT_TEST("EailFileselector")
21
22 static void
23 _test_atk_focus(AtkObject *obj)
24 {
25    AtkStateSet *state_set = NULL;
26    state_set = atk_object_ref_state_set(obj);
27
28    g_assert(atk_state_set_contains_state(state_set, ATK_STATE_FOCUSABLE));
29    /* in fileselector focus always gets to one of internal children after
30     * marking as focused*/
31    g_assert(atk_component_grab_focus(ATK_COMPONENT(obj)));
32    g_assert(!atk_state_set_contains_state(state_set, ATK_STATE_FOCUSED));
33 }
34
35 static void
36 _do_test(AtkObject *obj)
37 {
38    int child_amount = 0;
39
40    g_assert(ATK_IS_OBJECT(obj));
41
42    atk_object_set_name(obj, FILESELECTOR_NAME"test");
43    g_assert_cmpstr(atk_object_get_name(obj), ==, FILESELECTOR_NAME"test");
44
45    atk_object_set_name(obj, "test name");
46    g_assert_cmpstr(atk_object_get_name(obj), ==, "test name");
47
48    g_assert(eailu_is_object_with_role(obj, ATK_ROLE_FILE_CHOOSER));
49    child_amount = atk_object_get_n_accessible_children(obj);
50
51    /*
52     * up button, home button, list, ok button, cancel button, entry and list -
53     * overall 7 child objects
54     */
55    g_assert(7 == child_amount);
56
57    _test_atk_focus(obj);
58
59    eailu_test_code_called = 1;
60 }
61
62 static void
63 _init_fileselector(Evas_Object *win)
64 {
65    Evas_Object *fileselector, *box;
66
67    box = elm_box_add(win);
68    evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
69    elm_win_resize_object_add(win, box);
70    evas_object_show(box);
71
72    fileselector = elm_fileselector_add(win);
73    elm_fileselector_path_set(fileselector, "/tmp");
74    elm_fileselector_expandable_set(fileselector, EINA_FALSE);
75
76    evas_object_size_hint_weight_set(fileselector, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
77    evas_object_size_hint_align_set(fileselector, EVAS_HINT_FILL, EVAS_HINT_FILL);
78    evas_object_show(fileselector);
79
80    elm_box_pack_end(box, fileselector);
81 }
82
83 EAPI_MAIN int
84 elm_main(int argc, char **argv)
85 {
86    Evas_Object *win;
87
88    win = eailu_create_test_window_with_glib_init(_on_done, _on_focus_in);
89    _init_fileselector(win);
90
91    evas_object_show(win);
92
93    elm_run();
94    elm_shutdown();
95
96    /* exit code */
97    return 0;
98 }
99 ELM_MAIN()