You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.4 KiB

package main
import (
"path/filepath"
"strings"
"testing"
)
func TestAutoStartServiceContentWaitsForGraphicalTarget(t *testing.T) {
appPath := filepath.Join("/opt", "tgk-touch", "m9zCtrlTty")
content := autoStartServiceContent(appPath)
for _, want := range []string{
"Wants=network-online.target",
"After=network-online.target graphical.target display-manager.service",
"Environment=DISPLAY=:0",
"WantedBy=graphical.target",
} {
if !strings.Contains(content, want) {
t.Fatalf("service content missing %q:\n%s", want, content)
}
}
}
func TestAutoStartServiceMatchesRejectsOldNetworkOnlyService(t *testing.T) {
appPath := filepath.Join("/opt", "tgk-touch", "m9zCtrlTty")
oldContent := `[Unit]
Description=m9zCtrlTty Background Service
After=network.target
[Service]
Type=simple
ExecStart=` + appPath + `
Restart=on-failure
RestartSec=10
User=root
WorkingDirectory=` + filepath.Dir(appPath) + `
[Install]
WantedBy=multi-user.target
`
if autoStartServiceMatches(oldContent, appPath) {
t.Fatal("old network-only service should be treated as mismatched")
}
}
func TestAutoStartServiceMatchesGeneratedContent(t *testing.T) {
appPath := filepath.Join("/opt", "tgk-touch", "m9zCtrlTty")
content := autoStartServiceContent(appPath)
if !autoStartServiceMatches(content, appPath) {
t.Fatalf("generated service content should match:\n%s", content)
}
}