91 lines
2.4 KiB
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)
|
|
}
|