You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Kaleidoscope/tests/features/layers/use-cases/test.ktest

1219 lines
25 KiB

VERSION 1
KEYSWITCH L0 0 0
KEYSWITCH L1 0 1
KEYSWITCH L2 0 2
KEYSWITCH L01 1 0
KEYSWITCH L02 1 1
KEYSWITCH L12 1 2
KEYSWITCH LAYER_SHIFT_0 2 0
KEYSWITCH LAYER_SHIFT_1 2 1
KEYSWITCH LAYER_SHIFT_2 2 2
KEYSWITCH OTHER_SHIFT_0 2 0
KEYSWITCH OTHER_SHIFT_1 2 1
KEYSWITCH OTHER_SHIFT_2 2 2
KEYSWITCH LAYER_LOCK_0 3 0
KEYSWITCH LAYER_LOCK_1 3 1
KEYSWITCH LAYER_LOCK_2 3 2
KEYSWITCH LAYER_MOVE_0 0 7
KEYSWITCH LAYER_MOVE_1 1 7
KEYSWITCH LAYER_MOVE_2 2 7
KEYSWITCH LAYER_SHIFT_NEXT 0 10
KEYSWITCH LAYER_SHIFT_PREV 0 11
# ==============================================================================
NAME Startup layer state
# ............................................................
# verify layer 0 active
RUN 4 ms
PRESS L0
RUN 1 cycle
EXPECT keyboard-report Key_0 # Report should contain only `0`
RUN 4 ms
RELEASE L0
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ............................................................
# verify layer 1 inactive
RUN 4 ms
PRESS L1
RUN 1 cycle
EXPECT no keyboard-report
RUN 4 ms
RELEASE L1
RUN 1 cycle
EXPECT no keyboard-report
# ............................................................
# verify layer 2 inactive
RUN 4 ms
PRESS L2
RUN 1 cycle
EXPECT no keyboard-report
RUN 4 ms
RELEASE L2
RUN 1 cycle
EXPECT no keyboard-report
# ----------------------------------------------------------------------
RUN 5 ms
# ==============================================================================
NAME Layer shift 1
# ----------------------------------------------------------------------
# press & hold `ShiftToLayer(1)`
RUN 4 ms
PRESS LAYER_SHIFT_1
RUN 1 cycle
# ............................................................
# verify layer 1 active
RUN 4 ms
PRESS L1
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L1
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ............................................................
# verify layer 0 active
RUN 4 ms
PRESS L0
RUN 1 cycle
EXPECT keyboard-report Key_0 # Report should contain only `0`
RUN 4 ms
RELEASE L0
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ............................................................
# verify layer 1 on top
RUN 4 ms
PRESS L01
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L01
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# release `ShiftToLayer(1)`
RUN 4 ms
RELEASE LAYER_SHIFT_1
RUN 1 cycle
# ............................................................
# verify layer 1 inactive
RUN 4 ms
PRESS L1
RUN 1 cycle
EXPECT no keyboard-report
RUN 4 ms
RELEASE L1
RUN 1 cycle
EXPECT no keyboard-report
# ----------------------------------------------------------------------
RUN 5 ms
# ==============================================================================
NAME Layer lock 1
# ----------------------------------------------------------------------
# tap `LockLayer(1)`
RUN 4 ms
PRESS LAYER_LOCK_1
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_1
RUN 1 cycle
# ............................................................
# verify layer 1 active
RUN 4 ms
PRESS L1
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L1
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ............................................................
# verify layer 0 active
RUN 4 ms
PRESS L0
RUN 1 cycle
EXPECT keyboard-report Key_0 # Report should contain only `0`
RUN 4 ms
RELEASE L0
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ............................................................
# verify layer 1 on top
RUN 4 ms
PRESS L01
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L01
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# tap `LockLayer(1)`
RUN 4 ms
PRESS LAYER_LOCK_1
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_1
RUN 1 cycle
# ............................................................
# verify layer 1 inactive
RUN 4 ms
PRESS L1
RUN 1 cycle
EXPECT no keyboard-report
RUN 4 ms
RELEASE L1
RUN 1 cycle
EXPECT no keyboard-report
# ----------------------------------------------------------------------
RUN 5 ms
# ==============================================================================
NAME Reset from layer shift
# ----------------------------------------------------------------------
# press & hold `ShiftToLayer(1)`
RUN 4 ms
PRESS LAYER_SHIFT_1
RUN 1 cycle
# ----------------------------------------------------------------------
# tap `MoveToLayer(0)` (reset layer state)
RUN 4 ms
PRESS LAYER_MOVE_0
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_MOVE_0
RUN 1 cycle
# ............................................................
# verify layer 1 inactive
RUN 4 ms
PRESS L1
RUN 1 cycle
EXPECT no keyboard-report
RUN 4 ms
RELEASE L1
RUN 1 cycle
EXPECT no keyboard-report
# ----------------------------------------------------------------------
# release `ShiftToLayer(1)`
RUN 4 ms
RELEASE LAYER_SHIFT_1
RUN 1 cycle
# ----------------------------------------------------------------------
RUN 5 ms
# ==============================================================================
NAME Layer moves
# ----------------------------------------------------------------------
# tap `MoveToLayer(1)`
RUN 4 ms
PRESS LAYER_MOVE_1
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_MOVE_1
RUN 1 cycle
# ............................................................
# verify layer 1 on top of layer 0
RUN 4 ms
PRESS L01
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L01
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# tap `MoveToLayer(2)`
RUN 4 ms
PRESS LAYER_MOVE_2
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_MOVE_2
RUN 1 cycle
# ............................................................
# verify layer 1 inactive
RUN 4 ms
PRESS L1
RUN 1 cycle
EXPECT no keyboard-report
RUN 4 ms
RELEASE L1
RUN 1 cycle
EXPECT no keyboard-report
# ............................................................
# verify layer 2 active
RUN 4 ms
PRESS L2
RUN 1 cycle
EXPECT keyboard-report Key_2 # Report should contain only `2`
RUN 4 ms
RELEASE L2
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ............................................................
# verify layer 2 on top of layer 0
RUN 4 ms
PRESS L02
RUN 1 cycle
EXPECT keyboard-report Key_2 # Report should contain only `2`
RUN 4 ms
RELEASE L02
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# tap `MoveToLayer(0)`
RUN 4 ms
PRESS LAYER_MOVE_0
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_MOVE_0
RUN 1 cycle
# ............................................................
# verify layer 1 inactive
RUN 4 ms
PRESS L1
RUN 1 cycle
EXPECT no keyboard-report
RUN 4 ms
RELEASE L1
RUN 1 cycle
EXPECT no keyboard-report
# ............................................................
# verify layer 2 inactive
RUN 4 ms
PRESS L2
RUN 1 cycle
EXPECT no keyboard-report
RUN 4 ms
RELEASE L2
RUN 1 cycle
EXPECT no keyboard-report
# ----------------------------------------------------------------------
RUN 5 ms
# ==============================================================================
NAME Layer lock promotion
# ----------------------------------------------------------------------
# tap `LockLayer(1)`
RUN 4 ms
PRESS LAYER_LOCK_1
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_1
RUN 1 cycle
# ----------------------------------------------------------------------
# tap `LockLayer(2)`
RUN 4 ms
PRESS LAYER_LOCK_2
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_2
RUN 1 cycle
# ............................................................
# verify layer 2 on top of layer 1
RUN 4 ms
PRESS L12
RUN 1 cycle
EXPECT keyboard-report Key_2 # Report should contain only `2`
RUN 4 ms
RELEASE L12
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ............................................................
# verify layer 1 active
RUN 4 ms
PRESS L1
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L1
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# tap `LockLayer(1)`
RUN 4 ms
PRESS LAYER_LOCK_1
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_1
RUN 1 cycle
# ............................................................
# verify layer 1 on top of layer 2
RUN 4 ms
PRESS L12
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L12
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ............................................................
# verify layer 2 active
RUN 4 ms
PRESS L2
RUN 1 cycle
EXPECT keyboard-report Key_2 # Report should contain only `2`
RUN 4 ms
RELEASE L2
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# tap `LockLayer(2)`
RUN 4 ms
PRESS LAYER_LOCK_2
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_2
RUN 1 cycle
# ............................................................
# verify layer 2 on top of layer 1
RUN 4 ms
PRESS L12
RUN 1 cycle
EXPECT keyboard-report Key_2 # Report should contain only `2`
RUN 4 ms
RELEASE L12
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ............................................................
# verify layer 1 active
RUN 4 ms
PRESS L1
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L1
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# tap `MoveToLayer(0)`
RUN 4 ms
PRESS LAYER_MOVE_0
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_MOVE_0
RUN 1 cycle
# ............................................................
# verify layer 1 inactive
RUN 4 ms
PRESS L1
RUN 1 cycle
EXPECT no keyboard-report
RUN 4 ms
RELEASE L1
RUN 1 cycle
EXPECT no keyboard-report
# ............................................................
# verify layer 2 inactive
RUN 4 ms
PRESS L2
RUN 1 cycle
EXPECT no keyboard-report
RUN 4 ms
RELEASE L2
RUN 1 cycle
EXPECT no keyboard-report
# ----------------------------------------------------------------------
RUN 5 ms
# ==============================================================================
NAME Layer lock promote base layer
# ----------------------------------------------------------------------
# tap `LockLayer(1)`
RUN 4 ms
PRESS LAYER_LOCK_1
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_1
RUN 1 cycle
# ----------------------------------------------------------------------
# tap `LockLayer(0)`
RUN 4 ms
PRESS LAYER_LOCK_0
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_0
RUN 1 cycle
# ............................................................
# verify layer 0 on top of layer 1
RUN 4 ms
PRESS L01
RUN 1 cycle
EXPECT keyboard-report Key_0 # Report should contain only `0`
RUN 4 ms
RELEASE L01
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# tap `MoveToLayer(0)`
RUN 4 ms
PRESS LAYER_MOVE_0
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_MOVE_0
RUN 1 cycle
# ----------------------------------------------------------------------
RUN 5 ms
# ==============================================================================
NAME Scenario A
# ----------------------------------------------------------------------
# press & hold `ShiftToLayer(1)`
RUN 4 ms
PRESS LAYER_SHIFT_1
RUN 1 cycle
# ----------------------------------------------------------------------
# tap `LockLayer(2)`
RUN 4 ms
PRESS LAYER_LOCK_2
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_2
RUN 1 cycle
# ............................................................
# verify layer 2 on top of layer 1
RUN 4 ms
PRESS L12
RUN 1 cycle
EXPECT keyboard-report Key_2 # Report should contain only `2`
RUN 4 ms
RELEASE L12
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# tap `LockLayer(2)`
RUN 4 ms
PRESS LAYER_LOCK_2
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_2
RUN 1 cycle
# ............................................................
# verify layer 1 on top of layer 0
RUN 4 ms
PRESS L01
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L01
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ............................................................
# verify layer 2 inactive
RUN 4 ms
PRESS L2
RUN 1 cycle
EXPECT no keyboard-report
RUN 4 ms
RELEASE L2
RUN 1 cycle
EXPECT no keyboard-report
# ----------------------------------------------------------------------
# release `ShiftToLayer(1)`
RUN 4 ms
RELEASE LAYER_SHIFT_1
RUN 1 cycle
# ............................................................
# verify layer 1 inactive
RUN 4 ms
PRESS L1
RUN 1 cycle
EXPECT no keyboard-report
RUN 4 ms
RELEASE L1
RUN 1 cycle
EXPECT no keyboard-report
# ----------------------------------------------------------------------
RUN 5 ms
# ==============================================================================
NAME Scenario B
# ----------------------------------------------------------------------
# press & hold `ShiftToLayer(1)`
RUN 4 ms
PRESS LAYER_SHIFT_1
RUN 1 cycle
# ----------------------------------------------------------------------
# tap `LockLayer(1)`
RUN 4 ms
PRESS LAYER_LOCK_1
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_1
RUN 1 cycle
# ............................................................
# verify layer 1 on top of layer 0
RUN 4 ms
PRESS L01
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L01
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# release `ShiftToLayer(1)`
RUN 4 ms
RELEASE LAYER_SHIFT_1
RUN 1 cycle
# ............................................................
# verify layer 1 on top of layer 0
RUN 4 ms
PRESS L01
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L01
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# tap `MoveToLayer(0)` (reset layer state)
RUN 4 ms
PRESS LAYER_MOVE_0
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_MOVE_0
RUN 1 cycle
# ----------------------------------------------------------------------
RUN 5 ms
# ==============================================================================
NAME Scenario C
# ----------------------------------------------------------------------
# press & hold `ShiftToLayer(1)`
RUN 4 ms
PRESS LAYER_SHIFT_1
RUN 1 cycle
# ----------------------------------------------------------------------
# tap `LockLayer(1)`
RUN 4 ms
PRESS LAYER_LOCK_1
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_1
RUN 1 cycle
# ----------------------------------------------------------------------
# tap `LockLayer(1)`
RUN 4 ms
PRESS LAYER_LOCK_1
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_1
RUN 1 cycle
# ............................................................
# verify layer 1 on top of layer 0
RUN 4 ms
PRESS L01
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L01
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# release `ShiftToLayer(1)`
RUN 4 ms
RELEASE LAYER_SHIFT_1
RUN 1 cycle
# ----------------------------------------------------------------------
RUN 5 ms
# ==============================================================================
NAME Scenario D
# ----------------------------------------------------------------------
# tap `LockLayer(1)`
RUN 4 ms
PRESS LAYER_LOCK_1
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_1
RUN 1 cycle
# ----------------------------------------------------------------------
# tap `LockLayer(2)`
RUN 4 ms
PRESS LAYER_LOCK_2
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_2
RUN 1 cycle
# ----------------------------------------------------------------------
# tap `LockLayer(1)`
RUN 4 ms
PRESS LAYER_LOCK_1
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_1
RUN 1 cycle
# ............................................................
# verify layer 1 on top of layer 2
RUN 4 ms
PRESS L12
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L12
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ............................................................
# verify layer 2 active
RUN 4 ms
PRESS L2
RUN 1 cycle
EXPECT keyboard-report Key_2 # Report should contain only `2`
RUN 4 ms
RELEASE L2
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# tap `MoveToLayer(0)` (reset layer state)
RUN 4 ms
PRESS LAYER_MOVE_0
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_MOVE_0
RUN 1 cycle
# ----------------------------------------------------------------------
RUN 5 ms
# ==============================================================================
NAME Scenario E
# ----------------------------------------------------------------------
# tap `LockLayer(1)`
RUN 4 ms
PRESS LAYER_LOCK_1
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_1
RUN 1 cycle
# ----------------------------------------------------------------------
# tap `LockLayer(2)`
RUN 4 ms
PRESS LAYER_LOCK_2
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_2
RUN 1 cycle
# ----------------------------------------------------------------------
# press & hold `ShiftToLayer(1)`
RUN 4 ms
PRESS LAYER_SHIFT_1
RUN 1 cycle
# ............................................................
# verify layer 1 on top of layer 2
RUN 4 ms
PRESS L12
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L12
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# release `ShiftToLayer(1)`
RUN 4 ms
RELEASE LAYER_SHIFT_1
RUN 1 cycle
# ............................................................
# verify layer 2 on top of layer 1
RUN 4 ms
PRESS L12
RUN 1 cycle
EXPECT keyboard-report Key_2 # Report should contain only `2`
RUN 4 ms
RELEASE L12
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ............................................................
# verify layer 1 active
RUN 4 ms
PRESS L1
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L1
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# tap `LockLayer(2)`
RUN 4 ms
PRESS LAYER_LOCK_2
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_2
RUN 1 cycle
# ............................................................
# verify layer 1 active
RUN 4 ms
PRESS L1
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L1
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# tap `MoveToLayer(0)` (reset layer state)
RUN 4 ms
PRESS LAYER_MOVE_0
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_MOVE_0
RUN 1 cycle
# ----------------------------------------------------------------------
RUN 5 ms
# ==============================================================================
NAME Scenario F
# ----------------------------------------------------------------------
# tap `LockLayer(1)`
RUN 4 ms
PRESS LAYER_LOCK_1
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_1
RUN 1 cycle
# ----------------------------------------------------------------------
# tap `LockLayer(2)`
RUN 4 ms
PRESS LAYER_LOCK_2
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_2
RUN 1 cycle
# ----------------------------------------------------------------------
# press & hold `ShiftToLayer(1)`
RUN 4 ms
PRESS LAYER_SHIFT_1
RUN 1 cycle
# ----------------------------------------------------------------------
# tap `LockLayer(1)`
RUN 4 ms
PRESS LAYER_LOCK_1
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_1
RUN 1 cycle
# ............................................................
# verify layer 1 on top of layer 2
RUN 4 ms
PRESS L12
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L12
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# release `ShiftToLayer(1)`
RUN 4 ms
RELEASE LAYER_SHIFT_1
RUN 1 cycle
# ............................................................
# verify layer 1 on top of layer 2
RUN 4 ms
PRESS L12
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L12
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ............................................................
# verify layer 2 on top of layer 0
RUN 4 ms
PRESS L02
RUN 1 cycle
EXPECT keyboard-report Key_2 # Report should contain only `2`
RUN 4 ms
RELEASE L02
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# tap `MoveToLayer(0)` (reset layer state)
RUN 4 ms
PRESS LAYER_MOVE_0
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_MOVE_0
RUN 1 cycle
# ----------------------------------------------------------------------
RUN 5 ms
# ==============================================================================
NAME Scenario G
# ----------------------------------------------------------------------
# press & hold `ShiftToLayer(1)`
RUN 4 ms
PRESS LAYER_SHIFT_1
RUN 1 cycle
# ----------------------------------------------------------------------
# tap `LockLayer(2)`
RUN 4 ms
PRESS LAYER_LOCK_2
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_2
RUN 1 cycle
# ----------------------------------------------------------------------
# tap `LockLayer(1)`
RUN 4 ms
PRESS LAYER_LOCK_1
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_1
RUN 1 cycle
# ----------------------------------------------------------------------
# release `ShiftToLayer(1)`
RUN 4 ms
RELEASE LAYER_SHIFT_1
RUN 1 cycle
# ............................................................
# verify layer 1 on top of layer 2
RUN 4 ms
PRESS L12
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L12
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ............................................................
# verify layer 2 on top of layer 0
RUN 4 ms
PRESS L02
RUN 1 cycle
EXPECT keyboard-report Key_2 # Report should contain only `2`
RUN 4 ms
RELEASE L02
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# tap `MoveToLayer(0)` (reset layer state)
RUN 4 ms
PRESS LAYER_MOVE_0
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_MOVE_0
RUN 1 cycle
# ----------------------------------------------------------------------
RUN 5 ms
# ==============================================================================
NAME layer shift next
# ----------------------------------------------------------------------
# press & hold `Key_KeymapNext_Momentary`
RUN 4 ms
PRESS LAYER_SHIFT_NEXT
RUN 1 cycle
# ............................................................
# verify layer 1 on top of layer 0
RUN 4 ms
PRESS L01
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L01
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# release `Key_KeymapNext_Momentary`
RUN 4 ms
RELEASE LAYER_SHIFT_NEXT
RUN 1 cycle
# ............................................................
# verify layer 1 inactive
RUN 4 ms
PRESS L1
RUN 1 cycle
EXPECT no keyboard-report
RUN 4 ms
RELEASE L1
RUN 1 cycle
EXPECT no keyboard-report
# ----------------------------------------------------------------------
RUN 5 ms
# ==============================================================================
NAME layer shift previous
# ----------------------------------------------------------------------
# tap `LockLayer(2)`
RUN 4 ms
PRESS LAYER_LOCK_2
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_LOCK_2
RUN 1 cycle
# ----------------------------------------------------------------------
# press & hold `Key_KeymapPrevious_Momentary`
RUN 4 ms
PRESS LAYER_SHIFT_PREV
RUN 1 cycle
# ............................................................
# verify layer 1 on top of layer 2
RUN 4 ms
PRESS L12
RUN 1 cycle
EXPECT keyboard-report Key_1 # Report should contain only `1`
RUN 4 ms
RELEASE L12
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# release `Key_KeymapPrevious_Momentary`
RUN 4 ms
RELEASE LAYER_SHIFT_PREV
RUN 1 cycle
# ............................................................
# verify layer 2 on top of layer 0
RUN 4 ms
PRESS L02
RUN 1 cycle
EXPECT keyboard-report Key_2 # Report should contain only `2`
RUN 4 ms
RELEASE L02
RUN 1 cycle
EXPECT keyboard-report empty # Report should be empty
# ----------------------------------------------------------------------
# tap `MoveToLayer(0)`
RUN 4 ms
PRESS LAYER_MOVE_0
RUN 1 cycle
RUN 4 ms
RELEASE LAYER_MOVE_0
RUN 1 cycle
# ----------------------------------------------------------------------
RUN 5 ms