ref: 8ad4fd05d8dff450c8ceffd58483497d9f0e6d88
parent: b155e8b4cbde764f326ac989b060c805da26e176
author: bep <[email protected]>
date: Tue Jan 27 09:03:48 EST 2015
Split Windows and Unix specific path tests
--- a/helpers/path_test.go
+++ b/helpers/path_test.go
@@ -395,7 +395,6 @@
}
data := []test{
{os.TempDir(), filepath.FromSlash("/work"), filepath.Clean(os.TempDir())}, // TempDir has trailing slash
- // todo bep breaks on Windows: {filepath.FromSlash("/banana/../dir/"), filepath.FromSlash("/work"), filepath.FromSlash("/dir")},
{"dir", filepath.FromSlash("/work"), filepath.FromSlash("/work/dir")},
}
--- /dev/null
+++ b/helpers/path_unix_test.go
@@ -1,0 +1,27 @@
+// +build !windows
+
+package helpers
+
+import (
+ "github.com/spf13/viper"
+ "testing"
+)
+
+func TestPlatformAbsPathify(t *testing.T) {
+ type test struct {
+ inPath, workingDir, expected string
+ }
+ data := []test{
+ {"/banana/../dir/", "/work", "/dir"},
+ }
+
+ for i, d := range data {
+ // todo see comment in AbsPathify
+ viper.Set("WorkingDir", d.workingDir)
+
+ expected := AbsPathify(d.inPath)
+ if d.expected != expected {
+ t.Errorf("Test %d failed. Expected %q but got %q", i, d.expected, expected)
+ }
+ }
+}
--- /dev/null
+++ b/helpers/path_windows_test.go
@@ -1,0 +1,27 @@
+package helpers
+
+import (
+ "github.com/spf13/viper"
+ "testing"
+)
+
+func TestPlatformAbsPathify(t *testing.T) {
+ type test struct {
+ inPath, workingDir, expected string
+ }
+ data := []test{
+ {"c:\\banana\\..\\dir", "c:\\foo", "c:\\dir"},
+ {"\\dir", "c:\\foo", "c:\\foo\\dir"},
+ {"c:\\", "c:\\foo", "c:\\"},
+ }
+
+ for i, d := range data {
+ // todo see comment in AbsPathify
+ viper.Set("WorkingDir", d.workingDir)
+
+ expected := AbsPathify(d.inPath)
+ if d.expected != expected {
+ t.Errorf("Test %d failed. Expected %q but got %q", i, d.expected, expected)
+ }
+ }
+}