summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2020-03-25 22:01:16 +0100
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2020-03-25 22:13:29 +0100
commitf6cb2340701f65c08508bc5c4988caa06141865e (patch)
treeff03009a4ed5f6c6d5bcb984b35e6f4902103f5c
parent43f95ec6b3be726df4f8b834d9f3821a11096a6e (diff)
downloadefl-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
-rw-r--r--src/tests/elementary/efl_ui_test_spin_button.c55
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);
}