Merge "custom eail widget implementation" into tizen
[platform/core/uifw/eail.git] / tests / eail_slider_tc2.c
1 /*
2  * Tested interface: AtkValue
3  *
4  * Tested AtkObject: EailSlider
5  *
6  * Description: Test AtkValue interface
7  *
8  * Test input: accessible object representing EailSlider
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 INIT_TEST("EailSlider")
19
20 const char * const slider_name = "slider-name";
21 const double slider_min = -50;
22 const double slider_max = 50;
23 const double slider_set = 20;
24
25 static void
26 _init_slider(Evas_Object *win)
27 {
28    Evas_Object *bg, *bx, *sl;
29
30    bg = elm_bg_add(win);
31    elm_win_resize_object_add(win, bg);
32    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
33    evas_object_show(bg);
34
35    bx = elm_box_add(win);
36    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
37    elm_win_resize_object_add(win, bx);
38    evas_object_show(bx);
39
40    sl = elm_slider_add(win);
41    elm_object_text_set(sl, slider_name);
42    elm_slider_min_max_set(sl, slider_min, slider_max);
43    elm_slider_value_set(sl, slider_set);
44    elm_slider_unit_format_set(sl, "%2.1f");
45    elm_slider_span_size_set(sl, 120);
46    evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
47    evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
48    elm_box_pack_end(bx, sl);
49    evas_object_show(sl);
50 }
51
52 static void
53 _do_test(AtkObject *obj)
54 {
55    double minimum, maximum, current, minimum_increment;
56    const double val_test_set = 12.3;
57
58    g_assert(ATK_IS_VALUE(obj));
59
60    GValue value = G_VALUE_INIT;
61    g_value_init(&value, G_TYPE_DOUBLE);
62
63    atk_value_get_minimum_value(ATK_VALUE(obj), &value);
64    minimum = g_value_get_double(&value);
65    g_assert(float_equal(slider_min,minimum));
66
67    atk_value_get_maximum_value(ATK_VALUE(obj), &value);
68    maximum = g_value_get_double(&value);
69    g_assert(float_equal(slider_max,maximum));
70
71    atk_value_get_current_value(ATK_VALUE(obj), &value);
72    current = g_value_get_double(&value);
73    g_assert(float_equal(slider_set,current));
74
75    atk_value_get_minimum_increment(ATK_VALUE(obj), &value);
76    minimum_increment = g_value_get_double(&value);
77    g_assert(float_equal(G_MINDOUBLE,minimum_increment));
78
79    g_value_set_double(&value, val_test_set);
80    g_assert(atk_value_set_current_value(ATK_VALUE(obj), &value));
81
82    atk_value_get_current_value(ATK_VALUE(obj), &value);
83    current = g_value_get_double(&value);
84
85    g_assert(float_equal(val_test_set,current));
86
87    g_value_set_double(&value, minimum - 1);
88    g_assert(!atk_value_set_current_value(ATK_VALUE(obj), &value));
89
90    g_value_set_double(&value, maximum + 1);
91    g_assert(!atk_value_set_current_value(ATK_VALUE(obj), &value));
92
93    atk_value_get_minimum_increment(ATK_VALUE(obj), &value);
94    g_assert(float_equal(g_value_get_double(&value),0));
95
96    eailu_test_code_called = 1;
97 }
98
99 EAPI_MAIN int
100 elm_main(int argc, char **argv)
101 {
102    Evas_Object *win;
103
104    win = eailu_create_test_window_with_glib_init(_on_done, _on_focus_in);
105    g_assert(win);
106    _init_slider(win);
107    evas_object_show(win);
108    elm_run();
109    elm_shutdown();
110
111    return 0;
112 }
113 ELM_MAIN()