util/utils_test.go

91 lines
2.4 KiB
Go

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)
}