diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2020-01-13 20:03:02 +0100 |
---|---|---|
committer | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2020-01-13 20:07:28 +0100 |
commit | f7ba6a8e9b69545fc25e091a838636d876576286 (patch) | |
tree | 720f0331fd792d48f88e3230e7053ccee66e932a | |
parent | 8c857816b19b7f34ca7099bd8e80ad8fc35caaf9 (diff) |
-rw-r--r-- | src/tests/elementary/efl_ui_test_spin_button.c | 54 | ||||
-rw-r--r-- | src/tests/elementary/suite_helpers.c | 15 | ||||
-rw-r--r-- | src/tests/elementary/suite_helpers.h | 1 |
3 files changed, 70 insertions, 0 deletions
diff --git a/src/tests/elementary/efl_ui_test_spin_button.c b/src/tests/elementary/efl_ui_test_spin_button.c index f723e348af..b9847894f7 100644 --- a/src/tests/elementary/efl_ui_test_spin_button.c +++ b/src/tests/elementary/efl_ui_test_spin_button.c | |||
@@ -3,6 +3,7 @@ | |||
3 | #endif | 3 | #endif |
4 | 4 | ||
5 | #include <Elementary.h> | 5 | #include <Elementary.h> |
6 | #include "elm_entry_eo.h" //needed to check that spin is in text mode | ||
6 | #include <Efl_Ui.h> | 7 | #include <Efl_Ui.h> |
7 | #include "efl_ui_suite.h" | 8 | #include "efl_ui_suite.h" |
8 | 9 | ||
@@ -209,6 +210,57 @@ EFL_START_TEST (spin_double_values_hitting_max_with_step) | |||
209 | } | 210 | } |
210 | EFL_END_TEST | 211 | EFL_END_TEST |
211 | 212 | ||
213 | static inline void | ||
214 | _try_direct_text_input(const char *text, double result) | ||
215 | { | ||
216 | Eo *entry; | ||
217 | |||
218 | efl_ui_focus_util_focus(efl_content_get(efl_part(spin, "efl.text_button"))); | ||
219 | get_me_to_those_events(spin); | ||
220 | entry = efl_content_get(efl_part(spin, "efl.entry")); | ||
221 | elm_object_text_set(entry, ""); | ||
222 | ck_assert_int_eq(efl_isa(entry, ELM_ENTRY_CLASS), 1); | ||
223 | efl_ui_focus_util_focus(entry); | ||
224 | get_me_to_those_events(spin); | ||
225 | |||
226 | write_key_sequence(spin, text); | ||
227 | get_me_to_those_events(spin); | ||
228 | |||
229 | efl_ui_focus_util_focus(efl_content_get(efl_part(spin, "efl.inc_button"))); | ||
230 | ck_assert_msg(EINA_DBL_EQ(efl_ui_range_value_get(spin), result), "Values do not match %f - %f (%s)", efl_ui_range_value_get(spin), result, elm_object_text_get(entry)); | ||
231 | } | ||
232 | |||
233 | EFL_START_TEST (spin_direct_text_input) | ||
234 | { | ||
235 | efl_ui_spin_button_direct_text_input_set(spin, EINA_TRUE); | ||
236 | efl_ui_range_limits_set(spin, -30, 30); | ||
237 | efl_ui_range_value_set(spin, 20); | ||
238 | get_me_to_those_events(spin); | ||
239 | _try_direct_text_input("1asdf2", 12); | ||
240 | _try_direct_text_input("1-2", 12); | ||
241 | _try_direct_text_input("-12", -12); | ||
242 | _try_direct_text_input("-100", -30); | ||
243 | _try_direct_text_input("1.8", 18); | ||
244 | _try_direct_text_input("12342435", 30); | ||
245 | } | ||
246 | EFL_END_TEST | ||
247 | |||
248 | EFL_START_TEST (spin_direct_text_input_comma_value) | ||
249 | { | ||
250 | efl_ui_spin_button_direct_text_input_set(spin, EINA_TRUE); | ||
251 | efl_ui_range_limits_set(spin, -30, 30); | ||
252 | efl_ui_range_value_set(spin, 20); | ||
253 | efl_ui_format_string_set(spin, "%.2f", EFL_UI_FORMAT_STRING_TYPE_SIMPLE); | ||
254 | efl_ui_focus_util_focus(efl_content_get(efl_part(spin, "efl.text_button"))); | ||
255 | get_me_to_those_events(spin); | ||
256 | _try_direct_text_input("1asdf2.1", 12.1); | ||
257 | _try_direct_text_input("1-2.2", 12.2); | ||
258 | _try_direct_text_input("-12.8", -12.8); | ||
259 | _try_direct_text_input("-100", -30); | ||
260 | _try_direct_text_input("10.8", 10.8); | ||
261 | _try_direct_text_input("12342435.12312341342", 30); | ||
262 | } | ||
263 | EFL_END_TEST | ||
212 | void efl_ui_test_spin_button(TCase *tc) | 264 | void efl_ui_test_spin_button(TCase *tc) |
213 | { | 265 | { |
214 | tcase_add_checked_fixture(tc, fail_on_errors_setup, fail_on_errors_teardown); | 266 | tcase_add_checked_fixture(tc, fail_on_errors_setup, fail_on_errors_teardown); |
@@ -220,4 +272,6 @@ void efl_ui_test_spin_button(TCase *tc) | |||
220 | tcase_add_test(tc, spin_wraparound); | 272 | tcase_add_test(tc, spin_wraparound); |
221 | tcase_add_test(tc, spin_double_values); | 273 | tcase_add_test(tc, spin_double_values); |
222 | tcase_add_test(tc, spin_double_values_hitting_max_with_step); | 274 | tcase_add_test(tc, spin_double_values_hitting_max_with_step); |
275 | tcase_add_test(tc, spin_direct_text_input); | ||
276 | tcase_add_test(tc, spin_direct_text_input_comma_value); | ||
223 | } | 277 | } |
diff --git a/src/tests/elementary/suite_helpers.c b/src/tests/elementary/suite_helpers.c index 53c473a9fa..0ee066e697 100644 --- a/src/tests/elementary/suite_helpers.c +++ b/src/tests/elementary/suite_helpers.c | |||
@@ -618,3 +618,18 @@ drag_object(Eo *obj, int x, int y, int dx, int dy, Eina_Bool iterate) | |||
618 | evas_event_feed_mouse_move(e, x + dx, y + dy, 0, NULL); | 618 | evas_event_feed_mouse_move(e, x + dx, y + dy, 0, NULL); |
619 | evas_event_feed_mouse_up(e, 1, 0, 0, NULL); | 619 | evas_event_feed_mouse_up(e, 1, 0, 0, NULL); |
620 | } | 620 | } |
621 | |||
622 | void | ||
623 | write_key_sequence(Eo *obj, const char *seqence) | ||
624 | { | ||
625 | Evas *e = evas_object_evas_get(obj); | ||
626 | for (unsigned int i = 0; i < strlen(seqence); ++i) | ||
627 | { | ||
628 | const char part_seq[] = {seqence[i], '\0'}; | ||
629 | |||
630 | evas_event_feed_key_down(e, part_seq, part_seq, part_seq, part_seq, 0, NULL); | ||
631 | ecore_main_loop_iterate(); | ||
632 | evas_event_feed_key_up(e, part_seq, part_seq, part_seq, part_seq, 0, NULL); | ||
633 | ecore_main_loop_iterate(); | ||
634 | } | ||
635 | } | ||
diff --git a/src/tests/elementary/suite_helpers.h b/src/tests/elementary/suite_helpers.h index 40c8dec12b..b9535a8826 100644 --- a/src/tests/elementary/suite_helpers.h +++ b/src/tests/elementary/suite_helpers.h | |||
@@ -22,6 +22,7 @@ void click_part(Eo *obj, const char *part); | |||
22 | void click_part_flags(Eo *obj, const char *part, int flags); | 22 | void click_part_flags(Eo *obj, const char *part, int flags); |
23 | void click_object_at(Eo *obj, int x, int y); | 23 | void click_object_at(Eo *obj, int x, int y); |
24 | void click_object_at_flags(Eo *obj, int x, int y, int flags); | 24 | void click_object_at_flags(Eo *obj, int x, int y, int flags); |
25 | void write_key_sequence(Eo *obj, const char *seqence); | ||
25 | void drag_object(Eo *obj, int x, int y, int dx, int dy, Eina_Bool iterate); | 26 | void drag_object(Eo *obj, int x, int y, int dx, int dy, Eina_Bool iterate); |
26 | void wheel_object(Eo *obj, Eina_Bool horiz, Eina_Bool down); | 27 | void wheel_object(Eo *obj, Eina_Bool horiz, Eina_Bool down); |
27 | void wheel_part(Eo *obj, const char *part, Eina_Bool horiz, Eina_Bool down); | 28 | void wheel_part(Eo *obj, const char *part, Eina_Bool horiz, Eina_Bool down); |