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
This commit is contained in:
Marcel Hollerbach 2020-03-25 22:01:16 +01:00
parent 43f95ec6b3
commit f6cb234070
1 changed files with 55 additions and 0 deletions

View File

@ -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);
}