37 lines
1.2 KiB
Go
37 lines
1.2 KiB
Go
// Fenrir console screen reader.
|
|
// Copyright (c) 2026 Storm Dragon
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
package config
|
|
|
|
import (
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestSoundDefaultsSelectionAndRoundTrip(t *testing.T) {
|
|
for _, version := range []string{"1", "2", "3"} {
|
|
settings, err := Decode([]byte("version=" + version + "\n"))
|
|
if err != nil || settings.Presentation.Sound != Defaults().Presentation.Sound {
|
|
t.Fatal(settings.Presentation.Sound, err)
|
|
}
|
|
}
|
|
settings := Defaults()
|
|
settings.Presentation.Sound.Driver = "alsa"
|
|
settings.Presentation.Sound.Device = "plughw:CARD=Generic,DEV=0"
|
|
settings.Presentation.Sound.Theme = "/tmp/fixture-pack"
|
|
path := filepath.Join(t.TempDir(), "settings.toml")
|
|
if err := Save(path, settings); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
got, _, err := Load(path, nil)
|
|
if err != nil || got.Presentation.Sound != settings.Presentation.Sound {
|
|
t.Fatal(got.Presentation.Sound, err)
|
|
}
|
|
for _, data := range []string{"driver='unknown'", "device=''", "device='bad\nname'", "theme='../other'"} {
|
|
if _, err := Decode([]byte("version=3\n[presentation.sound]\nenabled=false\n" + data)); err == nil {
|
|
t.Fatal("invalid sound choice accepted", data)
|
|
}
|
|
}
|
|
}
|