// Cthulhu screen reader. // Copyright (c) 2026 Storm Dragon // Authors: Storm Dragon, Angus Kola // // This program is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by the Free // Software Foundation, either version 3 of the License, or (at your option) // any later version. // // This program is distributed in the hope that it will be useful, but WITHOUT // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for // more details. // // You should have received a copy of the GNU General Public License along with // this program. If not, see . package version import ( "strings" "testing" ) func TestStringIncludesBuild(t *testing.T) { originalBuild := Build Build = "test-build" defer func() { Build = originalBuild }() if got, want := String(), "Cthulhu screen reader version test-build-"+Channel; got != want { t.Fatalf("String() = %q, want %q", got, want) } } func TestStringUsesCurrentVersionByDefault(t *testing.T) { if Build != Version { t.Fatalf("Build = %q, want %q", Build, Version) } if got, want := String(), "Cthulhu screen reader version "+Version+"-"+Channel; got != want { t.Fatalf("String() = %q, want %q", got, want) } } func TestDetailsIncludesATSPIAndSession(t *testing.T) { got := Details("2.58.0", "x11", "GNOME", "") want := "Cthulhu screen reader version " + Version + "-" + Channel + ", AT-SPI2 version: 2.58.0, Session: x11 GNOME" if got != want { t.Fatalf("Details() = %q, want %q", got, want) } if Details("2.58.0", " ", "", "") != strings.TrimSuffix(got, ", Session: x11 GNOME") { t.Fatal("empty session information was included") } } func TestDetailsIncludesOptionalWineAccess(t *testing.T) { base := Details("2.58.0", "x11", "GNOME", "") if got := Details("2.58.0", "x11", "GNOME", "2026.10.24"); got != base+", wine-access 2026.10.24" { t.Fatalf("Details() = %q", got) } if got := Details("2.58.0", "x11", "GNOME", ""); got != base { t.Fatalf("missing helper changed details: %q", got) } }