diff --git a/src/lib/evas/canvas/efl_canvas_animation.c b/src/lib/evas/canvas/efl_canvas_animation.c index 119384b5eb..33ffa035ac 100644 --- a/src/lib/evas/canvas/efl_canvas_animation.c +++ b/src/lib/evas/canvas/efl_canvas_animation.c @@ -7,6 +7,7 @@ _efl_canvas_animation_duration_set(Eo *eo_obj EINA_UNUSED, Efl_Canvas_Animation_Data *pd, double sec) { + EINA_SAFETY_ON_FALSE_RETURN(sec > 0.0); pd->duration = sec; } @@ -69,7 +70,7 @@ _efl_canvas_animation_start_delay_set(Eo *eo_obj EINA_UNUSED, Efl_Canvas_Animation_Data *pd, double sec) { - EINA_SAFETY_ON_FALSE_RETURN(sec < 0.0); + EINA_SAFETY_ON_FALSE_RETURN(sec >= 0.0); pd->start_delay_time = sec; } diff --git a/src/tests/evas/efl_canvas_animation.c b/src/tests/evas/efl_canvas_animation.c new file mode 100644 index 0000000000..cef036341c --- /dev/null +++ b/src/tests/evas/efl_canvas_animation.c @@ -0,0 +1,40 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include + +#include + +#include "evas_suite.h" +#include "evas_tests_helpers.h" + +EFL_START_TEST(efl_canvas_animation_negative_double_checking) +{ + Efl_Canvas_Animation *animation = efl_new(EFL_CANVAS_ANIMATION_CLASS); + + efl_animation_duration_set(animation, 1.0); + ck_assert_int_eq(efl_animation_duration_get(animation), 1.0); + efl_animation_duration_set(animation, 3.0); + ck_assert_int_eq(efl_animation_duration_get(animation), 3.0); + EXPECT_ERROR_START; + efl_animation_duration_set(animation, -1.0); + ck_assert_int_eq(efl_animation_duration_get(animation), 3.0); + EXPECT_ERROR_END; + + efl_animation_start_delay_set(animation, 1.0); + ck_assert(EINA_DBL_EQ(efl_animation_start_delay_get(animation), 1.0)); + efl_animation_start_delay_set(animation, 0.0); + ck_assert(EINA_DBL_EQ(efl_animation_start_delay_get(animation), 0.0)); + EXPECT_ERROR_START; + efl_animation_start_delay_set(animation, -1.0); + ck_assert_int_eq(efl_animation_start_delay_get(animation), 0.0); + EXPECT_ERROR_END; + +} +EFL_END_TEST + +void efl_test_canvas_animation(TCase *tc) +{ + tcase_add_test(tc, efl_canvas_animation_negative_double_checking); +} diff --git a/src/tests/evas/evas_suite.c b/src/tests/evas/evas_suite.c index 5e3d0d5571..eded3ae08f 100644 --- a/src/tests/evas/evas_suite.c +++ b/src/tests/evas/evas_suite.c @@ -29,6 +29,7 @@ static const Efl_Test_Case etc[] = { { "Object Smart", evas_test_object_smart }, { "Matrix", evas_test_matrix }, { "Events", evas_test_events }, + { "Efl Canvas Animation", efl_test_canvas_animation }, { NULL, NULL } }; diff --git a/src/tests/evas/evas_suite.h b/src/tests/evas/evas_suite.h index 6fee2236d0..90a7ac0860 100644 --- a/src/tests/evas/evas_suite.h +++ b/src/tests/evas/evas_suite.h @@ -23,5 +23,6 @@ void evas_test_evasgl(TCase *tc); void evas_test_object_smart(TCase *tc); void evas_test_matrix(TCase *tc); void evas_test_events(TCase *tc); +void efl_test_canvas_animation(TCase *tc); #endif /* _EVAS_SUITE_H */ diff --git a/src/tests/evas/meson.build b/src/tests/evas/meson.build index 62d744a5db..0e92eba83e 100644 --- a/src/tests/evas/meson.build +++ b/src/tests/evas/meson.build @@ -21,6 +21,7 @@ evas_suite_src = [ 'efl_test_canvas.c', 'efl_test_canvas2.c', 'efl_test_canvas3.c', + 'efl_canvas_animation.c', ] evas_suite = executable('evas_suite',