90 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
	
| package util
 | |
| 
 | |
| import (
 | |
| 	"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.Skipf("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.Skipf("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.Skipf("Skipping on OS %s", runtime.GOOS)
 | |
| 	}
 | |
| 	appFolder := GetGlobalConfigurationDirectory("myapp")
 | |
| 	assert.Equal(t, "/etc/myapp", appFolder)
 | |
| }
 |