44 lines
1.2 KiB
Go
44 lines
1.2 KiB
Go
// Copyright (c) 2026 Storm Dragon
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
package config
|
|
|
|
import (
|
|
"path/filepath"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestIgnoredVTValidationAndPersistence(t *testing.T) {
|
|
for _, value := range []string{"[0]", "[-1]", "[64]", "[7,7]", "['7']", "'7,8'"} {
|
|
if _, err := Decode([]byte("version=3\n[screen]\nignored_vts=" + value)); err == nil {
|
|
t.Fatal("accepted invalid ignored VTs", value)
|
|
}
|
|
}
|
|
for _, value := range []string{"[]", "[1,7,8,10,63]"} {
|
|
settings, err := Decode([]byte("version=3\n[screen]\nignored_vts=" + value))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
path := filepath.Join(t.TempDir(), "settings.toml")
|
|
doc, err := Open_document(path, settings)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := doc.Save(settings); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
loaded, _, err := Load(path, nil)
|
|
if err != nil || !reflect.DeepEqual(loaded.Screen, settings.Screen) {
|
|
t.Fatal("document lost console policy", loaded.Screen, settings.Screen, err)
|
|
}
|
|
if err := Save(path, settings); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
loaded, _, err = Load(path, nil)
|
|
if err != nil || !reflect.DeepEqual(loaded.Screen, settings.Screen) {
|
|
t.Fatal("quick save lost console policy", loaded.Screen, settings.Screen, err)
|
|
}
|
|
}
|
|
}
|