[gtk+] Add more gestures tests
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Add more gestures tests
- Date: Sat, 31 May 2014 22:47:08 +0000 (UTC)
commit 97930a774bfe298d14b223f1748c4abf72cd3814
Author: Matthias Clasen <mclasen redhat com>
Date: Sat May 31 18:46:43 2014 -0400
Add more gestures tests
Some of these sequences look wrong/questionable to me.
testsuite/gtk/gestures.c | 108 +++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 102 insertions(+), 6 deletions(-)
---
diff --git a/testsuite/gtk/gestures.c b/testsuite/gtk/gestures.c
index 91dd336..e946ef2 100644
--- a/testsuite/gtk/gestures.c
+++ b/testsuite/gtk/gestures.c
@@ -286,8 +286,6 @@ test_early_exit (void)
add_gesture (A, "a1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_NONE);
add_gesture (B, "b1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_NONE);
add_gesture (C, "c1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_NONE);
- add_gesture (A, "a2", GTK_PHASE_TARGET, str, GTK_EVENT_SEQUENCE_NONE);
- add_gesture (B, "b2", GTK_PHASE_TARGET, str, GTK_EVENT_SEQUENCE_NONE);
add_gesture (C, "c2", GTK_PHASE_TARGET, str, GTK_EVENT_SEQUENCE_NONE);
add_gesture (A, "a3", GTK_PHASE_BUBBLE, str, GTK_EVENT_SEQUENCE_NONE);
add_gesture (B, "b3", GTK_PHASE_BUBBLE, str, GTK_EVENT_SEQUENCE_NONE);
@@ -314,7 +312,7 @@ test_early_exit (void)
}
static void
-test_claim (void)
+test_claim_capture (void)
{
GtkWidget *A, *B, *C;
GString *str;
@@ -338,8 +336,6 @@ test_claim (void)
add_gesture (A, "a1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_NONE);
add_gesture (B, "b1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_NONE);
add_gesture (C, "c1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_CLAIMED);
- add_gesture (A, "a2", GTK_PHASE_TARGET, str, GTK_EVENT_SEQUENCE_NONE);
- add_gesture (B, "b2", GTK_PHASE_TARGET, str, GTK_EVENT_SEQUENCE_NONE);
add_gesture (C, "c2", GTK_PHASE_TARGET, str, GTK_EVENT_SEQUENCE_NONE);
add_gesture (A, "a3", GTK_PHASE_BUBBLE, str, GTK_EVENT_SEQUENCE_NONE);
add_gesture (B, "b3", GTK_PHASE_BUBBLE, str, GTK_EVENT_SEQUENCE_NONE);
@@ -361,6 +357,104 @@ test_claim (void)
}
static void
+test_claim_target (void)
+{
+ GtkWidget *A, *B, *C;
+ GString *str;
+
+ A = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_widget_set_name (A, "A");
+ B = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_widget_set_name (B, "B");
+ C = gtk_event_box_new ();
+ gtk_widget_set_hexpand (C, TRUE);
+ gtk_widget_set_vexpand (C, TRUE);
+ gtk_widget_set_name (C, "C");
+
+ gtk_container_add (GTK_CONTAINER (A), B);
+ gtk_container_add (GTK_CONTAINER (B), C);
+
+ gtk_widget_show_all (A);
+
+ str = g_string_new ("");
+
+ add_gesture (A, "a1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_NONE);
+ add_gesture (B, "b1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_NONE);
+ add_gesture (C, "c1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_NONE);
+ add_gesture (C, "c2", GTK_PHASE_TARGET, str, GTK_EVENT_SEQUENCE_CLAIMED);
+ add_gesture (A, "a3", GTK_PHASE_BUBBLE, str, GTK_EVENT_SEQUENCE_NONE);
+ add_gesture (B, "b3", GTK_PHASE_BUBBLE, str, GTK_EVENT_SEQUENCE_NONE);
+ add_gesture (C, "c3", GTK_PHASE_BUBBLE, str, GTK_EVENT_SEQUENCE_NONE);
+
+ inject_press (C);
+
+ g_assert_cmpstr (str->str, ==,
+ "capture a1, "
+ "capture b1, "
+ "capture c1, "
+ "target c2, "
+ /* "c1 state denied, " ? */
+ "b1 state denied, "
+ "a1 state denied, "
+ "c2 state claimed");
+
+ g_string_free (str, TRUE);
+
+ gtk_widget_destroy (A);
+}
+
+static void
+test_claim_bubble (void)
+{
+ GtkWidget *A, *B, *C;
+ GString *str;
+
+ A = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_widget_set_name (A, "A");
+ B = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_widget_set_name (B, "B");
+ C = gtk_event_box_new ();
+ gtk_widget_set_hexpand (C, TRUE);
+ gtk_widget_set_vexpand (C, TRUE);
+ gtk_widget_set_name (C, "C");
+
+ gtk_container_add (GTK_CONTAINER (A), B);
+ gtk_container_add (GTK_CONTAINER (B), C);
+
+ gtk_widget_show_all (A);
+
+ str = g_string_new ("");
+
+ add_gesture (A, "a1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_NONE);
+ add_gesture (B, "b1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_NONE);
+ add_gesture (C, "c1", GTK_PHASE_CAPTURE, str, GTK_EVENT_SEQUENCE_NONE);
+ add_gesture (C, "c2", GTK_PHASE_TARGET, str, GTK_EVENT_SEQUENCE_NONE);
+ add_gesture (A, "a3", GTK_PHASE_BUBBLE, str, GTK_EVENT_SEQUENCE_NONE);
+ add_gesture (B, "b3", GTK_PHASE_BUBBLE, str, GTK_EVENT_SEQUENCE_CLAIMED);
+ add_gesture (C, "c3", GTK_PHASE_BUBBLE, str, GTK_EVENT_SEQUENCE_NONE);
+
+ inject_press (C);
+
+ g_assert_cmpstr (str->str, ==,
+ "capture a1, "
+ "capture b1, "
+ "capture c1, "
+ "target c2, "
+ "bubble c3, "
+ "bubble b3, "
+ "c3 cancelled, "
+ "c2 cancelled, "
+ "c1 cancelled, "
+ "a1 state denied, "
+ "b3 state claimed"
+ );
+
+ g_string_free (str, TRUE);
+
+ gtk_widget_destroy (A);
+}
+
+static void
test_group (void)
{
GtkWidget *A, *B, *C;
@@ -419,7 +513,9 @@ main (int argc, char *argv[])
g_test_add_func ("/gestures/propagation/phases", test_phases);
g_test_add_func ("/gestures/propagation/mixed", test_mixed);
g_test_add_func ("/gestures/propagation/early-exit", test_early_exit);
- g_test_add_func ("/gestures/propagation/claim", test_claim);
+ g_test_add_func ("/gestures/propagation/claim/capture", test_claim_capture);
+ g_test_add_func ("/gestures/propagation/claim/target", test_claim_target);
+ g_test_add_func ("/gestures/propagation/claim/bubble", test_claim_bubble);
g_test_add_func ("/gestures/propagation/group", test_group);
return g_test_run ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]