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

-- 


Reply via email to