diff options
author | Ran Benita <ran234@gmail.com> | 2013-03-08 16:31:33 +0200 |
---|---|---|
committer | Daniel Stone <daniel@fooishbar.org> | 2013-03-18 22:20:06 +0000 |
commit | 559252a1a8dfd0d7da776709a31bea546abe344f (patch) | |
tree | e7158d02f360b39f76def20a5789d7ce4a85f0ca /test | |
parent | 9f75e0ab2efdc555cf1aa2b7d2bcad1533673a8a (diff) |
keyseq: add a couple of tests
Tests the filter refcounting.
Signed-off-by: Ran Benita <ran234@gmail.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/keyseq.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/keyseq.c b/test/keyseq.c index d99be0e..7f148f7 100644 --- a/test/keyseq.c +++ b/test/keyseq.c @@ -206,6 +206,35 @@ main(void) KEY_LEFTSHIFT, UP, XKB_KEY_Shift_L, NEXT, KEY_O, BOTH, XKB_KEY_o, FINISH)); + /* + * Two key presses from the same key (e.g. if two keyboards use the + * same xkb_state) should only be released after two releases. + */ + assert(test_key_seq(keymap, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_H, BOTH, XKB_KEY_H, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_H, BOTH, XKB_KEY_H, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Shift_L, NEXT, + KEY_H, BOTH, XKB_KEY_H, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Shift_L, NEXT, + KEY_H, BOTH, XKB_KEY_h, FINISH)); + + /* Same as above with locked modifiers. */ + assert(test_key_seq(keymap, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_CAPSLOCK, DOWN, XKB_KEY_Caps_Lock, NEXT, + KEY_H, BOTH, XKB_KEY_H, NEXT, + KEY_CAPSLOCK, DOWN, XKB_KEY_Caps_Lock, NEXT, + KEY_H, BOTH, XKB_KEY_H, NEXT, + KEY_CAPSLOCK, UP, XKB_KEY_Caps_Lock, NEXT, + KEY_H, BOTH, XKB_KEY_H, NEXT, + KEY_CAPSLOCK, UP, XKB_KEY_Caps_Lock, NEXT, + KEY_H, BOTH, XKB_KEY_H, NEXT, + KEY_CAPSLOCK, BOTH, XKB_KEY_Caps_Lock, NEXT, + KEY_H, BOTH, XKB_KEY_h, FINISH)); + /* Group switching / locking. */ assert(test_key_seq(keymap, KEY_H, BOTH, XKB_KEY_h, NEXT, |