diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2020-03-25 22:01:16 +0100 |
---|---|---|
committer | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2020-03-25 22:13:29 +0100 |
commit | f6cb2340701f65c08508bc5c4988caa06141865e (patch) | |
tree | ff03009a4ed5f6c6d5bcb984b35e6f4902103f5c /src | |
parent | 43f95ec6b3be726df4f8b834d9f3821a11096a6e (diff) | |
download | efl-f6cb2340701f65c08508bc5c4988caa06141865e.tar.gz |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/tests/elementary/efl_ui_test_spin_button.c | 55 |
1 files changed, 55 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..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); } |