diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-03-16 20:53:33 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-03-16 21:03:24 +0530 |
| commit | dd6590a0fda614fa2fb0ca9e4ad11b086393372e (patch) | |
| tree | 709c9abb4ff2b24d301e40438adc03f66bffdb83 /spec/KeySeqParserSpec.cpp | |
| parent | a004334349c724dc5d3b5695dc575c9f1a3744ec (diff) | |
| download | null-browser-dd6590a0fda614fa2fb0ca9e4ad11b086393372e.tar.gz null-browser-dd6590a0fda614fa2fb0ca9e4ad11b086393372e.zip | |
Add simple key sequence parser
Diffstat (limited to 'spec/KeySeqParserSpec.cpp')
| -rw-r--r-- | spec/KeySeqParserSpec.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/spec/KeySeqParserSpec.cpp b/spec/KeySeqParserSpec.cpp new file mode 100644 index 0000000..a29c97e --- /dev/null +++ b/spec/KeySeqParserSpec.cpp @@ -0,0 +1,52 @@ +#include "testUtils.h" +#include <QtCore/qnamespace.h> +#include <QtCore> + +#include "keymap/KeySeqParser.hpp" + +class KeySeqParserSpec : public QObject { + Q_OBJECT + +private slots: + void testThings() { + context("when mix of upper/lower cases"); + it("parses keys ignoring the casing") { + KeySeqParser parser; + + QList<KeyChord> keys = parser.parse("<C-tab><c-tAb><c-Tab>"); + + QList<KeyChord> expectedKeys = { + {.mod = Qt::ControlModifier, .key = Qt::Key_Tab}, + {.mod = Qt::ControlModifier, .key = Qt::Key_Tab}, + {.mod = Qt::ControlModifier, .key = Qt::Key_Tab}, + }; + QCOMPARE(keys, expectedKeys); + } + + context("when input contains individual keys"); + it("parses the characters") { + KeySeqParser parser; + + QList<KeyChord> keys = parser.parse("ab<c><s><sPace><tab><esC>z"); + + for (auto &k : keys) { + qDebug() << k.key << k.mod; + } + + QList<KeyChord> expectedKeys = { + {.mod = Qt::NoModifier, .key = Qt::Key_A}, + {.mod = Qt::NoModifier, .key = Qt::Key_B}, + {.mod = Qt::NoModifier, .key = Qt::Key_C}, + {.mod = Qt::NoModifier, .key = Qt::Key_S}, + {.mod = Qt::NoModifier, .key = Qt::Key_Space}, + {.mod = Qt::NoModifier, .key = Qt::Key_Tab}, + {.mod = Qt::NoModifier, .key = Qt::Key_Escape}, + {.mod = Qt::NoModifier, .key = Qt::Key_Z}, + }; + QCOMPARE(keys, expectedKeys); + } + } +}; + +QTEST_REGISTER(KeySeqParserSpec) +#include "KeySeqParserSpec.moc" |
