github.com/10XDev/rclone@v1.52.3-0.20200626220027-16af9ab76b2a/lib/env/env_test.go (about) 1 package env 2 3 import ( 4 "os" 5 "path/filepath" 6 "testing" 7 8 homedir "github.com/mitchellh/go-homedir" 9 "github.com/stretchr/testify/assert" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestShellExpand(t *testing.T) { 14 home, err := homedir.Dir() 15 require.NoError(t, err) 16 require.NoError(t, os.Setenv("EXPAND_TEST", "potato")) 17 defer func() { 18 require.NoError(t, os.Unsetenv("EXPAND_TEST")) 19 }() 20 for _, test := range []struct { 21 in, want string 22 }{ 23 {"", ""}, 24 {"~", filepath.FromSlash(home)}, 25 {filepath.FromSlash("~/dir/file.txt"), filepath.FromSlash(home + "/dir/file.txt")}, 26 {filepath.FromSlash("/dir/~/file.txt"), filepath.FromSlash("/dir/~/file.txt")}, 27 {filepath.FromSlash("~/${EXPAND_TEST}"), filepath.FromSlash(home + "/potato")}, 28 } { 29 got := ShellExpand(test.in) 30 assert.Equal(t, test.want, got, test.in) 31 } 32 }