summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Rascher <jon@bcat.name>2021-10-02 00:02:51 -0400
committerPete Johanson <peter@peterjohanson.com>2021-11-15 05:49:23 -0500
commita908396013f4af15dd906cc882e23baa121bf89c (patch)
treec00dd1e05e585d938a791d738b914b4d4aa5473d
parentdf110beac4c028ac658eb58925dc79176e0b334c (diff)
test(conditional-layers): Add multi-config tests
-rw-r--r--app/tests/conditional-layer/multiple-configs/events.patterns3
-rw-r--r--app/tests/conditional-layer/multiple-configs/keycode_events.snapshot16
-rw-r--r--app/tests/conditional-layer/multiple-configs/native_posix.keymap74
3 files changed, 93 insertions, 0 deletions
diff --git a/app/tests/conditional-layer/multiple-configs/events.patterns b/app/tests/conditional-layer/multiple-configs/events.patterns
new file mode 100644
index 0000000..14ded79
--- /dev/null
+++ b/app/tests/conditional-layer/multiple-configs/events.patterns
@@ -0,0 +1,3 @@
+s/.*hid_listener_keycode/kp/p
+s/.*mo_keymap_binding/mo/p
+s/.*conditional_layer/cl/p
diff --git a/app/tests/conditional-layer/multiple-configs/keycode_events.snapshot b/app/tests/conditional-layer/multiple-configs/keycode_events.snapshot
new file mode 100644
index 0000000..a076a63
--- /dev/null
+++ b/app/tests/conditional-layer/multiple-configs/keycode_events.snapshot
@@ -0,0 +1,16 @@
+mo_pressed: position 2 layer 1
+mo_pressed: position 3 layer 2
+cl_activate: layer 4
+kp_pressed: usage_page 0x07 keycode 0x08 implicit_mods 0x00 explicit_mods 0x00
+kp_released: usage_page 0x07 keycode 0x08 implicit_mods 0x00 explicit_mods 0x00
+mo_pressed: position 1 layer 3
+cl_activate: layer 5
+kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
+kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
+mo_released: position 1 layer 3
+cl_deactivate: layer 5
+kp_pressed: usage_page 0x07 keycode 0x08 implicit_mods 0x00 explicit_mods 0x00
+kp_released: usage_page 0x07 keycode 0x08 implicit_mods 0x00 explicit_mods 0x00
+mo_released: position 3 layer 2
+cl_deactivate: layer 4
+mo_released: position 2 layer 1
diff --git a/app/tests/conditional-layer/multiple-configs/native_posix.keymap b/app/tests/conditional-layer/multiple-configs/native_posix.keymap
new file mode 100644
index 0000000..8290649
--- /dev/null
+++ b/app/tests/conditional-layer/multiple-configs/native_posix.keymap
@@ -0,0 +1,74 @@
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/keys.h>
+#include <dt-bindings/zmk/kscan_mock.h>
+
+/ {
+ conditional_layers {
+ compatible = "zmk,conditional-layers";
+ tri_layer {
+ if-layers = <1 2>;
+ then-layer = <4>;
+ };
+ quad_layer {
+ if-layers = <1 2 3>;
+ then-layer = <5>;
+ };
+ };
+
+ keymap {
+ compatible = "zmk,keymap";
+ default_layer {
+ bindings = <
+ &kp A &mo 3
+ &mo 1 &mo 2
+ >;
+ };
+ layer_1 {
+ bindings = <
+ &kp B &trans
+ &trans &trans
+ >;
+ };
+ layer_2 {
+ bindings = <
+ &kp C &trans
+ &trans &trans
+ >;
+ };
+ layer_3 {
+ bindings = <
+ &kp D &trans
+ &trans &trans
+ >;
+ };
+ layer_4 {
+ bindings = <
+ &kp E &trans
+ &trans &trans
+ >;
+ };
+ layer_5 {
+ bindings = <
+ &kp F &trans
+ &trans &trans
+ >;
+ };
+ };
+};
+
+&kscan {
+ events = <
+ ZMK_MOCK_PRESS(1,0,10)
+ ZMK_MOCK_PRESS(1,1,10)
+ ZMK_MOCK_PRESS(0,0,10)
+ ZMK_MOCK_RELEASE(0,0,10)
+ ZMK_MOCK_PRESS(0,1,10)
+ ZMK_MOCK_PRESS(0,0,10)
+ ZMK_MOCK_RELEASE(0,0,10)
+ ZMK_MOCK_RELEASE(0,1,10)
+ ZMK_MOCK_PRESS(0,0,10)
+ ZMK_MOCK_RELEASE(0,0,10)
+ ZMK_MOCK_RELEASE(1,1,10)
+ ZMK_MOCK_RELEASE(1,0,10)
+ >;
+};