mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-03 16:39:35 +08:00
76 lines
2.5 KiB
Go
76 lines
2.5 KiB
Go
package keys
|
|
|
|
import (
|
|
"strconv"
|
|
"testing"
|
|
)
|
|
|
|
func TestStringify(t *testing.T) {
|
|
|
|
const Windows = "windows"
|
|
const Mac = "darwin"
|
|
const Linux = "linux"
|
|
tests := []struct {
|
|
arg *Accelerator
|
|
want string
|
|
platform string
|
|
}{
|
|
// Single Keys
|
|
{Key("a"), "A", Windows},
|
|
{Key(""), "", Windows},
|
|
{Key("?"), "?", Windows},
|
|
{Key("a"), "A", Mac},
|
|
{Key(""), "", Mac},
|
|
{Key("?"), "?", Mac},
|
|
{Key("a"), "A", Linux},
|
|
{Key(""), "", Linux},
|
|
{Key("?"), "?", Linux},
|
|
|
|
// Single modifier
|
|
{Control("a"), "Ctrl+A", Windows},
|
|
{Control("a"), "Ctrl+A", Mac},
|
|
{Control("a"), "Ctrl+A", Linux},
|
|
{CmdOrCtrl("a"), "Ctrl+A", Windows},
|
|
{CmdOrCtrl("a"), "Cmd+A", Mac},
|
|
{CmdOrCtrl("a"), "Ctrl+A", Linux},
|
|
{Shift("a"), "Shift+A", Windows},
|
|
{Shift("a"), "Shift+A", Mac},
|
|
{Shift("a"), "Shift+A", Linux},
|
|
{OptionOrAlt("a"), "Alt+A", Windows},
|
|
{OptionOrAlt("a"), "Option+A", Mac},
|
|
{OptionOrAlt("a"), "Alt+A", Linux},
|
|
//{Super("a"), "Win+A", Windows},
|
|
//{Super("a"), "Cmd+A", Mac},
|
|
//{Super("a"), "Super+A", Linux},
|
|
|
|
// Dual Combo non duplicate
|
|
{Combo("a", ControlKey, OptionOrAltKey), "Ctrl+Alt+A", Windows},
|
|
{Combo("a", ControlKey, OptionOrAltKey), "Ctrl+Option+A", Mac},
|
|
{Combo("a", ControlKey, OptionOrAltKey), "Ctrl+Alt+A", Linux},
|
|
{Combo("a", CmdOrCtrlKey, OptionOrAltKey), "Ctrl+Alt+A", Windows},
|
|
{Combo("a", CmdOrCtrlKey, OptionOrAltKey), "Cmd+Option+A", Mac},
|
|
{Combo("a", CmdOrCtrlKey, OptionOrAltKey), "Ctrl+Alt+A", Linux},
|
|
{Combo("a", ShiftKey, OptionOrAltKey), "Shift+Alt+A", Windows},
|
|
{Combo("a", ShiftKey, OptionOrAltKey), "Shift+Option+A", Mac},
|
|
{Combo("a", ShiftKey, OptionOrAltKey), "Shift+Alt+A", Linux},
|
|
//{Combo("a", SuperKey, OptionOrAltKey), "Win+Alt+A", Windows},
|
|
//{Combo("a", SuperKey, OptionOrAltKey), "Cmd+Option+A", Mac},
|
|
//{Combo("a", SuperKey, OptionOrAltKey), "Super+Alt+A", Linux},
|
|
|
|
// Combo duplicate
|
|
{Combo("a", OptionOrAltKey, OptionOrAltKey), "Alt+A", Windows},
|
|
{Combo("a", OptionOrAltKey, OptionOrAltKey), "Option+A", Mac},
|
|
{Combo("a", OptionOrAltKey, OptionOrAltKey), "Alt+A", Linux},
|
|
//{Combo("a", OptionOrAltKey, SuperKey, OptionOrAltKey), "Alt+Win+A", Windows},
|
|
//{Combo("a", OptionOrAltKey, SuperKey, OptionOrAltKey), "Option+Cmd+A", Mac},
|
|
//{Combo("a", OptionOrAltKey, SuperKey, OptionOrAltKey), "Alt+Super+A", Linux},
|
|
}
|
|
for index, tt := range tests {
|
|
t.Run(strconv.Itoa(index), func(t *testing.T) {
|
|
if got := Stringify(tt.arg, tt.platform); got != tt.want {
|
|
t.Errorf("Stringify() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|