2 * Tested interface: AtkValue
4 * Tested AtkObject: EailSpinner
6 * Description: Test AtkValue interface
8 * Test input: accessible object representing EailSpinner
10 * Expected test result: test should return 0 (success)
13 #include <Elementary.h>
16 #include "eail_test_utils.h"
18 INIT_TEST("EailSpinner")
22 double min, max, set, step;
24 static sp[4] = { { 0, 100, 80, 1 },
26 { -50, 250, 100, 1.5 },
30 _changed_cb(void *data, Evas_Object *obj, void *event_info)
32 _printf("Value changed to %0.f\n", elm_spinner_value_get(obj));
36 _init_spinner(Evas_Object *win)
38 Evas_Object *bg, *bx, *sp1, *sp2, *sp3, *sp4;
41 elm_win_resize_object_add(win, bg);
42 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
45 bx = elm_box_add(win);
46 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
47 elm_win_resize_object_add(win, bx);
51 sp1 = elm_spinner_add(win);
52 elm_spinner_value_set(sp1, sp[0].set);
53 evas_object_size_hint_align_set(sp1, EVAS_HINT_FILL, 0.5);
54 evas_object_size_hint_weight_set(sp1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
55 elm_box_pack_end(bx, sp1);
56 evas_object_show(sp1);
59 sp2 = elm_spinner_add(win);
60 elm_spinner_label_format_set(sp2, "Percentage %%%1.2f something");
61 elm_spinner_value_set(sp2, sp[1].set);
62 evas_object_size_hint_align_set(sp2, EVAS_HINT_FILL, 0.5);
63 evas_object_size_hint_weight_set(sp2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
64 elm_box_pack_end(bx, sp2);
65 evas_object_show(sp2);
67 // min max, step and wrap
68 sp3 = elm_spinner_add(win);
69 elm_spinner_label_format_set(sp3, "%1.1f units");
70 elm_spinner_step_set(sp3, sp[2].step);
71 elm_spinner_wrap_set(sp3, EINA_TRUE);
72 elm_spinner_min_max_set(sp3, sp[2].min, sp[2].max);
73 elm_spinner_value_set(sp3, sp[2].set);
74 evas_object_size_hint_align_set(sp3, EVAS_HINT_FILL, 0.5);
75 evas_object_size_hint_weight_set(sp3, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
76 elm_box_pack_end(bx, sp3);
77 evas_object_show(sp3);
79 sp4 = elm_spinner_add(win);
80 elm_spinner_value_set(sp4, sp[3].set);
81 evas_object_size_hint_align_set(sp4, EVAS_HINT_FILL, 0.5);
82 evas_object_size_hint_weight_set(sp4, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
83 elm_box_pack_end(bx, sp4);
84 evas_object_show(sp4);
85 evas_object_smart_callback_add(sp4, "changed", _changed_cb, NULL);
87 eailu_test_code_called = 1;
91 _do_test(AtkObject *obj)
93 double minimum, maximum, current, minimum_increment;
94 const double val_test_set = 33.3;
96 GValue value = G_VALUE_INIT;
97 g_value_init(&value, G_TYPE_DOUBLE);
99 atk_value_get_minimum_value(ATK_VALUE(obj), &value);
100 minimum = g_value_get_double(&value);
102 atk_value_get_maximum_value(ATK_VALUE(obj), &value);
103 maximum = g_value_get_double(&value);
105 atk_value_get_current_value(ATK_VALUE(obj), &value);
106 current = g_value_get_double(&value);
108 atk_value_get_minimum_increment(ATK_VALUE(obj), &value);
109 minimum_increment = g_value_get_double(&value);
111 if (float_equal(sp[0].set, current) &&
112 float_equal(sp[0].min, minimum) &&
113 float_equal(sp[0].max, maximum) &&
114 float_equal(sp[0].step, minimum_increment))
116 _printf("spinner 1: initialized values - correctly\n");
118 else if (float_equal(sp[1].set, current) &&
119 float_equal(sp[1].min, minimum) &&
120 float_equal(sp[1].max, maximum) &&
121 float_equal(sp[1].step, minimum_increment))
123 _printf("spinner 2: initialized values - correctly\n");
125 else if (float_equal(sp[2].set, current) &&
126 float_equal(sp[2].min, minimum) &&
127 float_equal(sp[2].max, maximum) &&
128 float_equal(sp[2].step, minimum_increment))
130 _printf("spinner 3: initialized values - correctly\n");
132 else if (float_equal(sp[3].set, current) &&
133 float_equal(sp[3].min, minimum) &&
134 float_equal(sp[3].max, maximum) &&
135 float_equal(sp[3].step, minimum_increment))
137 _printf("spinner 4: initialized values - correctly\n");
141 _printf("initialized values are different from returned by ATK");
145 g_value_set_double(&value, val_test_set);
146 g_assert(atk_value_set_current_value(ATK_VALUE(obj), &value));
147 _printf("atk_value_set_current_value: %0.2f\n", val_test_set);
149 atk_value_get_current_value(ATK_VALUE(obj), &value);
150 current = g_value_get_double(&value);
151 _printf("atk_value_get_current_value: %0.2f\n", current);
153 g_assert(float_equal(val_test_set, current));
155 g_value_set_double(&value, minimum - 1);
156 g_assert(!atk_value_set_current_value(ATK_VALUE(obj), &value));
158 g_value_set_double(&value, maximum + 1);
159 g_assert(!atk_value_set_current_value(ATK_VALUE(obj), &value));
163 elm_main(int argc, char **argv)
167 win = eailu_create_test_window_with_glib_init(_on_done, _on_focus_in);
170 evas_object_show(win);