Cthulhu is no longer a fork. Now it is a screen reader written in Golang.
This commit is contained in:
1 parent
a998fe67de
commit
069fc674dc
708 files changed
+112482
-532
No files matched your search
@@ -0,0 +1,40 @@
|
||||
package nvda2cthulhu
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestParseRequestMatchesPythonCompatibilityProtocol(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
value any
|
||||
want bridgeRequest
|
||||
}{
|
||||
{name: "text", value: "Game text", want: bridgeRequest{kind: "SpeakText", text: "Game text"}},
|
||||
{name: "cancel string", value: "CancelSpeech", want: bridgeRequest{kind: "CancelSpeech"}},
|
||||
{name: "speech map", value: map[any]any{"SpeakText": "Map text"}, want: bridgeRequest{kind: "SpeakText", text: "Map text"}},
|
||||
{name: "braille map", value: map[string]any{"BrailleText": "Braille"}, want: bridgeRequest{kind: "BrailleText", text: "Braille"}},
|
||||
{name: "cancel map", value: map[any]any{"CancelSpeech": nil}, want: bridgeRequest{kind: "CancelSpeech"}},
|
||||
{name: "speech array", value: []any{"SpeakText", "Array text"}, want: bridgeRequest{kind: "SpeakText", text: "Array text"}},
|
||||
{name: "cancel array", value: []any{"CancelSpeech"}, want: bridgeRequest{kind: "CancelSpeech"}},
|
||||
}
|
||||
for _, test := range tests {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
got, err := parseRequest(test.value)
|
||||
if err != nil {
|
||||
t.Fatalf("parseRequest() error = %v", err)
|
||||
}
|
||||
if got.kind != test.want.kind || got.text != test.want.text {
|
||||
t.Fatalf("parseRequest() = %+v, want %+v", got, test.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseRequestRejectsUnknownAndMalformedPayloads(t *testing.T) {
|
||||
for _, value := range []any{"", map[any]any{}, map[any]any{"Two": "values", "SpeakText": "text"}, []any{}, []any{"Unknown", "value"}} {
|
||||
if request, err := parseRequest(value); err == nil {
|
||||
t.Fatalf("parseRequest(%#v) = %+v, want error", value, request)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user