efl
68 строк · 1.8 Кб
1#ifdef HAVE_CONFIG_H2# include "elementary_config.h"3#endif4
5#include <Efl_Ui.h>6#include "efl_ui_suite.h"7
8static Eo *win, *spin;9
10static void11spin_setup()12{
13win = win_add();14
15spin = efl_add(EFL_UI_SPIN_CLASS, win);16efl_content_set(win, spin);17}
18
19static void20_set_flag(void *data, const Efl_Event *ev)21{
22Eina_Bool *b = data;23
24ck_assert_int_eq(*b, EINA_FALSE);25
26*b = EINA_TRUE;27ck_assert_ptr_eq(ev->info, NULL);28}
29
30EFL_START_TEST (spin_value_events)31{
32Eina_Bool changed = EINA_FALSE, min_reached = EINA_FALSE, max_reached = EINA_FALSE;33
34efl_ui_range_limits_set(spin, -3.0, 3.0);35efl_ui_range_value_set(spin, 0.0);36efl_event_callback_add(spin, EFL_UI_RANGE_EVENT_CHANGED, _set_flag, &changed);37efl_event_callback_add(spin, EFL_UI_RANGE_EVENT_MIN_REACHED, _set_flag, &min_reached);38efl_event_callback_add(spin, EFL_UI_RANGE_EVENT_MAX_REACHED, _set_flag, &max_reached);39
40efl_ui_range_value_set(spin, 1.0);41ck_assert_int_eq(changed, EINA_TRUE);42ck_assert_int_eq(min_reached, EINA_FALSE);43ck_assert_int_eq(max_reached, EINA_FALSE);44changed = EINA_FALSE;45min_reached = EINA_FALSE;46max_reached = EINA_FALSE;47
48efl_ui_range_value_set(spin, 3.0);49ck_assert_int_eq(changed, EINA_TRUE);50ck_assert_int_eq(min_reached, EINA_FALSE);51ck_assert_int_eq(max_reached, EINA_TRUE);52changed = EINA_FALSE;53min_reached = EINA_FALSE;54max_reached = EINA_FALSE;55
56efl_ui_range_value_set(spin, -3.0);57ck_assert_int_eq(changed, EINA_TRUE);58ck_assert_int_eq(min_reached, EINA_TRUE);59ck_assert_int_eq(max_reached, EINA_FALSE);60}
61EFL_END_TEST
62
63void efl_ui_test_spin(TCase *tc)64{
65tcase_add_checked_fixture(tc, fail_on_errors_setup, fail_on_errors_teardown);66tcase_add_checked_fixture(tc, spin_setup, NULL);67tcase_add_test(tc, spin_value_events);68}
69