summaryrefslogtreecommitdiffstats
path: root/resource/testhelpers_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'resource/testhelpers_test.go')
-rw-r--r--resource/testhelpers_test.go46
1 files changed, 42 insertions, 4 deletions
diff --git a/resource/testhelpers_test.go b/resource/testhelpers_test.go
index 2b543ab64..7f6d4f307 100644
--- a/resource/testhelpers_test.go
+++ b/resource/testhelpers_test.go
@@ -6,8 +6,11 @@ import (
"image"
"io"
+ "io/ioutil"
"os"
"path"
+ "runtime"
+ "strings"
"github.com/gohugoio/hugo/helpers"
"github.com/gohugoio/hugo/hugofs"
@@ -45,17 +48,53 @@ func newTestResourceSpecForBaseURL(assert *require.Assertions, baseURL string) *
return spec
}
+func newTestResourceOsFs(assert *require.Assertions) *Spec {
+ cfg := viper.New()
+ cfg.Set("baseURL", "https://example.com")
+
+ workDir, err := ioutil.TempDir("", "hugores")
+
+ if runtime.GOOS == "darwin" && !strings.HasPrefix(workDir, "/private") {
+ // To get the entry folder in line with the rest. This its a little bit
+ // mysterious, but so be it.
+ workDir = "/private" + workDir
+ }
+
+ contentDir := "base"
+ cfg.Set("workingDir", workDir)
+ cfg.Set("contentDir", contentDir)
+ cfg.Set("resourceDir", filepath.Join(workDir, "res"))
+
+ fs := hugofs.NewFrom(hugofs.Os, cfg)
+ fs.Destination = &afero.MemMapFs{}
+
+ s, err := helpers.NewPathSpec(fs, cfg)
+
+ assert.NoError(err)
+
+ spec, err := NewSpec(s, media.DefaultTypes)
+ assert.NoError(err)
+ return spec
+
+}
+
func fetchSunset(assert *require.Assertions) *Image {
return fetchImage(assert, "sunset.jpg")
}
func fetchImage(assert *require.Assertions, name string) *Image {
+ spec := newTestResourceSpec(assert)
+ return fetchImageForSpec(spec, assert, name)
+}
+
+func fetchImageForSpec(spec *Spec, assert *require.Assertions, name string) *Image {
src, err := os.Open("testdata/" + name)
assert.NoError(err)
- spec := newTestResourceSpec(assert)
+ workingDir := spec.Cfg.GetString("workingDir")
+ f := filepath.Join(workingDir, name)
- out, err := spec.Fs.Source.Create("/b/" + name)
+ out, err := spec.Fs.Source.Create(f)
assert.NoError(err)
_, err = io.Copy(out, src)
out.Close()
@@ -66,11 +105,10 @@ func fetchImage(assert *require.Assertions, name string) *Image {
return path.Join("/a", s)
}
- r, err := spec.NewResourceFromFilename(factory, "/public", "/b/"+name, name)
+ r, err := spec.NewResourceFromFilename(factory, "/public", f, name)
assert.NoError(err)
assert.IsType(&Image{}, r)
return r.(*Image)
-
}
func assertFileCache(assert *require.Assertions, fs *hugofs.Fs, filename string, width, height int) {