bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f6cb2340701f65c08508bc5c4988caa06141865e
commit f6cb2340701f65c08508bc5c4988caa06141865e Author: Marcel Hollerbach <[email protected]> Date: Wed Mar 25 22:01:16 2020 +0100 efl_ui_spin_button: add tests for direct input feature this simply passes in some key sequences and checks if the validation is working. Additionally the output value is checked. Depends on D11009 Differential Revision: https://phab.enlightenment.org/D11010 --- src/tests/elementary/efl_ui_test_spin_button.c | 55 ++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/src/tests/elementary/efl_ui_test_spin_button.c b/src/tests/elementary/efl_ui_test_spin_button.c index f723e348af..db6ddc2831 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 @@ #endif #include <Elementary.h> +#include "elm_entry_eo.h" //needed to check that spin is in text mode #include <Efl_Ui.h> #include "efl_ui_suite.h" @@ -209,6 +210,58 @@ EFL_START_TEST (spin_double_values_hitting_max_with_step) } EFL_END_TEST +static inline void +_try_direct_text_input(const char *text, double result) +{ + Eo *entry; + + efl_ui_focus_util_focus(efl_content_get(efl_part(spin, "efl.text_button"))); + get_me_to_those_events(spin); + entry = efl_content_get(efl_part(spin, "efl.entry")); + elm_object_text_set(entry, ""); + ck_assert_int_eq(efl_isa(entry, ELM_ENTRY_CLASS), 1); + efl_ui_focus_util_focus(entry); + get_me_to_those_events(spin); + + write_key_sequence(spin, text); + get_me_to_those_events(spin); + + efl_ui_focus_util_focus(efl_content_get(efl_part(spin, "efl.inc_button"))); + 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)); +} + +EFL_START_TEST (spin_direct_text_input) +{ + efl_ui_spin_button_direct_text_input_set(spin, EINA_TRUE); + efl_ui_range_limits_set(spin, -30, 30); + efl_ui_range_value_set(spin, 20); + get_me_to_those_events(spin); + _try_direct_text_input("1asdf2", 12); + _try_direct_text_input("1-2", 12); + _try_direct_text_input("-12", -12); + _try_direct_text_input("-100", -30); + _try_direct_text_input("1.8", 18); + _try_direct_text_input("12342435", 30); +} +EFL_END_TEST + +EFL_START_TEST (spin_direct_text_input_comma_value) +{ + efl_ui_spin_button_direct_text_input_set(spin, EINA_TRUE); + efl_ui_range_limits_set(spin, -30, 30); + efl_ui_range_value_set(spin, 20); + efl_ui_format_string_set(spin, "%.2f", EFL_UI_FORMAT_STRING_TYPE_SIMPLE); + efl_ui_focus_util_focus(efl_content_get(efl_part(spin, "efl.text_button"))); + get_me_to_those_events(spin); + _try_direct_text_input("1asdf2.1", 12.1); + _try_direct_text_input("1-2.2", 12.2); + _try_direct_text_input("-12.8", -12.8); + _try_direct_text_input("-100", -30); + _try_direct_text_input("10.8", 10.8); + _try_direct_text_input("12342435.12312341342", 30); +} +EFL_END_TEST + void efl_ui_test_spin_button(TCase *tc) { tcase_add_checked_fixture(tc, fail_on_errors_setup, fail_on_errors_teardown); @@ -220,4 +273,6 @@ void efl_ui_test_spin_button(TCase *tc) tcase_add_test(tc, spin_wraparound); tcase_add_test(tc, spin_double_values); tcase_add_test(tc, spin_double_values_hitting_max_with_step); + tcase_add_test(tc, spin_direct_text_input); + tcase_add_test(tc, spin_direct_text_input_comma_value); } --
