|
|
|
|
@ -60,6 +60,7 @@ private Q_SLOTS: |
|
|
|
|
void testPointerAxis(); |
|
|
|
|
void testScreenEdge(); |
|
|
|
|
void testEffects(); |
|
|
|
|
void testEffectsKeyboard(); |
|
|
|
|
void testMoveWindow(); |
|
|
|
|
void testPointerShortcut(); |
|
|
|
|
void testAxisShortcut_data(); |
|
|
|
|
@ -87,9 +88,13 @@ public: |
|
|
|
|
void windowInputMouseEvent(QEvent*) override { |
|
|
|
|
emit inputEvent(); |
|
|
|
|
} |
|
|
|
|
void grabbedKeyboardEvent(QKeyEvent *e) override { |
|
|
|
|
emit keyEvent(e->text()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Q_SIGNALS: |
|
|
|
|
void inputEvent(); |
|
|
|
|
void keyEvent(const QString&); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
#define LOCK \ |
|
|
|
|
@ -118,6 +123,12 @@ Q_SIGNALS: |
|
|
|
|
#define RELEASE \ |
|
|
|
|
waylandServer()->backend()->pointerButtonReleased(BTN_LEFT, timestamp++) |
|
|
|
|
|
|
|
|
|
#define KEYPRESS( key ) \ |
|
|
|
|
waylandServer()->backend()->keyboardKeyPressed(key, timestamp++) |
|
|
|
|
|
|
|
|
|
#define KEYRELEASE( key ) \ |
|
|
|
|
waylandServer()->backend()->keyboardKeyReleased(key, timestamp++) |
|
|
|
|
|
|
|
|
|
void LockScreenTest::unlock() |
|
|
|
|
{ |
|
|
|
|
using namespace ScreenLocker; |
|
|
|
|
@ -454,6 +465,44 @@ void LockScreenTest::testEffects() |
|
|
|
|
effects->stopMouseInterception(effect.data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void LockScreenTest::testEffectsKeyboard() |
|
|
|
|
{ |
|
|
|
|
QScopedPointer<HelperEffect> effect(new HelperEffect); |
|
|
|
|
QSignalSpy inputSpy(effect.data(), &HelperEffect::keyEvent); |
|
|
|
|
QVERIFY(inputSpy.isValid()); |
|
|
|
|
effects->grabKeyboard(effect.data()); |
|
|
|
|
|
|
|
|
|
quint32 timestamp = 1; |
|
|
|
|
KEYPRESS(KEY_A); |
|
|
|
|
QCOMPARE(inputSpy.count(), 1); |
|
|
|
|
QCOMPARE(inputSpy.first().first().toString(), QStringLiteral("a")); |
|
|
|
|
KEYRELEASE(KEY_A); |
|
|
|
|
QCOMPARE(inputSpy.count(), 2); |
|
|
|
|
QCOMPARE(inputSpy.first().first().toString(), QStringLiteral("a")); |
|
|
|
|
QCOMPARE(inputSpy.at(1).first().toString(), QStringLiteral("a")); |
|
|
|
|
|
|
|
|
|
LOCK |
|
|
|
|
KEYPRESS(KEY_B); |
|
|
|
|
QCOMPARE(inputSpy.count(), 2); |
|
|
|
|
KEYRELEASE(KEY_B); |
|
|
|
|
QCOMPARE(inputSpy.count(), 2); |
|
|
|
|
|
|
|
|
|
UNLOCK |
|
|
|
|
KEYPRESS(KEY_C); |
|
|
|
|
QCOMPARE(inputSpy.count(), 3); |
|
|
|
|
QCOMPARE(inputSpy.first().first().toString(), QStringLiteral("a")); |
|
|
|
|
QCOMPARE(inputSpy.at(1).first().toString(), QStringLiteral("a")); |
|
|
|
|
QCOMPARE(inputSpy.at(2).first().toString(), QStringLiteral("c")); |
|
|
|
|
KEYRELEASE(KEY_C); |
|
|
|
|
QCOMPARE(inputSpy.count(), 4); |
|
|
|
|
QCOMPARE(inputSpy.first().first().toString(), QStringLiteral("a")); |
|
|
|
|
QCOMPARE(inputSpy.at(1).first().toString(), QStringLiteral("a")); |
|
|
|
|
QCOMPARE(inputSpy.at(2).first().toString(), QStringLiteral("c")); |
|
|
|
|
QCOMPARE(inputSpy.at(3).first().toString(), QStringLiteral("c")); |
|
|
|
|
|
|
|
|
|
effects->ungrabKeyboard(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void LockScreenTest::testMoveWindow() |
|
|
|
|
{ |
|
|
|
|
using namespace KWayland::Client; |
|
|
|
|
|