Manage PATH on Windows, Mac, and Linux with various Shells
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

185 lines
3.4 KiB

package envpath
import (
"fmt"
"os"
"path/filepath"
"testing"
)
func TestAddRemove(t *testing.T) {
paths, err := Paths()
if nil != err {
t.Error(err)
return
}
modified, err := Remove("/tmp/doesnt/exist")
if nil != err {
t.Error(err)
return
}
if modified {
t.Error(fmt.Errorf("Remove /tmp/doesnt/exist: should not have modified"))
return
}
modified, err = Add("/tmp/delete/me")
if nil != err {
t.Error(err)
return
}
if !modified {
t.Error(fmt.Errorf("Add /tmp/delete/me: should have modified"))
return
}
var exists bool
paths, err = Paths()
for i := range paths {
if "/tmp/delete/me" == paths[i] {
exists = true
}
}
if !exists {
fmt.Println("len(paths):", len(paths))
t.Error(fmt.Errorf("Paths: should have had the entry: /tmp/delete/me"))
return
}
modified, err = Add("/tmp/delete/me")
if nil != err {
t.Error(err)
return
}
if modified {
t.Error(fmt.Errorf("Add /tmp/delete/me: should not have modified"))
return
}
exists = false
paths, err = Paths()
for i := range paths {
if "/tmp/delete/me" == paths[i] {
exists = true
}
}
if !exists {
fmt.Println("len(paths):", len(paths))
t.Error(fmt.Errorf("Paths: should have had the entry: /tmp/delete/me"))
return
}
modified, err = Remove("/tmp/doesnt/exist")
if nil != err {
t.Error(err)
return
}
if modified {
t.Error(fmt.Errorf("Remove /tmp/doesnt/exist: should not have modified"))
return
}
modified, err = Remove("/tmp/delete/me")
if nil != err {
t.Error(err)
return
}
if !modified {
t.Error(fmt.Errorf("Remove /tmp/delete/me: should have modified"))
return
}
exists = false
paths, err = Paths()
for i := range paths {
if "/tmp/delete/me" == paths[i] {
exists = true
}
}
if exists {
fmt.Println("len(paths):", len(paths))
t.Error(fmt.Errorf("Paths: should not have had the entry: /tmp/delete/me"))
return
}
modified, err = Remove("/tmp/delete/me")
if nil != err {
t.Error(err)
return
}
if modified {
t.Error(fmt.Errorf("Remove /tmp/delete/me: should not have modified"))
return
}
}
func TestHome(t *testing.T) {
home, _ := os.UserHomeDir()
modified, err := Add(filepath.Join(home, "deleteme"))
if nil != err {
t.Error(err)
return
}
if !modified {
t.Error(fmt.Errorf("Add $HOME/deleteme: should have modified"))
return
}
modified, err = Add(filepath.Join(home, "deleteme"))
if nil != err {
t.Error(err)
return
}
if modified {
t.Error(fmt.Errorf("Add $HOME/deleteme: should not have modified"))
return
}
exists := false
paths, err := Paths()
for i := range paths {
if "$HOME/deleteme" == paths[i] {
exists = true
}
}
if !exists {
fmt.Println("len(paths):", len(paths))
t.Error(fmt.Errorf("Paths: should have had the entry: $HOME/deleteme"))
return
}
modified, err = Remove(filepath.Join(home, "deleteme"))
if nil != err {
t.Error(err)
return
}
if !modified {
t.Error(fmt.Errorf("Remove $HOME/deleteme: should have modified"))
return
}
exists = false
paths, err = Paths()
for i := range paths {
if "$HOME/deleteme" == paths[i] {
exists = true
}
}
if exists {
fmt.Println("len(paths):", len(paths))
t.Error(fmt.Errorf("Paths: should not have had the entry: $HOME/deleteme"))
return
}
modified, err = Remove(filepath.Join(home, "deleteme"))
if nil != err {
t.Error(err)
return
}
if modified {
t.Error(fmt.Errorf("Remove $HOME/deleteme: should not have modified"))
return
}
}