summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRan Benita <ran234@gmail.com>2013-03-08 16:31:33 +0200
committerDaniel Stone <daniel@fooishbar.org>2013-03-18 22:20:06 +0000
commit559252a1a8dfd0d7da776709a31bea546abe344f (patch)
treee7158d02f360b39f76def20a5789d7ce4a85f0ca
parent9f75e0ab2efdc555cf1aa2b7d2bcad1533673a8a (diff)
keyseq: add a couple of tests
Tests the filter refcounting. Signed-off-by: Ran Benita <ran234@gmail.com>
-rw-r--r--test/keyseq.c29
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,