diff options
Diffstat (limited to 'tests/auto/compositor/tst_compositor.cpp')
-rw-r--r-- | tests/auto/compositor/tst_compositor.cpp | 23 |
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); |