diff options
author | Jonathan Rascher <[email protected]> | 2021-06-09 18:55:57 -0500 |
---|---|---|
committer | Pete Johanson <[email protected]> | 2021-11-15 05:49:23 -0500 |
commit | df110beac4c028ac658eb58925dc79176e0b334c (patch) | |
tree | 4a9274dcb5d24e7e171025651d87c7e77cf64c13 | |
parent | cbf6e28e34444b584b9dbaf97d7d40f587d22e82 (diff) | |
download | zmk-df110beac4c028ac658eb58925dc79176e0b334c.tar.gz zmk-df110beac4c028ac658eb58925dc79176e0b334c.zip |
test(conditional-layers): Add basic unit tests
6 files changed, 136 insertions, 0 deletions
diff --git a/app/tests/conditional-layer/quad-layer/events.patterns b/app/tests/conditional-layer/quad-layer/events.patterns new file mode 100644 index 0000000000..14ded7959f --- /dev/null +++ b/app/tests/conditional-layer/quad-layer/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/quad-layer/keycode_events.snapshot b/app/tests/conditional-layer/quad-layer/keycode_events.snapshot new file mode 100644 index 0000000000..fb54a6caa3 --- /dev/null +++ b/app/tests/conditional-layer/quad-layer/keycode_events.snapshot @@ -0,0 +1,10 @@ +mo_pressed: position 2 layer 1 +mo_pressed: position 3 layer 2 +mo_pressed: position 1 layer 3 +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_released: position 1 layer 3 +cl_deactivate: layer 4 +mo_released: position 3 layer 2 +mo_released: position 2 layer 1 diff --git a/app/tests/conditional-layer/quad-layer/native_posix.keymap b/app/tests/conditional-layer/quad-layer/native_posix.keymap new file mode 100644 index 0000000000..300b1f75f2 --- /dev/null +++ b/app/tests/conditional-layer/quad-layer/native_posix.keymap @@ -0,0 +1,60 @@ +#include <behaviors.dtsi> +#include <dt-bindings/zmk/keys.h> +#include <dt-bindings/zmk/kscan_mock.h> + +/ { + conditional_layers { + compatible = "zmk,conditional-layers"; + quad_layer { + if-layers = <1 2 3>; + then-layer = <4>; + }; + }; + + 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 + >; + }; + }; +}; + +&kscan { + events = < + ZMK_MOCK_PRESS(1,0,10) + ZMK_MOCK_PRESS(1,1,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_RELEASE(1,1,10) + ZMK_MOCK_RELEASE(1,0,10) + >; +}; diff --git a/app/tests/conditional-layer/tri-layer/events.patterns b/app/tests/conditional-layer/tri-layer/events.patterns new file mode 100644 index 0000000000..14ded7959f --- /dev/null +++ b/app/tests/conditional-layer/tri-layer/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/tri-layer/keycode_events.snapshot b/app/tests/conditional-layer/tri-layer/keycode_events.snapshot new file mode 100644 index 0000000000..b23e61b2dd --- /dev/null +++ b/app/tests/conditional-layer/tri-layer/keycode_events.snapshot @@ -0,0 +1,8 @@ +mo_pressed: position 2 layer 1 +mo_pressed: position 3 layer 2 +cl_activate: layer 3 +kp_pressed: usage_page 0x07 keycode 0x0a implicit_mods 0x00 explicit_mods 0x00 +kp_released: usage_page 0x07 keycode 0x0a implicit_mods 0x00 explicit_mods 0x00 +mo_released: position 3 layer 2 +cl_deactivate: layer 3 +mo_released: position 2 layer 1 diff --git a/app/tests/conditional-layer/tri-layer/native_posix.keymap b/app/tests/conditional-layer/tri-layer/native_posix.keymap new file mode 100644 index 0000000000..150d6dd1ad --- /dev/null +++ b/app/tests/conditional-layer/tri-layer/native_posix.keymap @@ -0,0 +1,52 @@ +#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 = <3>; + }; + }; + + keymap { + compatible = "zmk,keymap"; + default_layer { + bindings = < + &kp A &kp B + &mo 1 &mo 2 + >; + }; + layer_1 { + bindings = < + &kp C &kp D + &trans &trans + >; + }; + layer_2 { + bindings = < + &kp E &kp F + &trans &trans + >; + }; + layer_3 { + bindings = < + &kp G &kp H + &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_RELEASE(1,1,10) + ZMK_MOCK_RELEASE(1,0,10) + >; +}; |