mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-07 20:30:36 -05:00
parent
35e9b3ed1e
commit
21d17566a3
4 changed files with 30 additions and 10 deletions
|
@ -299,10 +299,20 @@ func (s *IntegrationTestBuilder) initBuilder() error {
|
||||||
|
|
||||||
isBinaryRe := regexp.MustCompile(`^(.*)(\.png|\.jpg)$`)
|
isBinaryRe := regexp.MustCompile(`^(.*)(\.png|\.jpg)$`)
|
||||||
|
|
||||||
|
const dataSourceFilenamePrefix = "sourcefilename:"
|
||||||
|
|
||||||
for _, f := range s.data.Files {
|
for _, f := range s.data.Files {
|
||||||
filename := filepath.Join(s.Cfg.WorkingDir, f.Name)
|
filename := filepath.Join(s.Cfg.WorkingDir, f.Name)
|
||||||
data := bytes.TrimSuffix(f.Data, []byte("\n"))
|
data := bytes.TrimSuffix(f.Data, []byte("\n"))
|
||||||
if isBinaryRe.MatchString(filename) {
|
datastr := strings.TrimSpace(string(data))
|
||||||
|
if strings.HasPrefix(datastr, dataSourceFilenamePrefix) {
|
||||||
|
// Read from file relative to tue current dir.
|
||||||
|
var err error
|
||||||
|
wd, _ := os.Getwd()
|
||||||
|
filename := filepath.Join(wd, strings.TrimSpace(strings.TrimPrefix(datastr, dataSourceFilenamePrefix)))
|
||||||
|
data, err = os.ReadFile(filename)
|
||||||
|
s.Assert(err, qt.IsNil)
|
||||||
|
} else if isBinaryRe.MatchString(filename) {
|
||||||
var err error
|
var err error
|
||||||
data, err = base64.StdEncoding.DecodeString(string(data))
|
data, err = base64.StdEncoding.DecodeString(string(data))
|
||||||
s.Assert(err, qt.IsNil)
|
s.Assert(err, qt.IsNil)
|
||||||
|
|
|
@ -658,11 +658,12 @@ func TestImageOperationsGolden(t *testing.T) {
|
||||||
|
|
||||||
// A simple Gif file (no animation).
|
// A simple Gif file (no animation).
|
||||||
orig := fetchImageForSpec(spec, c, "gohugoio-card.gif")
|
orig := fetchImageForSpec(spec, c, "gohugoio-card.gif")
|
||||||
for _, resizeSpec := range []string{"100x", "220x"} {
|
for _, width := range []int{100, 220} {
|
||||||
resized, err := orig.Resize(resizeSpec)
|
resized, err := orig.Resize(fmt.Sprintf("%dx", width))
|
||||||
c.Assert(err, qt.IsNil)
|
c.Assert(err, qt.IsNil)
|
||||||
rel := resized.RelPermalink()
|
rel := resized.RelPermalink()
|
||||||
c.Assert(rel, qt.Not(qt.Equals), "")
|
c.Assert(rel, qt.Not(qt.Equals), "")
|
||||||
|
c.Assert(resized.Width(), qt.Equals, width)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Animated GIF
|
// Animated GIF
|
||||||
|
|
|
@ -377,6 +377,9 @@ type imageConfig struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func imageConfigFromImage(img image.Image) image.Config {
|
func imageConfigFromImage(img image.Image) image.Config {
|
||||||
|
if giphy, ok := img.(Giphy); ok {
|
||||||
|
return giphy.GIF().Config
|
||||||
|
}
|
||||||
b := img.Bounds()
|
b := img.Bounds()
|
||||||
return image.Config{Width: b.Max.X, Height: b.Max.Y}
|
return image.Config{Width: b.Max.X, Height: b.Max.Y}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,15 +34,21 @@ title: "My Bundle"
|
||||||
---
|
---
|
||||||
-- content/mybundle/pixel.png --
|
-- content/mybundle/pixel.png --
|
||||||
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==
|
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==
|
||||||
|
-- content/mybundle/giphy.gif --
|
||||||
|
sourcefilename: testdata/giphy.gif
|
||||||
-- layouts/foo.html --
|
-- layouts/foo.html --
|
||||||
-- layouts/index.html --
|
-- layouts/index.html --
|
||||||
{{ $p := site.GetPage "mybundle"}}
|
{{ $p := site.GetPage "mybundle"}}
|
||||||
{{ $img := $p.Resources.Get "pixel.png" }}
|
{{ $img := $p.Resources.Get "pixel.png" }}
|
||||||
{{ $gif := $img.Resize "1x1 gif" }}
|
{{ $giphy := $p.Resources.Get "giphy.gif" }}
|
||||||
{{ $bmp := $img.Resize "1x1 bmp" }}
|
{{ $gif := $img.Resize "1x2 gif" }}
|
||||||
|
{{ $bmp := $img.Resize "2x3 bmp" }}
|
||||||
|
{{ $anigif := $giphy.Resize "4x5" }}
|
||||||
|
|
||||||
gif: {{ $gif.RelPermalink }}|{{ $gif.MediaType }}|
|
|
||||||
bmp: {{ $bmp.RelPermalink }}|{{ $bmp.MediaType }}|
|
gif: {{ $gif.RelPermalink }}|}|{{ $gif.Width }}|{{ $gif.Height }}|{{ $gif.MediaType }}|
|
||||||
|
bmp: {{ $bmp.RelPermalink }}|}|{{ $bmp.Width }}|{{ $bmp.Height }}|{{ $bmp.MediaType }}|
|
||||||
|
anigif: {{ $anigif.RelPermalink }}|{{ $anigif.Width }}|{{ $anigif.Height }}|{{ $anigif.MediaType }}|
|
||||||
`
|
`
|
||||||
|
|
||||||
b := hugolib.NewIntegrationTestBuilder(
|
b := hugolib.NewIntegrationTestBuilder(
|
||||||
|
@ -55,9 +61,9 @@ bmp: {{ $bmp.RelPermalink }}|{{ $bmp.MediaType }}|
|
||||||
|
|
||||||
assertImages := func() {
|
assertImages := func() {
|
||||||
b.AssertFileContent("public/index.html", `
|
b.AssertFileContent("public/index.html", `
|
||||||
gif: /mybundle/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_1x1_resize_box_3.gif|image/gif|
|
gif: /mybundle/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_1x2_resize_box_3.gif|}|1|2|image/gif|
|
||||||
bmp: /mybundle/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_1x1_resize_box_3.bmp|image/bmp|
|
bmp: /mybundle/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_2x3_resize_box_3.bmp|}|2|3|image/bmp|
|
||||||
|
anigif: /mybundle/giphy_hu3eafc418e52414ace6236bf1d31f82e1_52213_4x5_resize_box_1.gif|4|5|image/gif|
|
||||||
`)
|
`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue