package util import ( "fmt" "os" "os/user" "path/filepath" "runtime" "strings" "testing" "github.com/stretchr/testify/assert" ) func TestFileExist(t *testing.T) { assert.True(t, FileExists("utils.go")) } func TestFileExistNot(t *testing.T) { assert.True(t, !FileExists("Utils2.go")) } func TestJoiningSlash1(t *testing.T) { actual := JoiningSlash("http://my.tld/docs/", "bla/", "blub/") expected := "http://my.tld/docs/bla/blub/" assert.Equal(t, expected, actual) } func TestJoiningSlash2(t *testing.T) { actual := JoiningSlash("http://my.tld", "bla", "blub") assert.Equal(t, "http://my.tld/bla/blub", actual) } func TestJoiningSlash3(t *testing.T) { actual := JoiningSlash("http://my.tld/", "bla", "blub") assert.Equal(t, "http://my.tld/bla/blub", actual) } func TestJoiningSlash4(t *testing.T) { actual := JoiningSlash("http://my.tld", "bla/", "blub") assert.Equal(t, "http://my.tld/bla/blub", actual) } func TestJoiningSlash5(t *testing.T) { actual := JoiningSlash("http://my.tld/docs", "bla/", "blub") expected := "http://my.tld/docs/bla/blub" assert.Equal(t, expected, actual) } func TestJoiningSlash6(t *testing.T) { actual := JoiningSlash("http://my.tld/docs/", "bla/", "blub") expected := "http://my.tld/docs/bla/blub" assert.Equal(t, expected, actual) } /* Can run only as admin within windows or linux e.g. sudo TESTASSUDO=yes /usr/local/go/bin/go test -timeout 30s -run ^TestIsSuperUser$ */ func TestIsSuperUser(t *testing.T) { if !strings.EqualFold(os.Getenv("TESTASSUDO"), "yes") { t.Skip("Skipping in normal tests") } cuser, err := user.Current() assert.Nil(t, err) assert.NotNil(t, cuser) assert.True(t, IsSuperUser()) } func TestGlobalConfigurationDirectoryWindows(t *testing.T) { if runtime.GOOS != "windows" { t.Skip(fmt.Sprintf("Skipping on OS %s", runtime.GOOS)) } appFolder := GetGlobalConfigurationDirectory("myapp") assert.Equal(t, filepath.Join(os.Getenv("APPDATA"), "myapp"), appFolder) } func TestGlobalConfigurationDirectoryLinux(t *testing.T) { if runtime.GOOS != "linux" { t.Skip(fmt.Sprintf("Skipping on OS %s", runtime.GOOS)) } appFolder := GetGlobalConfigurationDirectory("myapp") assert.Equal(t, "/etc/myapp", appFolder) } func TestGlobalConfigurationDirectoryMacOS(t *testing.T) { if runtime.GOOS != "darwin" { t.Skip(fmt.Sprintf("Skipping on OS %s", runtime.GOOS)) } appFolder := GetGlobalConfigurationDirectory("myapp") assert.Equal(t, "/etc/myapp", appFolder) }