package util import ( "os" "testing" ) func TestCfgDirFromXDG(t *testing.T) { t.Setenv("XDG_CONFIG_HOME", "/custom/config") if got := CfgDir(); got != "/custom/config/ollie" { t.Errorf("CfgDir() = %q; want /custom/config/ollie", got) } } func TestCfgDirDefault(t *testing.T) { t.Setenv("XDG_CONFIG_HOME", "") home, _ := os.UserHomeDir() if got := CfgDir(); got != home+"/.config/ollie" { t.Errorf("CfgDir() = %q; want %s/.config/ollie", got, home) } } func TestDataDirFromXDG(t *testing.T) { t.Setenv("XDG_DATA_HOME", "/custom/data") if got := DataDir(); got != "/custom/data/ollie" { t.Errorf("DataDir() = %q; want /custom/data/ollie", got) } } func TestDataDirDefault(t *testing.T) { t.Setenv("XDG_DATA_HOME", "") home, _ := os.UserHomeDir() if got := DataDir(); got != home+"/.local/share/ollie" { t.Errorf("DataDir() = %q; want %s/.local/share/ollie", got, home) } } func TestExpandHome(t *testing.T) { home, _ := os.UserHomeDir() tests := []struct{ in, want string }{ {"~", home}, {"~/src", home + "/src"}, {"/abs/path", "/abs/path"}, {"relative", "relative"}, {"~user/foo", "~user/foo"}, // only bare ~ is expanded {"", ""}, } for _, tt := range tests { if got := ExpandHome(tt.in); got != tt.want { t.Errorf("ExpandHome(%q) = %q; want %q", tt.in, got, tt.want) } } }