summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2013-02-14 09:11:59 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2013-02-14 09:11:59 +1000
commitf356d316ec2c7a849f9dc631a6ac26f50813e974 (patch)
tree15d184d4e55f8909de9967ceaa6a69ca79adccca
parent0036a635b346949850300e34f583af84db5f100c (diff)
Move touch test over to grabs
-rw-r--r--tests/server/grab.cpp49
-rw-r--r--tests/server/touch.cpp107
2 files changed, 49 insertions, 107 deletions
diff --git a/tests/server/grab.cpp b/tests/server/grab.cpp
index c2adb28..ad1dc47 100644
--- a/tests/server/grab.cpp
+++ b/tests/server/grab.cpp
@@ -485,6 +485,55 @@ class TouchGrabTestMultipleModes : public TouchGrabTest,
{
};
+TEST_P(TouchGrabTestMultipleModes, SingleTouchGrabListenerAcceptRejectBeforeTouchEnd)
+{
+ int mode = GetParam();
+ std::string strmode = (mode == XIAcceptTouch) ? "XIAcceptTouch" : "XIRejectTouch";
+
+ XORG_TESTCASE("Register for a touch grab.\n"
+ "Begin touch\n"
+ "Verify begin event is received.\n"
+ "Call XIAllowTouchEvents(i" + strmode + ")\n"
+ "End touch\n"
+ "Verify end event is received at the right time.\n");
+
+ ::Display *dpy = Display();
+ Window root = DefaultRootWindow(dpy);
+
+ XIEventMask mask;
+ mask.deviceid = VIRTUAL_CORE_POINTER_ID;
+ mask.mask_len = XIMaskLen(XI_TouchEnd);
+ mask.mask = new unsigned char[mask.mask_len]();
+ XISetMask(mask.mask, XI_TouchBegin);
+ XISetMask(mask.mask, XI_TouchUpdate);
+ XISetMask(mask.mask, XI_TouchEnd);
+
+ XIGrabModifiers mods = {};
+ mods.modifiers = XIAnyModifier;
+ ASSERT_EQ(Success, XIGrabTouchBegin(dpy, VIRTUAL_CORE_POINTER_ID,
+ root, False, &mask, 1, &mods));
+ delete[] mask.mask;
+
+ dev->Play(RECORDINGS_DIR "tablets/N-Trig-MultiTouch.touch_1_begin.events");
+
+ ASSERT_EVENT(XIDeviceEvent, tbegin, dpy, GenericEvent, xi2_opcode, XI_TouchBegin);
+ XIAllowTouchEvents(dpy, tbegin->deviceid, tbegin->detail, root, mode);
+
+ if (mode == XIAcceptTouch)
+ ASSERT_TRUE(NoEventPending(dpy));
+ else {
+ ASSERT_EVENT(XIDeviceEvent, tend, dpy, GenericEvent, xi2_opcode, XI_TouchEnd);
+ }
+
+ dev->Play(RECORDINGS_DIR "tablets/N-Trig-MultiTouch.touch_1_end.events");
+
+ if (mode == XIAcceptTouch) {
+ ASSERT_EVENT(XIDeviceEvent, tend, dpy, GenericEvent, xi2_opcode, XI_TouchEnd);
+ }
+
+ ASSERT_TRUE(NoEventPending(dpy));
+}
+
TEST_P(TouchGrabTestMultipleModes, ActiveAndPassiveGrab)
{
int mode = GetParam();
diff --git a/tests/server/touch.cpp b/tests/server/touch.cpp
index a2e386f..91b93f5 100644
--- a/tests/server/touch.cpp
+++ b/tests/server/touch.cpp
@@ -114,113 +114,6 @@ TEST_F(TouchTest, TouchEventFlags)
ASSERT_EQ(0, tend->flags & ~XITouchEmulatingPointer);
}
-TEST_F(TouchTest, SingleGrabListenerAcceptAfterTouchEnd)
-{
- XORG_TESTCASE("Register for a touch grab.\n"
- "Begin/end touch\n"
- "Verify both events are received.\n"
- "Call XIAllowTouchEvents\n"
- "Verify no more events waiting.\n");
-
- ::Display *dpy = Display();
- Window root = DefaultRootWindow(dpy);
-
- XIEventMask mask;
- mask.deviceid = VIRTUAL_CORE_POINTER_ID;
- mask.mask_len = XIMaskLen(XI_TouchEnd);
- mask.mask = new unsigned char[mask.mask_len]();
- XISetMask(mask.mask, XI_TouchBegin);
- XISetMask(mask.mask, XI_TouchUpdate);
- XISetMask(mask.mask, XI_TouchEnd);
-
- XIGrabModifiers mods = {};
- mods.modifiers = XIAnyModifier;
- ASSERT_EQ(Success, XIGrabTouchBegin(dpy, VIRTUAL_CORE_POINTER_ID,
- root, False, &mask, 1, &mods));
- delete[] mask.mask;
-
- TouchBegin(100, 100);
- TouchEnd();
-
- ASSERT_EVENT(XIDeviceEvent, tbegin, dpy, GenericEvent, xi2_opcode, XI_TouchBegin);
- ASSERT_EVENT(XIDeviceEvent, tend, dpy, GenericEvent, xi2_opcode, XI_TouchEnd);
- XIAllowTouchEvents(dpy, tbegin->deviceid, tbegin->detail, root, XIAcceptTouch);
-
- ASSERT_TRUE(NoEventPending(dpy));
-}
-
-TEST_F(TouchTest, SingleGrabListenerAcceptBeforeTouchEnd)
-{
- XORG_TESTCASE("Register for a touch grab.\n"
- "Begin touch\n"
- "Verify begin event is received.\n"
- "Call XIAllowTouchEvents(Accept)\n"
- "Verify end event is received.\n");
-
- ::Display *dpy = Display();
- Window root = DefaultRootWindow(dpy);
-
- XIEventMask mask;
- mask.deviceid = VIRTUAL_CORE_POINTER_ID;
- mask.mask_len = XIMaskLen(XI_TouchEnd);
- mask.mask = new unsigned char[mask.mask_len]();
- XISetMask(mask.mask, XI_TouchBegin);
- XISetMask(mask.mask, XI_TouchUpdate);
- XISetMask(mask.mask, XI_TouchEnd);
-
- XIGrabModifiers mods = {};
- mods.modifiers = XIAnyModifier;
- ASSERT_EQ(Success, XIGrabTouchBegin(dpy, VIRTUAL_CORE_POINTER_ID,
- root, False, &mask, 1, &mods));
- delete[] mask.mask;
-
- TouchBegin(100, 100);
-
- ASSERT_EVENT(XIDeviceEvent, tbegin, dpy, GenericEvent, xi2_opcode, XI_TouchBegin);
- XIAllowTouchEvents(dpy, tbegin->deviceid, tbegin->detail, root, XIAcceptTouch);
-
- TouchEnd();
-
- ASSERT_EVENT(XIDeviceEvent, tend, dpy, GenericEvent, xi2_opcode, XI_TouchEnd);
- ASSERT_TRUE(NoEventPending(dpy));
-}
-
-TEST_F(TouchTest, SingleGrabListenerRejectBeforeTouchEnd)
-{
- XORG_TESTCASE("Register for a touch grab.\n"
- "Begin touch\n"
- "Verify begin event is received.\n"
- "Call XIAllowTouchEvents(Reject)\n"
- "Verify end event is received.\n");
-
- ::Display *dpy = Display();
- Window root = DefaultRootWindow(dpy);
-
- XIEventMask mask;
- mask.deviceid = VIRTUAL_CORE_POINTER_ID;
- mask.mask_len = XIMaskLen(XI_TouchEnd);
- mask.mask = new unsigned char[mask.mask_len]();
- XISetMask(mask.mask, XI_TouchBegin);
- XISetMask(mask.mask, XI_TouchUpdate);
- XISetMask(mask.mask, XI_TouchEnd);
-
- XIGrabModifiers mods = {};
- mods.modifiers = XIAnyModifier;
- ASSERT_EQ(Success, XIGrabTouchBegin(dpy, VIRTUAL_CORE_POINTER_ID,
- root, False, &mask, 1, &mods));
- delete[] mask.mask;
-
- TouchBegin(100, 100);
-
- ASSERT_EVENT(XIDeviceEvent, tbegin, dpy, GenericEvent, xi2_opcode, XI_TouchBegin);
- XIAllowTouchEvents(dpy, tbegin->deviceid, tbegin->detail, root, XIRejectTouch);
- ASSERT_EVENT(XIDeviceEvent, tend, dpy, GenericEvent, xi2_opcode, XI_TouchEnd);
-
- TouchEnd();
-
- ASSERT_TRUE(NoEventPending(dpy));
-}
-
/**
* A test fixture for testing touch across XInput 2.x extension versions.
*