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

     1  package keys
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/matryer/is"
     7  )
     8  
     9  func TestParse(t *testing.T) {
    10  
    11  	i := is.New(t)
    12  
    13  	type args struct {
    14  		Input    string
    15  		Expected *Accelerator
    16  	}
    17  
    18  	gooddata := []args{
    19  		{"CmdOrCtrl+A", CmdOrCtrl("A")},
    20  		{"SHIFT+.", Shift(".")},
    21  		{"CTRL+plus", Control("+")},
    22  		{"CTRL+SHIFT+escApe", Combo("escape", ControlKey, ShiftKey)},
    23  		{";", Key(";")},
    24  		{"OptionOrAlt+Page Down", OptionOrAlt("Page Down")},
    25  	}
    26  	for _, tt := range gooddata {
    27  		result, err := Parse(tt.Input)
    28  		i.NoErr(err)
    29  		i.Equal(result, tt.Expected)
    30  	}
    31  	baddata := []string{"CmdOrCrl+A", "SHIT+.", "CTL+plus", "CTRL+SHIF+esApe", "escap", "Sper+Tab", "OptionOrAlt"}
    32  	for _, d := range baddata {
    33  		result, err := Parse(d)
    34  		i.True(err != nil)
    35  		i.Equal(result, nil)
    36  	}
    37  }