diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-04-16 10:40:21 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-04-16 16:36:15 +0200 |
commit | 397fce560305d681948ad604ecfd85bd845ad407 (patch) | |
tree | c390750370d67e646446bdc64c22b430aeb1292c /resources | |
parent | 0093eaa6831f026af5cebefae8ab3cd04b677cfe (diff) |
Fix MediaType when reading images from cache
Fixes #8931
Diffstat (limited to 'resources')
-rw-r--r-- | resources/image_cache.go | 1 | ||||
-rw-r--r-- | resources/integration_test.go | 69 |
2 files changed, 70 insertions, 0 deletions
diff --git a/resources/image_cache.go b/resources/image_cache.go index b5832f740..ca651fd5c 100644 --- a/resources/image_cache.go +++ b/resources/image_cache.go @@ -95,6 +95,7 @@ func (c *imageCache) getOrCreate( rp := img.getResourcePaths() rp.relTargetDirFile.file = relTarget.file img.setSourceFilename(info.Name) + img.setMediaType(conf.TargetFormat.MediaType()) if err := img.InitConfig(r); err != nil { return err diff --git a/resources/integration_test.go b/resources/integration_test.go new file mode 100644 index 000000000..19cf8c198 --- /dev/null +++ b/resources/integration_test.go @@ -0,0 +1,69 @@ +// Copyright 2022 The Hugo Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package resources_test + +import ( + "strings" + "testing" + + "github.com/gohugoio/hugo/hugolib" +) + +// Issue 8931 +func TestImageCache(t *testing.T) { + + files := ` +-- config.toml -- +baseURL = "https://example.org" +-- content/mybundle/index.md -- +--- +title: "My Bundle" +--- +-- content/mybundle/pixel.png -- +iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== +-- layouts/foo.html -- +-- layouts/index.html -- +{{ $p := site.GetPage "mybundle"}} +{{ $img := $p.Resources.Get "pixel.png" }} +{{ $gif := $img.Resize "1x1 gif" }} +{{ $bmp := $img.Resize "1x1 bmp" }} + +gif: {{ $gif.RelPermalink }}|{{ $gif.MediaType }}| +bmp: {{ $bmp.RelPermalink }}|{{ $bmp.MediaType }}| +` + + b := hugolib.NewIntegrationTestBuilder( + hugolib.IntegrationTestConfig{ + T: t, + TxtarString: files, + NeedsOsFS: true, + Running: true, + }).Build() + + assertImages := func() { + b.AssertFileContent("public/index.html", ` + gif: /mybundle/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_1x1_resize_box_3.gif|image/gif| + bmp: /mybundle/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_1x1_resize_box_3.bmp|image/bmp| + + `) + } + + assertImages() + + b.EditFileReplace("content/mybundle/index.md", func(s string) string { return strings.ReplaceAll(s, "Bundle", "BUNDLE") }) + b.Build() + + assertImages() + +} |