#include "input/DeadKeys.h" #include #include using namespace Qt::StringLiterals; class TestDeadKeys : public QObject { Q_OBJECT private Q_SLOTS: void composesWithTheNextLetter() { DeadKeys dead(u"en_US.UTF-8"_s); QVERIFY(!dead.isPending()); dead.press(XKB_KEY_dead_acute); QVERIFY(dead.isPending()); QCOMPARE(dead.compose(u"e"_s), u"é"); QVERIFY(!dead.isPending()); dead.press(XKB_KEY_dead_caron); QCOMPARE(dead.compose(u"C"_s), u"Č"); } void typesAccentAndLetterWhenNothingComposes() { DeadKeys dead(u"en_US.UTF-8"_s); dead.press(XKB_KEY_dead_caron); QCOMPARE(dead.compose(u"q"_s), u"ˇq"); } void cancelForgetsTheAccent() { DeadKeys dead(u"en_US.UTF-8"_s); dead.press(XKB_KEY_dead_acute); dead.cancel(); QVERIFY(!dead.isPending()); } }; QTEST_GUILESS_MAIN(TestDeadKeys) #include "tst_deadkeys.moc"