Merge "custom eail widget implementation" into tizen
[platform/core/uifw/eail.git] / tests / eail_spinner_tc1.c
1 /*
2  * Tested interface: AtkObject
3  *
4  * Tested AtkObject: EailSpinner
5  *
6  * Description: Test AtkObject interface
7  *
8  * Test input: accessible object representing EailSpinner
9  *
10  * Expected test result: test should return 0 (success)
11  */
12
13 #include <Elementary.h>
14 #include <atk/atk.h>
15
16 #define DEBUG 1
17
18 #include "eail_test_utils.h"
19
20 INIT_TEST("EailSpinner")
21
22 struct
23 {
24    double min, max, set, step;
25 }
26 static sp[4] = { { 0,   100, 80,  1   },
27                  { 0,   100, 2.2, 1   },
28                  { -50, 250, 100, 1.5 },
29                  { 0,   100, 13,  1   } };
30
31 static void
32 _init_spinner(Evas_Object *win)
33 {
34    Evas_Object *bg, *bx, *sp1, *sp2, *sp3, *sp4;
35
36    bg = elm_bg_add(win);
37    elm_win_resize_object_add(win, bg);
38    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
39    evas_object_show(bg);
40
41    bx = elm_box_add(win);
42    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
43    elm_win_resize_object_add(win, bx);
44    evas_object_show(bx);
45
46    // default
47    sp1 = elm_spinner_add(win);
48    elm_spinner_value_set(sp1, sp[0].set);
49    evas_object_size_hint_align_set(sp1, EVAS_HINT_FILL, 0.5);
50    evas_object_size_hint_weight_set(sp1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
51    elm_box_pack_end(bx, sp1);
52    evas_object_show(sp1);
53
54    // format
55    sp2 = elm_spinner_add(win);
56    elm_spinner_label_format_set(sp2, "Percentage %%%1.2f something");
57    elm_spinner_value_set(sp2, sp[1].set);
58    evas_object_size_hint_align_set(sp2, EVAS_HINT_FILL, 0.5);
59    evas_object_size_hint_weight_set(sp2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
60    elm_box_pack_end(bx, sp2);
61    evas_object_show(sp2);
62
63    // min max, step and wrap
64    sp3 = elm_spinner_add(win);
65    elm_spinner_label_format_set(sp3, "%1.1f units");
66    elm_spinner_step_set(sp3, sp[2].step);
67    elm_spinner_wrap_set(sp3, EINA_TRUE);
68    elm_spinner_min_max_set(sp3, sp[2].min, sp[2].max);
69    elm_spinner_value_set(sp3, sp[2].set);
70    evas_object_size_hint_align_set(sp3, EVAS_HINT_FILL, 0.5);
71    evas_object_size_hint_weight_set(sp3, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
72    elm_box_pack_end(bx, sp3);
73    evas_object_show(sp3);
74
75    sp4 = elm_spinner_add(win);
76    elm_spinner_value_set(sp4, sp[3].set);
77    evas_object_size_hint_align_set(sp4, EVAS_HINT_FILL, 0.5);
78    evas_object_size_hint_weight_set(sp4, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
79    elm_box_pack_end(bx, sp4);
80    evas_object_show(sp4);
81 }
82
83 static void
84 _do_test(AtkObject *obj)
85 {
86    const char *type_name = g_type_name(G_TYPE_FROM_INSTANCE(obj));
87
88    g_assert(ATK_IS_OBJECT(obj));
89    atk_object_set_description(obj, "test");
90    g_assert_cmpstr(atk_object_get_description(obj), ==, "test");
91
92    atk_object_set_name(obj, "test name");
93    g_assert_cmpstr(atk_object_get_name(obj), ==, "test name");
94
95    g_assert_cmpstr(type_name, ==, "EailSpinner");
96
97    g_assert(atk_object_get_role(obj) == ATK_ROLE_SPIN_BUTTON);
98
99    eailu_test_code_called = 1;
100 }
101
102 EAPI_MAIN int
103 elm_main(int argc, char **argv)
104 {
105    Evas_Object *win;
106
107    win = eailu_create_test_window_with_glib_init(_on_done, _on_focus_in);
108    g_assert(win);
109    _init_spinner(win);
110    evas_object_show(win);
111    elm_run();
112    elm_shutdown();
113
114    return 0;
115 }
116 ELM_MAIN()