summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@samsung.com>2020-01-23 15:21:22 -0500
committerMike Blumenkrantz <zmike@samsung.com>2020-01-23 15:26:34 -0500
commit08fad93ffe862be7c085ccd2569c6505dad40818 (patch)
tree5b4acc2a5488d9a4ce0fecee441738c0c7d2097d
parenta77b635327ddea7d0243bc841db40522fdbbe595 (diff)
downloadefl-08fad93ffe862be7c085ccd2569c6505dad40818.tar.gz
tests/gesture: add zoom and pinch tests
basic tests verifying completion of the gestures Differential Revision: https://phab.enlightenment.org/D11170
-rw-r--r--src/tests/elementary/efl_ui_test_gesture.c69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/tests/elementary/efl_ui_test_gesture.c b/src/tests/elementary/efl_ui_test_gesture.c
index 1463283673..b44ab6b331 100644
--- a/src/tests/elementary/efl_ui_test_gesture.c
+++ b/src/tests/elementary/efl_ui_test_gesture.c
@@ -48,6 +48,11 @@ static int count[LAST][4] = {0};
for (int i = 0; i < 4; i++) \
ck_assert_int_eq(count[(type)][i], state_vals[i]); \
} while (0)
+#define CHECK_NONZERO(type) \
+ do {\
+ for (int i = 0; i < 4; i++) \
+ ck_assert_int_ne(count[(type)][i], 0); \
+ } while (0)
#define CHECK_ZERO(type) CHECK_ALL((type), 0, 0, 0, 0)
#define RESET memset(count, 0, sizeof(count))
@@ -430,9 +435,73 @@ EFL_START_TEST(test_efl_ui_gesture_flick)
}
EFL_END_TEST
+EFL_START_TEST(test_efl_ui_gesture_zoom)
+{
+ Eo *rect = setup();
+ int moves;
+
+ moves = pinch_object(rect, 500, 500, 501, 501, -250, -250, 250, 250);
+ /* canceled */
+ CHECK_ALL(TAP, 1, 0, 0, 1);
+ /* canceled */
+ CHECK_ALL(LONG_TAP, 1, 0, 0, 1);
+ /* canceled */
+ CHECK_ALL(DOUBLE_TAP, 1, 0, 0, 1);
+ /* canceled */
+ CHECK_ALL(TRIPLE_TAP, 1, 0, 0, 1);
+
+ CHECK_START(MOMENTUM, 1);
+ CHECK_UPDATE(MOMENTUM, moves * 2 + 1);
+ CHECK_FINISH(MOMENTUM, 0);
+ CHECK_CANCEL(MOMENTUM, 1);
+
+ /* only finish is verifiable */
+ CHECK_FINISH(FLICK, 0);
+ /* started 1x */
+ CHECK_START(ZOOM, 1);
+ /* 2 touch points tracked, so this will be roughly (2 * moves) but probably less */
+ ck_assert_int_ge(count[ZOOM][EFL_GESTURE_STATE_UPDATED - 1], moves);
+ /* finished 1x */
+ CHECK_FINISH(ZOOM, 1);
+ CHECK_CANCEL(ZOOM, 0);
+
+ RESET;
+
+
+ moves = pinch_object(rect, 250, 250, 750, 750, 250, 250, -250, -250);
+ /* canceled */
+ CHECK_ALL(TAP, 1, 0, 0, 1);
+ /* canceled */
+ CHECK_ALL(LONG_TAP, 1, 0, 0, 1);
+ /* canceled */
+ CHECK_ALL(DOUBLE_TAP, 1, 0, 0, 1);
+ /* canceled */
+ CHECK_ALL(TRIPLE_TAP, 1, 0, 0, 1);
+
+ CHECK_START(MOMENTUM, 1);
+ CHECK_UPDATE(MOMENTUM, moves * 2 + 1);
+ CHECK_FINISH(MOMENTUM, 0);
+ CHECK_CANCEL(MOMENTUM, 1);
+
+ /* only finish is verifiable */
+ CHECK_FINISH(FLICK, 0);
+ /* started 1x */
+ CHECK_START(ZOOM, 1);
+ /* 2 touch points tracked, so this will be roughly (2 * moves) but probably less */
+ ck_assert_int_ge(count[ZOOM][EFL_GESTURE_STATE_UPDATED - 1], moves);
+ /* finished 1x */
+ CHECK_FINISH(ZOOM, 1);
+ CHECK_CANCEL(ZOOM, 0);
+
+ RESET;
+
+}
+EFL_END_TEST
+
void efl_ui_test_gesture(TCase *tc)
{
tcase_add_test(tc, test_efl_ui_gesture_taps);
tcase_add_test(tc, test_efl_ui_gesture_long_tap);
tcase_add_test(tc, test_efl_ui_gesture_flick);
+ tcase_add_test(tc, test_efl_ui_gesture_zoom);
}