27 lines
852 B
Go
27 lines
852 B
Go
package terminal
|
|
|
|
import "testing"
|
|
|
|
func TestControlKey(t *testing.T) {
|
|
cases := map[rune]Key{
|
|
'a': KeyCtrlA, 'G': KeyCtrlG, 'z': KeyCtrlZ,
|
|
'h': KeyBackspace, 'i': KeyTab, 'j': KeyEnter, 'm': KeyEnter,
|
|
' ': KeyCtrlSpace, '@': KeyCtrlSpace, '2': KeyCtrlSpace,
|
|
'[': KeyEscape, '3': KeyEscape,
|
|
'\\': KeyCtrlBackslash, '4': KeyCtrlBackslash,
|
|
']': KeyCtrlBracketRight, '5': KeyCtrlBracketRight,
|
|
'^': KeyCtrlCaret, '6': KeyCtrlCaret,
|
|
'_': KeyCtrlUnderscore, '-': KeyCtrlUnderscore, '/': KeyCtrlUnderscore, '7': KeyCtrlUnderscore,
|
|
}
|
|
for r, want := range cases {
|
|
if got, ok := ControlKey(r); !ok || got != want {
|
|
t.Errorf("ControlKey(%q) = %v, %v; want %v, true", r, got, ok, want)
|
|
}
|
|
}
|
|
for _, r := range []rune{'1', '8', '.', '~', 'é', 0} {
|
|
if _, ok := ControlKey(r); ok {
|
|
t.Errorf("ControlKey(%q) ok, want none", r)
|
|
}
|
|
}
|
|
}
|