| package homedir |
| |
| import ( |
| "fmt" |
| "os/user" |
| "testing" |
| ) |
| |
| func TestDir(t *testing.T) { |
| u, err := user.Current() |
| if err != nil { |
| t.Fatalf("err: %s", err) |
| } |
| |
| dir, err := Dir() |
| if err != nil { |
| t.Fatalf("err: %s", err) |
| } |
| |
| if u.HomeDir != dir { |
| t.Fatalf("%#v != %#v", u.HomeDir, dir) |
| } |
| } |
| |
| func TestExpand(t *testing.T) { |
| u, err := user.Current() |
| if err != nil { |
| t.Fatalf("err: %s", err) |
| } |
| |
| cases := []struct { |
| Input string |
| Output string |
| Err bool |
| }{ |
| { |
| "/foo", |
| "/foo", |
| false, |
| }, |
| |
| { |
| "~/foo", |
| fmt.Sprintf("%s/foo", u.HomeDir), |
| false, |
| }, |
| |
| { |
| "~foo/foo", |
| "", |
| true, |
| }, |
| } |
| |
| for _, tc := range cases { |
| actual, err := Expand(tc.Input) |
| if (err != nil) != tc.Err { |
| t.Fatalf("Input: %#v\n\nErr: %s", tc.Input, err) |
| } |
| |
| if actual != tc.Output { |
| t.Fatalf("Input: %#v\n\nOutput: %#v", tc.Input, actual) |
| } |
| } |
| } |