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,69 @@
|
||||
// Copyright (c) 2026 Storm Dragon
|
||||
// Authors: Storm Dragon, Angus Kola
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
package config
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestLoadExplicitZeroAndEmptyOverridesAcrossSchemas(t *testing.T) {
|
||||
for name, contents := range map[string]string{
|
||||
"legacy profile overrides general": `
|
||||
[general]
|
||||
enableSpeech = true
|
||||
enableBraille = true
|
||||
soundVolume = 0.8
|
||||
cthulhuModifierKeys = ["Insert"]
|
||||
echoSpeechServerInfo = ["server", "test-module"]
|
||||
[general.voices.default]
|
||||
rate = 75
|
||||
[profiles.default]
|
||||
enableSpeech = false
|
||||
enableBraille = false
|
||||
soundVolume = 0.0
|
||||
playSoundForRole = false
|
||||
cthulhuModifierKeys = []
|
||||
echoSpeechServerInfo = ["server", ""]
|
||||
[profiles.default.reading]
|
||||
speakBlankLines = false
|
||||
[profiles.default.voices.default]
|
||||
rate = 0
|
||||
`,
|
||||
"versioned patch overrides defaults": `
|
||||
schema-version = 2
|
||||
active-profile = "default"
|
||||
[profiles.default.speech]
|
||||
enabled = false
|
||||
[profiles.default.speech.default-voice]
|
||||
rate = 0
|
||||
[profiles.default.braille]
|
||||
enabled = false
|
||||
[profiles.default.sound]
|
||||
volume = 0.0
|
||||
play-for-role = false
|
||||
[profiles.default.keyboard]
|
||||
screen-reader-keys = []
|
||||
[profiles.default.key-echo]
|
||||
speech-server = ""
|
||||
[profiles.default.presentation.reading]
|
||||
speak-blank-lines = false
|
||||
`,
|
||||
} {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
settings, err := Load(writeConfig(t, contents))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if settings.EnableSpeech || settings.EnableBraille || settings.SoundVolume != 0 ||
|
||||
settings.PlaySoundForRole || settings.Reading.SpeakBlankLines ||
|
||||
len(settings.CthulhuModifierKeys) != 0 || settings.EchoSpeechServer != "" ||
|
||||
settings.DefaultVoice.Rate == nil || *settings.DefaultVoice.Rate != 0 {
|
||||
t.Fatalf("explicit false/zero/empty values were lost: %+v", settings)
|
||||
}
|
||||
if !settings.EnableSound || !settings.PlaySoundForState || !settings.EnableKeyEcho ||
|
||||
!settings.Reading.ReadFullRowInGUITable || settings.DefaultVoice.Gain != nil {
|
||||
t.Fatalf("omitted fields changed their defaults: %+v", settings)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user