Updated TestReplaceExtensioni, TestFilename and TestFileAndExt
authorOwen Waller <o.waller@kulawe.com>
Mon, 22 Sep 2014 15:42:38 +0000 (16:42 +0100)
committerspf13 <steve.francia@gmail.com>
Wed, 5 Nov 2014 00:19:01 +0000 (19:19 -0500)
Updated the test cases in TestReplaceExtension to reflect the intent
of ReplaceExtension which is to accept a path and return only the file
name with a new extension. It's intentionally designed to strip out the
path and only provide the filename

Additional test cases have been added to both TestFilename and
TestFileAndExt to clarify behaviour with relative paths.

helpers/path_test.go

index 6683d9eb57d0e24e8e7a10ce012143cff56c9849..c8729780e6c6331f889d8d7e8e0aa4f0335ba126 100644 (file)
@@ -69,24 +69,27 @@ func TestMakeTitle(t *testing.T) {
        }
 }
 
-//
-// comment
-//
+// Replace Extension is probably poorly named, but the intent of the
+// function is to accept a path and return only the file name with a
+// new extension. It's intentionally designed to strip out the path
+// and only provide the name. We should probably rename the function to
+// be more explicit at some point.
 func TestReplaceExtension(t *testing.T) {
        type test struct {
                input, newext, expected string
        }
        data := []test{
-               // none of these work as you might expect
-               {"/some/randome/path/file.xml", "html", "/some/randompath/file.html"},
-               {"/banana.html", "HTML", "/banana.HTML"},
-               {"./banana.html", "xml", "./banana.xml"},
-               {"banana/pie/index.html", "xml", "banana/pie/index.xml"},
-               {"../pies/fish/index.html", "xml", "../pies/fish/index.xml"},
-               // but these all work even though they make no sense!
-               {"/directory", "ext", "/directory.ext"},
-               {"/directory/mydir/", "ext", "/directory/mydir/.ext"},
-               {"mydir/", "ext", "mydir/.ext"},
+               // These work according to the above defination
+               {"/some/random/path/file.xml", "html", "file.html"},
+               {"/banana.html", "xml", "banana.xml"},
+               {"./banana.html", "xml", "banana.xml"},
+               {"banana/pie/index.html", "xml", "index.xml"},
+               {"../pies/fish/index.html", "xml", "index.xml"},
+               // but these all fail
+               {"filename-without-ext", ".ext", "filename-without-an-ext.ext"},
+               {"/filename-without-an-ext", "ext", "filename-without-an-ext.ext"},
+               {"/directory/mydir/", "ext", ".ext"},
+               {"mydir/", "ext", ".ext"},
        }
 
        for i, d := range data {
@@ -363,6 +366,10 @@ func TestFilename(t *testing.T) {
                {"filename-no-ext", "filename-no-ext"},
                {"directoy/", ""}, // no filename case??
                {"directory/.hidden.ext", ".hidden"},
+               {"./directory/../~/banana/gold.fish", "gold"},
+               {"../directory/banana.man", "banana"},
+               {"~/mydir/filename.ext", "filename"},
+               {"./directory//tmp/filename.ext", "filename"},
        }
 
        for i, d := range data {
@@ -388,6 +395,10 @@ func TestFileAndExt(t *testing.T) {
                {"filename-no-ext", "filename-no-ext", ""},
                {"directoy/", "", ""}, // no filename case??
                {"directory/.hidden.ext", ".hidden", ".ext"},
+               {"./directory/../~/banana/gold.fish", "gold", ".fish"},
+               {"../directory/banana.man", "banana", ".man"},
+               {"~/mydir/filename.ext", "filename", ".ext"},
+               {"./directory//tmp/filename.ext", "filename", ".ext"},
        }
 
        for i, d := range data {