efl
188 строк · 5.3 Кб
1#ifdef HAVE_CONFIG_H2# include "elementary_config.h"3#endif4
5#define EFL_ACCESS_OBJECT_BETA6#include <Elementary.h>7#include "elm_suite.h"8
9EFL_START_TEST(elm_slider_legacy_type_check)10{
11Evas_Object *win, *slider;12const char *type;13
14win = win_add(NULL, "slider", ELM_WIN_BASIC);15
16slider = elm_slider_add(win);17
18type = elm_object_widget_type_get(slider);19ck_assert(type != NULL);20ck_assert(!strcmp(type, "Elm_Slider"));21
22type = evas_object_type_get(slider);23ck_assert(type != NULL);24ck_assert(!strcmp(type, "elm_slider"));25
26}
27EFL_END_TEST
28
29EFL_START_TEST(elm_atspi_role_get)30{
31Evas_Object *win, *slider;32Efl_Access_Role role;33
34win = win_add(NULL, "slider", ELM_WIN_BASIC);35
36slider = elm_slider_add(win);37role = efl_access_object_role_get(slider);38
39ck_assert(role == EFL_ACCESS_ROLE_SLIDER);40
41}
42EFL_END_TEST
43
44EFL_START_TEST(elm_slider_in_scroller)45{
46Evas_Object *win, *slider, *box, *scroller, *fslider = NULL;47Evas *e;48
49win = win_add(NULL, "slider", ELM_WIN_BASIC);50e = evas_object_evas_get(win);51evas_object_size_hint_weight_set(win, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);52
53scroller = elm_scroller_add(win);54evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);55evas_object_show(scroller);56elm_win_resize_object_add(win, scroller);57
58box = elm_box_add(scroller);59evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);60elm_object_content_set(scroller, box);61evas_object_show(box);62
63for (int i = 0; i < 20; ++i)64{65slider = elm_slider_add(win);66evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);67elm_slider_min_max_set(slider, 0, 100);68evas_object_show(slider);69elm_box_pack_end(box, slider);70if (i == 0)71fslider = slider;72}73elm_scroller_page_bring_in(scroller, 0, 0);74evas_object_resize(win, 100, 100);75evas_object_show(win);76
77get_me_to_those_events(scroller);78
79int x, y, w, h;80
81ck_assert_int_eq(elm_object_scroll_hold_get(scroller), 0);82evas_event_feed_mouse_in(e, 0, NULL);83evas_object_geometry_get(fslider, &x, &y, &w, &h);84evas_event_feed_mouse_move(e, x+w/2, y+h/2, 0, NULL);85//ensure that the scroller is on hold86ck_assert_int_eq(elm_object_scroll_hold_get(scroller), 1);87evas_event_feed_mouse_move(e, x+w+w/2, y+h+h/2, 0, NULL);88ck_assert_int_eq(elm_object_scroll_hold_get(scroller), 0);89}
90EFL_END_TEST
91
92static unsigned int event_counter;93
94static void95slider_changed(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)96{
97event_counter++;98if (event_counter == 1)99evas_object_smart_callback_del(obj, "changed", slider_changed);100else if (event_counter == 2)101evas_object_smart_callback_del(obj, "slider,drag,start", slider_changed);102else if (event_counter == 3)103evas_object_smart_callback_del(obj, "slider,drag,stop", slider_changed);104else if (event_counter == 4)105ecore_main_loop_quit();106}
107
108EFL_START_TEST(elm_slider_events)109{
110Evas_Object *win, *slider;111Evas *e;112
113win = win_add(NULL, "slider", ELM_WIN_BASIC);114e = evas_object_evas_get(win);115
116slider = elm_slider_add(win);117evas_object_smart_callback_add(slider, "changed", slider_changed, NULL);118evas_object_smart_callback_add(slider, "delay,changed", slider_changed, NULL);119evas_object_smart_callback_add(slider, "slider,drag,start", slider_changed, NULL);120evas_object_smart_callback_add(slider, "slider,drag,stop", slider_changed, NULL);121evas_object_show(slider);122evas_object_show(win);123evas_object_resize(slider, 400, 100);124evas_object_resize(win, 400, 100);125edje_object_message_signal_process(elm_layout_edje_get(slider));126get_me_to_those_events(slider);127
128
129int x, y, w, h;130int sx, sy, sw, sh;131
132evas_object_geometry_get(elm_object_part_content_get(slider, "elm.swallow.bar"), &x, &y, &w, &h);133evas_object_geometry_get(slider, &sx, &sy, &sw, &sh);134evas_event_feed_mouse_in(e, 0, NULL);135evas_event_feed_mouse_move(e, x + (w / 2), y + (h / 2), 0, NULL);136evas_event_feed_mouse_down(e, 1, 0, 0, NULL);137evas_event_feed_mouse_move(e, sx + (sw / 2), sy + (sh / 2), 0, NULL);138evas_event_feed_mouse_up(e, 1, 0, 0, NULL);139ecore_main_loop_begin();140ck_assert_int_eq(event_counter, 4);141}
142EFL_END_TEST
143
144EFL_START_TEST(elm_slider_indicator_format_set_get_p)145{
146Evas_Object *win, *slider;147const char *fmt;148
149win = win_add(NULL, "slider", ELM_WIN_BASIC);150slider = elm_slider_add(win);151elm_slider_indicator_format_set(slider, "%1.0f");152fmt = elm_slider_indicator_format_get(slider);153
154ck_assert(fmt != NULL);155ck_assert(!strcmp(fmt, "%1.0f"));156}
157EFL_END_TEST
158
159EFL_START_TEST(elm_slider_indicator_format_get_n)160{
161const char *fmt;162
163fmt = elm_slider_indicator_format_get(NULL);164
165ck_assert(fmt == NULL);166}
167EFL_END_TEST
168
169EFL_START_TEST(elm_slider_unit_format_get_n)170{
171const char *fmt;172
173fmt = elm_slider_unit_format_get(NULL);174
175ck_assert(fmt == NULL);176}
177EFL_END_TEST
178
179void elm_test_slider(TCase *tc)180{
181tcase_add_test(tc, elm_slider_legacy_type_check);182tcase_add_test(tc, elm_slider_in_scroller);183tcase_add_test(tc, elm_slider_events);184tcase_add_test(tc, elm_atspi_role_get);185tcase_add_test(tc, elm_slider_indicator_format_set_get_p);186tcase_add_test(tc, elm_slider_indicator_format_get_n);187tcase_add_test(tc, elm_slider_unit_format_get_n);188}
189