bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=1d90b113e0b1b5dd4fa7476168b6a8ff8dc06cc3

commit 1d90b113e0b1b5dd4fa7476168b6a8ff8dc06cc3
Author: Mike Blumenkrantz <zm...@samsung.com>
Date:   Fri Jul 12 14:38:30 2019 -0400

    tests/actionslider: add more actionslider unit tests
    
    verify actionslider callbacks and various basic functionalities
    
    Reviewed-by: Marcel Hollerbach <m...@marcel-hollerbach.de>
    Differential Revision: https://phab.enlightenment.org/D9322
---
 src/tests/elementary/elm_test_actionslider.c | 99 ++++++++++++++++++++++++++++
 1 file changed, 99 insertions(+)

diff --git a/src/tests/elementary/elm_test_actionslider.c 
b/src/tests/elementary/elm_test_actionslider.c
index b679b6017c..4350791df2 100644
--- a/src/tests/elementary/elm_test_actionslider.c
+++ b/src/tests/elementary/elm_test_actionslider.c
@@ -41,8 +41,107 @@ EFL_START_TEST(elm_atspi_role_get)
 }
 EFL_END_TEST
 
+static const char *test_val;
+
+static void
+test_pos_changed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info 
EINA_UNUSED)
+{
+   int *called = data;
+
+   (*called)++;
+}
+
+static void
+test_selected_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void 
*event_info)
+{
+   /* if the test crashes with a crazy stack trace, this assert failed */
+   ck_assert_str_eq(event_info, test_val);
+   ecore_main_loop_quit();
+}
+
+EFL_START_TEST(elm_actionslider_test_callbacks)
+{
+   Evas_Object *win, *as;
+   int called = 0;
+
+   win = win_add(NULL, "as", ELM_WIN_BASIC);
+
+   as = elm_actionslider_add(win);
+   evas_object_resize(as, 200, 200);
+   evas_object_resize(win, 200, 200);
+
+   evas_object_show(win);
+   evas_object_show(as);
+   elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_RIGHT);
+   elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_RIGHT);
+   elm_object_part_text_set(as, "left", "test1");
+   elm_object_part_text_set(as, "center", "test2");
+   elm_object_part_text_set(as, "right", "test3");
+   elm_actionslider_enabled_pos_set(as, ELM_ACTIONSLIDER_LEFT |
+                                    ELM_ACTIONSLIDER_CENTER | 
ELM_ACTIONSLIDER_RIGHT);
+   evas_object_smart_callback_add(as, "pos_changed",
+                                  test_pos_changed_cb, &called);
+   evas_object_smart_callback_add(as, "selected", test_selected_cb, &called);
+
+   get_me_to_those_events(as);
+
+   test_val = "test2";
+   called = 0;
+   click_part(as, "elm.text.left");
+   edje_object_message_signal_process(as);
+   ecore_main_loop_begin();
+   ck_assert_int_eq(called, 1);
+
+   test_val = "test1";
+   called = 0;
+   click_part(as, "elm.text.left");
+   edje_object_message_signal_process(as);
+   ecore_main_loop_begin();
+   ck_assert_int_eq(called, 1);
+
+   test_val = "test2";
+   called = 0;
+   click_part(as, "elm.text.center");
+   edje_object_message_signal_process(as);
+   ecore_main_loop_begin();
+   ck_assert_int_eq(called, 1);
+
+   test_val = "test3";
+   called = 0;
+   click_part(as, "elm.text.right");
+   edje_object_message_signal_process(as);
+   ecore_main_loop_begin();
+   ck_assert_int_eq(called, 1);
+}
+EFL_END_TEST
+
+EFL_START_TEST(elm_actionslider_test_parts)
+{
+   Evas_Object *win, *as;
+
+   win = win_add(NULL, "as", ELM_WIN_BASIC);
+
+   as = elm_actionslider_add(win);
+
+   elm_actionslider_indicator_pos_set(as, ELM_ACTIONSLIDER_RIGHT);
+   ck_assert_int_eq(elm_actionslider_indicator_pos_get(as), 
ELM_ACTIONSLIDER_RIGHT);
+   elm_actionslider_magnet_pos_set(as, ELM_ACTIONSLIDER_RIGHT);
+   ck_assert_int_eq(elm_actionslider_magnet_pos_get(as), 
ELM_ACTIONSLIDER_RIGHT);
+   elm_object_part_text_set(as, "left", "Snooze");
+   ck_assert_str_eq(elm_object_part_text_get(as, "left"), "Snooze");
+   elm_object_part_text_set(as, "center", NULL);
+   ck_assert_ptr_eq(elm_object_part_text_get(as, "center"), NULL);
+   elm_object_part_text_set(as, "right", "Stop");
+   ck_assert_str_eq(elm_object_part_text_get(as, "right"), "Stop");
+   elm_actionslider_enabled_pos_set(as, ELM_ACTIONSLIDER_LEFT | 
ELM_ACTIONSLIDER_RIGHT);
+   ck_assert_int_eq(elm_actionslider_enabled_pos_get(as), 
ELM_ACTIONSLIDER_LEFT | ELM_ACTIONSLIDER_RIGHT);
+}
+EFL_END_TEST
+
 void elm_test_actionslider(TCase *tc)
 {
    tcase_add_test(tc, elm_actionslider_legacy_type_check);
    tcase_add_test(tc, elm_atspi_role_get);
+   tcase_add_test(tc, elm_actionslider_test_callbacks);
+   tcase_add_test(tc, elm_actionslider_test_parts);
 }

-- 


Reply via email to