From 81e356a6af418aa6b7916ca45ab9d61d62f30ef2 Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Mon, 8 Jul 2019 16:18:57 +0200 Subject: [PATCH] efl_ui_spec_suite: introduce two new test suites this checks that the expected errors are in place, and the state does not get changed when there is an errornous call. ref T7895 ref T7894 --- src/tests/elementary/spec/efl_test_range_display.c | 90 ++++++++++++++++++++++ .../elementary/spec/efl_test_range_interactive.c | 38 +++++++++ src/tests/elementary/spec/efl_ui_spec_suite.h | 2 + src/tests/elementary/spec/meson.build | 2 + 4 files changed, 132 insertions(+) create mode 100644 src/tests/elementary/spec/efl_test_range_display.c create mode 100644 src/tests/elementary/spec/efl_test_range_interactive.c diff --git a/src/tests/elementary/spec/efl_test_range_display.c b/src/tests/elementary/spec/efl_test_range_display.c new file mode 100644 index 0000000..338dfb2 --- /dev/null +++ b/src/tests/elementary/spec/efl_test_range_display.c @@ -0,0 +1,90 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#include +#include "efl_ui_spec_suite.h" +#include "suite_helpers.h" + +/* spec-meta-start + {"test-interface":"Efl.Ui.Range_Display", + "test-widgets": ["Efl.Ui.Spin", "Efl.Ui.Progressbar", "Efl.Ui.Slider", "Efl.Ui.Spin_Button"]} + spec-meta-end */ + +EFL_START_TEST(value_setting_limits) +{ + efl_ui_range_limits_set(widget, -20.0, 20.0); + efl_ui_range_value_set(widget, 10.0); + + EXPECT_ERROR_START; + efl_ui_range_value_set(widget, -25.0); + EXPECT_ERROR_END; + ck_assert(efl_ui_range_value_get(widget) == 10.0); + + EXPECT_ERROR_START; + efl_ui_range_value_set(widget, 25.0); + EXPECT_ERROR_END; + ck_assert(efl_ui_range_value_get(widget) == 10.0); +} +EFL_END_TEST + +EFL_START_TEST(limit_setting) +{ + double min, max; + + efl_ui_range_limits_set(widget, -20.0, 20.0); + efl_ui_range_limits_get(widget, &min, &max); + ck_assert(min == -20.0); + ck_assert(max == 20.0); + EXPECT_ERROR_START; + efl_ui_range_limits_set(widget, -20.0, -20.0); + EXPECT_ERROR_END; + efl_ui_range_limits_get(widget, &min, &max); + ck_assert(min == -20.0); + ck_assert(max == 20.0); + + EXPECT_ERROR_START; + efl_ui_range_limits_set(widget, 2.0, -20.0); + EXPECT_ERROR_END; + efl_ui_range_limits_get(widget, &min, &max); + ck_assert(min == -20.0); + ck_assert(max == 20.0); + + EXPECT_ERROR_START; + efl_ui_range_limits_set(widget, 25.0, 20.0); + EXPECT_ERROR_END; + efl_ui_range_limits_get(widget, &min, &max); + ck_assert(min == -20.0); + ck_assert(max == 20.0); + + efl_ui_range_limits_set(widget, -25.0, -20.0); + efl_ui_range_limits_get(widget, &min, &max); + ck_assert(min == -25.0); + ck_assert(max == -20.0); + + efl_ui_range_limits_set(widget, 20.0, 25.0); + efl_ui_range_limits_get(widget, &min, &max); + ck_assert(min == 20.0); + ck_assert(max == 25.0); +} +EFL_END_TEST + +EFL_START_TEST(value_setting) +{ + double i; + efl_ui_range_limits_set(widget, -20.0, 20.0); + for (i = -20.0; i <= 20.0; ++i) + { + efl_ui_range_value_set(widget, i); + ck_assert(efl_ui_range_value_get(widget) == i); + } +} +EFL_END_TEST + +void +efl_ui_range_display_behavior_test(TCase *tc) +{ + tcase_add_test(tc, value_setting_limits); + tcase_add_test(tc, limit_setting); + tcase_add_test(tc, value_setting); +} diff --git a/src/tests/elementary/spec/efl_test_range_interactive.c b/src/tests/elementary/spec/efl_test_range_interactive.c new file mode 100644 index 0000000..9753046 --- /dev/null +++ b/src/tests/elementary/spec/efl_test_range_interactive.c @@ -0,0 +1,38 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#include +#include "efl_ui_spec_suite.h" +#include "suite_helpers.h" + +/* spec-meta-start + {"test-interface":"Efl.Ui.Range_Display_Interactive", + "test-widgets": ["Efl.Ui.Spin", "Efl.Ui.Slider", "Efl.Ui.Spin_Button"]} + spec-meta-end */ + +EFL_START_TEST(step_setting) +{ + efl_ui_range_step_set(widget, 20.0); + ck_assert(efl_ui_range_step_get(widget) == 20.0); + efl_ui_range_step_set(widget, 100.0); + ck_assert(efl_ui_range_step_get(widget) == 100.0); + + EXPECT_ERROR_START; + efl_ui_range_step_set(widget, 0.0); + ck_assert(efl_ui_range_step_get(widget) == 100.0); + EXPECT_ERROR_END; + + EXPECT_ERROR_START; + efl_ui_range_step_set(widget, -20.0); + ck_assert(efl_ui_range_step_get(widget) == 100.0); + EXPECT_ERROR_END; +} +EFL_END_TEST + +void +efl_ui_range_display_interactive_behavior_test(TCase *tc) +{ + tcase_add_test(tc, step_setting); +} + diff --git a/src/tests/elementary/spec/efl_ui_spec_suite.h b/src/tests/elementary/spec/efl_ui_spec_suite.h index 666a40d..a1ecbd5 100644 --- a/src/tests/elementary/spec/efl_ui_spec_suite.h +++ b/src/tests/elementary/spec/efl_ui_spec_suite.h @@ -16,6 +16,8 @@ void efl_content_behavior_test(TCase *tc); void efl_gfx_arrangement_behavior_test(TCase *tc); void efl_ui_clickable_behavior_test(TCase *tc); void efl_ui_format_behavior_test(TCase *tc); +void efl_ui_range_display_behavior_test(TCase *tc); +void efl_ui_range_display_interactive_behavior_test(TCase *tc); void efl_test_container_content_equal(Efl_Ui_Widget **wid, unsigned int len); void efl_test_container_expect_evt_content_added(Efl_Ui_Widget *widget, const Efl_Event_Description *ev, Eina_Bool *flag, void *event_data); diff --git a/src/tests/elementary/spec/meson.build b/src/tests/elementary/spec/meson.build index 00fe61c..e80a24d 100644 --- a/src/tests/elementary/spec/meson.build +++ b/src/tests/elementary/spec/meson.build @@ -6,6 +6,8 @@ efl_ui_suite_behavior_test_files = files([ 'efl_test_gfx_arrangement.c', 'efl_test_clickable.c', 'efl_test_format.c', + 'efl_test_range_display.c', + 'efl_test_range_interactive.c', ]) efl_ui_suite_behavior_src = files([ -- 2.7.4