mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
Updated TestReplaceExtensioni, TestFilename and TestFileAndExt
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.
This commit is contained in:
parent
980d0f14de
commit
3521e8b1e5
1 changed files with 24 additions and 13 deletions
|
@ -69,24 +69,27 @@ func TestMakeTitle(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
// Replace Extension is probably poorly named, but the intent of the
|
||||||
// comment
|
// 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) {
|
func TestReplaceExtension(t *testing.T) {
|
||||||
type test struct {
|
type test struct {
|
||||||
input, newext, expected string
|
input, newext, expected string
|
||||||
}
|
}
|
||||||
data := []test{
|
data := []test{
|
||||||
// none of these work as you might expect
|
// These work according to the above defination
|
||||||
{"/some/randome/path/file.xml", "html", "/some/randompath/file.html"},
|
{"/some/random/path/file.xml", "html", "file.html"},
|
||||||
{"/banana.html", "HTML", "/banana.HTML"},
|
{"/banana.html", "xml", "banana.xml"},
|
||||||
{"./banana.html", "xml", "./banana.xml"},
|
{"./banana.html", "xml", "banana.xml"},
|
||||||
{"banana/pie/index.html", "xml", "banana/pie/index.xml"},
|
{"banana/pie/index.html", "xml", "index.xml"},
|
||||||
{"../pies/fish/index.html", "xml", "../pies/fish/index.xml"},
|
{"../pies/fish/index.html", "xml", "index.xml"},
|
||||||
// but these all work even though they make no sense!
|
// but these all fail
|
||||||
{"/directory", "ext", "/directory.ext"},
|
{"filename-without-ext", ".ext", "filename-without-an-ext.ext"},
|
||||||
{"/directory/mydir/", "ext", "/directory/mydir/.ext"},
|
{"/filename-without-an-ext", "ext", "filename-without-an-ext.ext"},
|
||||||
{"mydir/", "ext", "mydir/.ext"},
|
{"/directory/mydir/", "ext", ".ext"},
|
||||||
|
{"mydir/", "ext", ".ext"},
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, d := range data {
|
for i, d := range data {
|
||||||
|
@ -363,6 +366,10 @@ func TestFilename(t *testing.T) {
|
||||||
{"filename-no-ext", "filename-no-ext"},
|
{"filename-no-ext", "filename-no-ext"},
|
||||||
{"directoy/", ""}, // no filename case??
|
{"directoy/", ""}, // no filename case??
|
||||||
{"directory/.hidden.ext", ".hidden"},
|
{"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 {
|
for i, d := range data {
|
||||||
|
@ -388,6 +395,10 @@ func TestFileAndExt(t *testing.T) {
|
||||||
{"filename-no-ext", "filename-no-ext", ""},
|
{"filename-no-ext", "filename-no-ext", ""},
|
||||||
{"directoy/", "", ""}, // no filename case??
|
{"directoy/", "", ""}, // no filename case??
|
||||||
{"directory/.hidden.ext", ".hidden", ".ext"},
|
{"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 {
|
for i, d := range data {
|
||||||
|
|
Loading…
Reference in a new issue