summaryrefslogtreecommitdiffstats
path: root/source/filesystem_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'source/filesystem_test.go')
-rw-r--r--source/filesystem_test.go45
1 files changed, 36 insertions, 9 deletions
diff --git a/source/filesystem_test.go b/source/filesystem_test.go
index 8c8e30413..33007c7e4 100644
--- a/source/filesystem_test.go
+++ b/source/filesystem_test.go
@@ -14,20 +14,31 @@
package source
import (
- "os"
+ "fmt"
+ "path/filepath"
"runtime"
"testing"
+ "github.com/gohugoio/hugo/modules"
+
+ "github.com/gohugoio/hugo/langs"
+
+ "github.com/spf13/afero"
+
"github.com/gohugoio/hugo/helpers"
"github.com/gohugoio/hugo/hugofs"
+ "github.com/stretchr/testify/require"
"github.com/spf13/viper"
)
func TestEmptySourceFilesystem(t *testing.T) {
+ assert := require.New(t)
ss := newTestSourceSpec()
- src := ss.NewFilesystem("Empty")
- if len(src.Files()) != 0 {
+ src := ss.NewFilesystem("")
+ files, err := src.Files()
+ assert.NoError(err)
+ if len(files) != 0 {
t.Errorf("new filesystem should contain 0 files.")
}
}
@@ -38,6 +49,8 @@ func TestUnicodeNorm(t *testing.T) {
return
}
+ assert := require.New(t)
+
paths := []struct {
NFC string
NFD string
@@ -47,14 +60,18 @@ func TestUnicodeNorm(t *testing.T) {
}
ss := newTestSourceSpec()
- var fi os.FileInfo
+ fi := hugofs.NewFileMetaInfo(nil, hugofs.FileMeta{})
- for _, path := range paths {
- src := ss.NewFilesystem("base")
+ for i, path := range paths {
+ base := fmt.Sprintf("base%d", i)
+ assert.NoError(afero.WriteFile(ss.Fs.Source, filepath.Join(base, path.NFD), []byte("some data"), 0777))
+ src := ss.NewFilesystem(base)
_ = src.add(path.NFD, fi)
- f := src.Files()[0]
+ files, err := src.Files()
+ assert.NoError(err)
+ f := files[0]
if f.BaseFileName() != path.NFC {
- t.Fatalf("file name in NFD form should be normalized (%s)", path.NFC)
+ t.Fatalf("file %q name in NFD form should be normalized (%s)", f.BaseFileName(), path.NFC)
}
}
@@ -70,12 +87,22 @@ func newTestConfig() *viper.Viper {
v.Set("resourceDir", "resources")
v.Set("publishDir", "public")
v.Set("assetDir", "assets")
+ _, err := langs.LoadLanguageSettings(v, nil)
+ if err != nil {
+ panic(err)
+ }
+ mod, err := modules.CreateProjectModule(v)
+ if err != nil {
+ panic(err)
+ }
+ v.Set("allModules", modules.Modules{mod})
+
return v
}
func newTestSourceSpec() *SourceSpec {
v := newTestConfig()
- fs := hugofs.NewMem(v)
+ fs := hugofs.NewFrom(hugofs.NewBaseFileDecorator(afero.NewMemMapFs()), v)
ps, err := helpers.NewPathSpec(fs, v)
if err != nil {
panic(err)