Files
fenrir/internal/input/application_overrides_test.go

49 lines
1.3 KiB
Go

// Copyright (c) 2026 Storm Dragon
// SPDX-License-Identifier: GPL-3.0-or-later
package input
import (
"git.stormux.org/storm/fenrir/internal/command"
"testing"
)
func TestApplicationsChordConsumesRepeatsAndBothReleaseOrders(t *testing.T) {
for _, layout := range []string{"desktop", "laptop"} {
bindings, _, err := Load_bindings([]string{"../../config/keyboard/" + layout + ".toml"})
if err != nil {
t.Fatal(err)
}
for _, numLock := range []bool{false, true} {
for _, modifierFirst := range []bool{false, true} {
r, err := New_router(bindings)
if err != nil {
t.Fatal(err)
}
r.Key(0, KeyInsert, 1, numLock, false)
if got := r.Key(0, 30, 1, numLock, false); got.Command != command.ApplicationsMenu || got.Forward {
t.Fatal(got)
}
if got := r.Key(0, 30, 2, numLock, false); got.Command != "" || got.Forward {
t.Fatal(got)
}
releases := []uint16{30, KeyInsert}
if modifierFirst {
releases = []uint16{KeyInsert, 30}
}
for _, key := range releases {
if got := r.Key(0, key, 0, numLock, false); got.Forward || got.Command != "" {
t.Fatal(got)
}
}
if r.Held(0) {
t.Fatal("held applications chord")
}
if got := r.Key(0, 48, 1, numLock, false); !got.Forward || got.Code != 48 {
t.Fatal("subsequent application input", got)
}
}
}
}
}