efl_input_interface: verify check cancel event

this verifies that EFL_EVENT_POINTER_CANCEL is emitted correctly.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9171
This commit is contained in:
Marcel Hollerbach 2019-06-24 18:18:09 +02:00
parent e399bdd6ec
commit 5e54ad67ec
1 changed files with 76 additions and 0 deletions

View File

@ -358,6 +358,81 @@ EFL_START_TEST(efl_ui_win_test_efl_input_interface_pointer_wheel)
ck_assert_int_eq(pointer_wheel, EINA_TRUE); ck_assert_int_eq(pointer_wheel, EINA_TRUE);
} }
EFL_END_TEST EFL_END_TEST
static void
_check_ptr_cancel_down_event(void *data, const Efl_Event *ev)
{
Eina_Bool *called = data;
ck_assert_int_eq(efl_input_timestamp_get(ev->info), TIMESTAMP);
ck_assert_int_eq(efl_input_pointer_wheel_delta_get(ev->info), 0);
ck_assert_int_eq(efl_input_pointer_wheel_horizontal_get(ev->info), 0);
ck_assert_int_eq(efl_input_pointer_double_click_get(ev->info), 0);
ck_assert_int_eq(efl_input_pointer_triple_click_get(ev->info), 0);
ck_assert_int_eq(efl_input_pointer_button_flags_get(ev->info), 0);
ck_assert_int_eq(efl_input_pointer_touch_id_get(ev->info), 0);
position_eq(efl_input_pointer_position_get(ev->info), EINA_POSITION2D(20, 20));
ck_assert_int_eq(efl_input_pointer_button_get(ev->info), 1);
ck_assert_int_eq(efl_input_pointer_action_get(ev->info), EFL_POINTER_ACTION_DOWN);
*called = EINA_TRUE;
}
static void
_check_ptr_cancel_event(void *data, const Efl_Event *ev)
{
int *called = data;
ck_assert_int_eq(efl_input_timestamp_get(ev->info), TIMESTAMP);
ck_assert_int_eq(efl_input_pointer_wheel_delta_get(ev->info), 0);
ck_assert_int_eq(efl_input_pointer_wheel_horizontal_get(ev->info), 0);
ck_assert_int_eq(efl_input_pointer_double_click_get(ev->info), 0);
ck_assert_int_eq(efl_input_pointer_triple_click_get(ev->info), 0);
ck_assert_int_eq(efl_input_pointer_button_flags_get(ev->info), 0);
ck_assert_int_eq(efl_input_pointer_touch_id_get(ev->info), 0);
position_eq(efl_input_pointer_position_get(ev->info), EINA_POSITION2D(20, 20));
ck_assert_int_eq(efl_input_pointer_button_get(ev->info), 1);
ck_assert_int_eq(efl_input_pointer_action_get(ev->info), EFL_POINTER_ACTION_CANCEL );
ck_assert_int_eq(*called, 0);
*called = 1;
}
static void
_check_ptr_cancel_up_event(void *data, const Efl_Event *ev)
{
Eina_Bool *called = data;
ck_assert_int_eq(efl_input_timestamp_get(ev->info), TIMESTAMP);
ck_assert_int_eq(efl_input_pointer_wheel_delta_get(ev->info), 0);
ck_assert_int_eq(efl_input_pointer_wheel_horizontal_get(ev->info), 0);
ck_assert_int_eq(efl_input_pointer_double_click_get(ev->info), 0);
ck_assert_int_eq(efl_input_pointer_triple_click_get(ev->info), 0);
ck_assert_int_eq(efl_input_pointer_button_flags_get(ev->info), 0);
ck_assert_int_eq(efl_input_pointer_touch_id_get(ev->info), 0);
position_eq(efl_input_pointer_position_get(ev->info), EINA_POSITION2D(20, 20));
ck_assert_int_eq(efl_input_pointer_button_get(ev->info), 1);
ck_assert_int_eq(efl_input_pointer_action_get(ev->info), EFL_POINTER_ACTION_UP);
ck_assert_int_eq(*called, 1);
*called = 2;
}
EFL_START_TEST(efl_ui_win_test_efl_input_interface_pointer_cancel)
{
Efl_Ui_Win *win;
Eina_Bool called_down = EINA_FALSE;
int called;
Efl_Canvas_Object *rect;
create_environment(&win, &rect);
evas_event_feed_mouse_move(evas_object_evas_get(win), 20, 20, TIMESTAMP - 1, NULL);
efl_event_callback_add(rect, EFL_EVENT_POINTER_DOWN, _check_ptr_cancel_down_event, &called_down);
evas_event_feed_mouse_down(evas_object_evas_get(win), 1, 0, TIMESTAMP, NULL);
ck_assert_int_eq(called_down, EINA_TRUE);
called = EINA_FALSE;
efl_event_callback_add(rect, EFL_EVENT_POINTER_CANCEL, _check_ptr_cancel_event, &called);
efl_event_callback_add(rect, EFL_EVENT_POINTER_UP, _check_ptr_cancel_up_event, &called);
evas_event_feed_mouse_cancel(evas_object_evas_get(win), TIMESTAMP, NULL);
ck_assert_int_eq(called, 2);
}
EFL_END_TEST
void void
efl_ui_test_win(TCase *tc) efl_ui_test_win(TCase *tc)
{ {
@ -371,4 +446,5 @@ efl_ui_test_win(TCase *tc)
tcase_add_test(tc, efl_ui_win_test_efl_input_interface_pointer_up); tcase_add_test(tc, efl_ui_win_test_efl_input_interface_pointer_up);
tcase_add_test(tc, efl_ui_win_test_efl_input_interface_pointer_in_out); tcase_add_test(tc, efl_ui_win_test_efl_input_interface_pointer_in_out);
tcase_add_test(tc, efl_ui_win_test_efl_input_interface_pointer_wheel); tcase_add_test(tc, efl_ui_win_test_efl_input_interface_pointer_wheel);
tcase_add_test(tc, efl_ui_win_test_efl_input_interface_pointer_cancel);
} }