summaryrefslogtreecommitdiffstats
path: root/tests/auto/compositor/tst_compositor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/compositor/tst_compositor.cpp')
-rw-r--r--tests/auto/compositor/tst_compositor.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/auto/compositor/tst_compositor.cpp b/tests/auto/compositor/tst_compositor.cpp
index 99f08a4e5..803f280bc 100644
--- a/tests/auto/compositor/tst_compositor.cpp
+++ b/tests/auto/compositor/tst_compositor.cpp
@@ -46,6 +46,8 @@
#include <QtTest/QtTest>
+#include <QtCompositor/private/qwlinputdevice_p.h>
+
class tst_WaylandCompositor : public QObject
{
Q_OBJECT
@@ -56,6 +58,7 @@ public:
}
private slots:
+ void inputDeviceCapabilities();
void singleClient();
void multipleClients();
void geometry();
@@ -240,5 +243,25 @@ void tst_WaylandCompositor::frameCallback()
wl_surface_destroy(surface);
}
+void tst_WaylandCompositor::inputDeviceCapabilities()
+{
+ TestCompositor compositor;
+ QtWayland::InputDevice dev(NULL, compositor.handle(), QWaylandInputDevice::Pointer);
+
+ QTRY_VERIFY(dev.pointerDevice());
+ QTRY_VERIFY(!dev.keyboardDevice());
+ QTRY_VERIFY(!dev.touchDevice());
+
+ dev.setCapabilities(QWaylandInputDevice::Keyboard | QWaylandInputDevice::Touch);
+ QTRY_VERIFY(!dev.pointerDevice());
+ QTRY_VERIFY(dev.keyboardDevice());
+ QTRY_VERIFY(dev.touchDevice());
+
+ // Test that existing devices do not change when another is removed
+ QtWayland::Keyboard *k = dev.keyboardDevice();
+ dev.setCapabilities(QWaylandInputDevice::Keyboard);
+ QTRY_COMPARE(k, dev.keyboardDevice());
+}
+
#include <tst_compositor.moc>
QTEST_MAIN(tst_WaylandCompositor);