diff --git a/tests/plugins/MouseKeys/basic/basic.ino b/tests/plugins/MouseKeys/basic/basic.ino new file mode 100644 index 00000000..09df9b29 --- /dev/null +++ b/tests/plugins/MouseKeys/basic/basic.ino @@ -0,0 +1,49 @@ +/* -*- mode: c++ -*- + * Copyright (C) 2022 Keyboard.io, Inc. + * + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ + +#include +#include + +// *INDENT-OFF* +KEYMAPS( + [0] = KEYMAP_STACKED + ( + Key_mouseUp, Key_mouseDn, Key_mouseL, Key_mouseR, ___, ___, ___, + Key_mouseScrollUp, Key_mouseScrollDn, Key_mouseScrollL, Key_mouseScrollR, ___, ___, ___, + Key_mouseBtnL, Key_mouseBtnM, Key_mouseBtnR, ___, ___, ___, + ___, ___, ___, ___, ___, ___, ___, + ___, ___, ___, ___, + ___, + + ___, ___, ___, ___, ___, ___, ___, + ___, ___, ___, ___, ___, ___, ___, + ___, ___, ___, ___, ___, ___, + ___, ___, ___, ___, ___, ___, ___, + ___, ___, ___, ___, + ___ + ), +) +// *INDENT-ON* + +KALEIDOSCOPE_INIT_PLUGINS(MouseKeys); + +void setup() { + Kaleidoscope.setup(); +} + +void loop() { + Kaleidoscope.loop(); +} diff --git a/tests/plugins/MouseKeys/basic/sketch.json b/tests/plugins/MouseKeys/basic/sketch.json new file mode 100644 index 00000000..8cc86922 --- /dev/null +++ b/tests/plugins/MouseKeys/basic/sketch.json @@ -0,0 +1,6 @@ +{ + "cpu": { + "fqbn": "keyboardio:virtual:model01", + "port": "" + } +} diff --git a/tests/plugins/MouseKeys/basic/test.ktest b/tests/plugins/MouseKeys/basic/test.ktest new file mode 100644 index 00000000..577f685d --- /dev/null +++ b/tests/plugins/MouseKeys/basic/test.ktest @@ -0,0 +1,72 @@ +VERSION 1 + +KEYSWITCH MOVE_UP 0 0 +KEYSWITCH MOVE_DOWN 0 1 +KEYSWITCH MOVE_LEFT 0 2 +KEYSWITCH MOVE_RIGHT 0 3 + +KEYSWITCH SCROLL_UP 1 0 +KEYSWITCH SCROLL_DOWN 1 1 +KEYSWITCH SCROLL_LEFT 1 2 +KEYSWITCH SCROLL_RIGHT 1 3 + +KEYSWITCH BUTTON_L 2 0 +KEYSWITCH BUTTON_M 2 1 +KEYSWITCH BUTTON_R 2 2 + +# ============================================================================== +NAME MouseKeys move up + +RUN 3 ms +PRESS MOVE_UP +RUN 1 cycle + +RUN 15 ms +EXPECT mouse-report y=-1 +RUN 1 cycle +EXPECT mouse-report empty + +RUN 15 ms +EXPECT mouse-report y=-1 +RUN 1 cycle +EXPECT mouse-report empty + +RUN 5 ms +RELEASE MOVE_UP +RUN 1 cycle +EXPECT no mouse-report + +RUN 5 ms + +# ============================================================================== +NAME MouseKeys button left + +RUN 4 ms +PRESS BUTTON_L +RUN 1 cycle +EXPECT mouse-report button=L + +RUN 20 ms +RELEASE BUTTON_L +RUN 1 cycle +EXPECT mouse-report empty + +RUN 5 ms + +# ============================================================================== +NAME MouseKeys scroll down + +RUN 4 ms +PRESS SCROLL_UP +RUN 1 cycle +EXPECT mouse-report v=1 + +RUN 50 ms +EXPECT mouse-report v=1 + +RUN 10 ms +RELEASE SCROLL_UP +RUN 1 cycle +EXPECT no mouse-report + +RUN 5 ms