mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
Add more tests to helper
This commit is contained in:
parent
de76d4a84e
commit
5f9596e68c
3 changed files with 52 additions and 8 deletions
|
@ -1,6 +1,8 @@
|
||||||
package helpers
|
package helpers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"html/template"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -20,3 +22,12 @@ func TestStripHTML(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestStripEmptyNav(t *testing.T) {
|
||||||
|
cleaned := StripEmptyNav([]byte("do<nav>\n</nav>\n\nbedobedo"))
|
||||||
|
assert.Equal(t, []byte("dobedobedo"), cleaned)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestBytesToHTML(t *testing.T) {
|
||||||
|
assert.Equal(t, template.HTML("dobedobedo"), BytesToHTML([]byte("dobedobedo")))
|
||||||
|
}
|
||||||
|
|
|
@ -131,6 +131,7 @@ func AbsPathify(inPath string) string {
|
||||||
return filepath.Clean(inPath)
|
return filepath.Clean(inPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// todo consider move workingDir to argument list
|
||||||
return filepath.Clean(filepath.Join(viper.GetString("WorkingDir"), inPath))
|
return filepath.Clean(filepath.Join(viper.GetString("WorkingDir"), inPath))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ package helpers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/spf13/viper"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
@ -55,6 +56,37 @@ func TestMakePathToLower(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetRelativePath(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
path string
|
||||||
|
base string
|
||||||
|
expect interface{}
|
||||||
|
}{
|
||||||
|
{filepath.FromSlash("/a/b"), filepath.FromSlash("/a"), filepath.FromSlash("b")},
|
||||||
|
{filepath.FromSlash("/c"), filepath.FromSlash("/a/b"), filepath.FromSlash("../../c")},
|
||||||
|
{filepath.FromSlash("/c"), "", false},
|
||||||
|
}
|
||||||
|
for i, this := range tests {
|
||||||
|
// ultimately a fancy wrapper around filepath.Rel
|
||||||
|
result, err := GetRelativePath(this.path, this.base)
|
||||||
|
|
||||||
|
if b, ok := this.expect.(bool); ok && !b {
|
||||||
|
if err == nil {
|
||||||
|
t.Errorf("[%d] GetRelativePath didn't return an expected error", i)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("[%d] GetRelativePath failed: %s", i, err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if result != this.expect {
|
||||||
|
t.Errorf("[%d] GetRelativePath got %v but expected %v", i, result, this.expect)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestMakePathRelative(t *testing.T) {
|
func TestMakePathRelative(t *testing.T) {
|
||||||
type test struct {
|
type test struct {
|
||||||
inPath, path1, path2, output string
|
inPath, path1, path2, output string
|
||||||
|
@ -357,21 +389,21 @@ func TestExists(t *testing.T) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TestAbsPathify cannot be tested further because it relies on the
|
|
||||||
// viper.GetString("WorkingDir") which the test cannot know.
|
|
||||||
// viper.GetString("WorkingDir") should be passed to AbsPathify as a
|
|
||||||
// parameter.
|
|
||||||
func TestAbsPathify(t *testing.T) {
|
func TestAbsPathify(t *testing.T) {
|
||||||
type test struct {
|
type test struct {
|
||||||
input, expected string
|
inPath, workingDir, expected string
|
||||||
}
|
}
|
||||||
data := []test{
|
data := []test{
|
||||||
{os.TempDir(), filepath.Clean(os.TempDir())}, // TempDir has trailing slash
|
{os.TempDir(), filepath.FromSlash("/work"), filepath.Clean(os.TempDir())}, // TempDir has trailing slash
|
||||||
{filepath.FromSlash("/banana/../dir/"), filepath.FromSlash("/dir")},
|
{filepath.FromSlash("/banana/../dir/"), filepath.FromSlash("/work"), filepath.FromSlash("/dir")},
|
||||||
|
{"dir", filepath.FromSlash("/work"), filepath.FromSlash("/work/dir")},
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, d := range data {
|
for i, d := range data {
|
||||||
expected := AbsPathify(d.input)
|
// todo see comment in AbsPathify
|
||||||
|
viper.Set("WorkingDir", d.workingDir)
|
||||||
|
|
||||||
|
expected := AbsPathify(d.inPath)
|
||||||
if d.expected != expected {
|
if d.expected != expected {
|
||||||
t.Errorf("Test %d failed. Expected %q but go %q", i, d.expected, expected)
|
t.Errorf("Test %d failed. Expected %q but go %q", i, d.expected, expected)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue