github.com/daidehu6831/wails/v2@v2.2.0/pkg/menu/keys/stringify_test.go (about)

     1  package keys
     2  
     3  import (
     4  	"strconv"
     5  	"testing"
     6  )
     7  
     8  func TestStringify(t *testing.T) {
     9  
    10  	const Windows = "windows"
    11  	const Mac = "darwin"
    12  	const Linux = "linux"
    13  	tests := []struct {
    14  		arg      *Accelerator
    15  		want     string
    16  		platform string
    17  	}{
    18  		// Single Keys
    19  		{Key("a"), "A", Windows},
    20  		{Key(""), "", Windows},
    21  		{Key("?"), "?", Windows},
    22  		{Key("a"), "A", Mac},
    23  		{Key(""), "", Mac},
    24  		{Key("?"), "?", Mac},
    25  		{Key("a"), "A", Linux},
    26  		{Key(""), "", Linux},
    27  		{Key("?"), "?", Linux},
    28  
    29  		// Single modifier
    30  		{Control("a"), "Ctrl+A", Windows},
    31  		{Control("a"), "Ctrl+A", Mac},
    32  		{Control("a"), "Ctrl+A", Linux},
    33  		{CmdOrCtrl("a"), "Ctrl+A", Windows},
    34  		{CmdOrCtrl("a"), "Cmd+A", Mac},
    35  		{CmdOrCtrl("a"), "Ctrl+A", Linux},
    36  		{Shift("a"), "Shift+A", Windows},
    37  		{Shift("a"), "Shift+A", Mac},
    38  		{Shift("a"), "Shift+A", Linux},
    39  		{OptionOrAlt("a"), "Alt+A", Windows},
    40  		{OptionOrAlt("a"), "Option+A", Mac},
    41  		{OptionOrAlt("a"), "Alt+A", Linux},
    42  		//{Super("a"), "Win+A", Windows},
    43  		//{Super("a"), "Cmd+A", Mac},
    44  		//{Super("a"), "Super+A", Linux},
    45  
    46  		// Dual Combo non duplicate
    47  		{Combo("a", ControlKey, OptionOrAltKey), "Ctrl+Alt+A", Windows},
    48  		{Combo("a", ControlKey, OptionOrAltKey), "Ctrl+Option+A", Mac},
    49  		{Combo("a", ControlKey, OptionOrAltKey), "Ctrl+Alt+A", Linux},
    50  		{Combo("a", CmdOrCtrlKey, OptionOrAltKey), "Ctrl+Alt+A", Windows},
    51  		{Combo("a", CmdOrCtrlKey, OptionOrAltKey), "Cmd+Option+A", Mac},
    52  		{Combo("a", CmdOrCtrlKey, OptionOrAltKey), "Ctrl+Alt+A", Linux},
    53  		{Combo("a", ShiftKey, OptionOrAltKey), "Shift+Alt+A", Windows},
    54  		{Combo("a", ShiftKey, OptionOrAltKey), "Shift+Option+A", Mac},
    55  		{Combo("a", ShiftKey, OptionOrAltKey), "Shift+Alt+A", Linux},
    56  		//{Combo("a", SuperKey, OptionOrAltKey), "Win+Alt+A", Windows},
    57  		//{Combo("a", SuperKey, OptionOrAltKey), "Cmd+Option+A", Mac},
    58  		//{Combo("a", SuperKey, OptionOrAltKey), "Super+Alt+A", Linux},
    59  
    60  		// Combo duplicate
    61  		{Combo("a", OptionOrAltKey, OptionOrAltKey), "Alt+A", Windows},
    62  		{Combo("a", OptionOrAltKey, OptionOrAltKey), "Option+A", Mac},
    63  		{Combo("a", OptionOrAltKey, OptionOrAltKey), "Alt+A", Linux},
    64  		//{Combo("a", OptionOrAltKey, SuperKey, OptionOrAltKey), "Alt+Win+A", Windows},
    65  		//{Combo("a", OptionOrAltKey, SuperKey, OptionOrAltKey), "Option+Cmd+A", Mac},
    66  		//{Combo("a", OptionOrAltKey, SuperKey, OptionOrAltKey), "Alt+Super+A", Linux},
    67  	}
    68  	for index, tt := range tests {
    69  		t.Run(strconv.Itoa(index), func(t *testing.T) {
    70  			if got := Stringify(tt.arg, tt.platform); got != tt.want {
    71  				t.Errorf("Stringify() = %v, want %v", got, tt.want)
    72  			}
    73  		})
    74  	}
    75  }