diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-09-03 10:36:09 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-09-03 18:38:57 +0200 |
commit | 8624b9fe9eb81aeb884d36311fb6f85fed98aa43 (patch) | |
tree | 830fcb271584065cc6577c17808ade64cdb68b88 /hugolib/image_test.go | |
parent | 018494f363a32b9e4d3622da6842bc3e59b420b2 (diff) |
Cache processed images by their source path
Fixes #6269
Diffstat (limited to 'hugolib/image_test.go')
-rw-r--r-- | hugolib/image_test.go | 86 |
1 files changed, 74 insertions, 12 deletions
diff --git a/hugolib/image_test.go b/hugolib/image_test.go index 2ae1d85af..0cd781018 100644 --- a/hugolib/image_test.go +++ b/hugolib/image_test.go @@ -14,7 +14,6 @@ package hugolib import ( - "image/jpeg" "io" "os" "path/filepath" @@ -100,16 +99,6 @@ title: "My bundle" b := newBuilder() b.Build(BuildCfg{}) - assertImage := func(width, height int, filename string) { - filename = filepath.Join(workDir, "public", filename) - f, err := b.Fs.Destination.Open(filename) - c.Assert(err, qt.IsNil) - defer f.Close() - cfg, err := jpeg.DecodeConfig(f) - c.Assert(cfg.Width, qt.Equals, width) - c.Assert(cfg.Height, qt.Equals, height) - } - imgExpect := ` Resized1: images/sunset.jpg|123|234|image/jpg|/images/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_123x234_resize_q75_box.jpg| Resized2: images/sunset.jpg|12|23|image/jpg|/images/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_ada4bb1a57f77a63306e3bd67286248e.jpg| @@ -121,7 +110,7 @@ Resized6: images/sunset.jpg|350|219|image/jpg|/images/sunset_hu59e56ffff1bc1d8d1 ` b.AssertFileContent(filepath.Join(workDir, "public/index.html"), imgExpect) - assertImage(350, 219, "images/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_350x0_resize_q75_box.a86fe88d894e5db613f6aa8a80538fefc25b20fa24ba0d782c057adcef616f56.jpg") + b.AssertImage(350, 219, "public/images/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_350x0_resize_q75_box.a86fe88d894e5db613f6aa8a80538fefc25b20fa24ba0d782c057adcef616f56.jpg") // Build it again to make sure we read images from file cache. b = newBuilder() @@ -130,3 +119,76 @@ Resized6: images/sunset.jpg|350|219|image/jpg|/images/sunset_hu59e56ffff1bc1d8d1 b.AssertFileContent(filepath.Join(workDir, "public/index.html"), imgExpect) } + +func TestImageResizeMultilingual(t *testing.T) { + + b := newTestSitesBuilder(t).WithConfigFile("toml", ` +baseURL="https://example.org" +defaultContentLanguage = "en" + +[languages] +[languages.en] +title = "Title in English" +languageName = "English" +weight = 1 +[languages.nn] +languageName = "Nynorsk" +weight = 2 +title = "Tittel på nynorsk" +[languages.nb] +languageName = "Bokmål" +weight = 3 +title = "Tittel på bokmål" +[languages.fr] +languageName = "French" +weight = 4 +title = "French Title" + +`) + + pageContent := `--- +title: "Page" +--- +` + + b.WithContent("bundle/index.md", pageContent) + b.WithContent("bundle/index.nn.md", pageContent) + b.WithContent("bundle/index.fr.md", pageContent) + b.WithSunset("content/bundle/sunset.jpg") + b.WithSunset("assets/images/sunset.jpg") + b.WithTemplates("index.html", ` +{{ with (.Site.GetPage "bundle" ) }} +{{ $sunset := .Resources.GetMatch "sunset*" }} +{{ if $sunset }} +{{ $resized := $sunset.Resize "200x200" }} +SUNSET FOR: {{ $.Site.Language.Lang }}: {{ $resized.RelPermalink }}/{{ $resized.Width }}/Lat: {{ $resized.Exif.Lat }} +{{ end }} +{{ else }} +No bundle for {{ $.Site.Language.Lang }} +{{ end }} + +{{ $sunset2 := resources.Get "images/sunset.jpg" }} +{{ $resized2 := $sunset2.Resize "123x234" }} +SUNSET2: {{ $resized2.RelPermalink }}/{{ $resized2.Width }}/Lat: {{ $resized2.Exif.Lat }} + +`) + + b.Build(BuildCfg{}) + + b.AssertFileContent("public/index.html", "SUNSET FOR: en: /bundle/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_200x200_resize_q75_box.jpg/200/Lat: 36.59744166666667") + b.AssertFileContent("public/fr/index.html", "SUNSET FOR: fr: /fr/bundle/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_200x200_resize_q75_box.jpg/200/Lat: 36.59744166666667") + b.AssertFileContent("public/index.html", " SUNSET2: /images/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_123x234_resize_q75_box.jpg/123/Lat: 36.59744166666667") + b.AssertFileContent("public/nn/index.html", " SUNSET2: /images/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_123x234_resize_q75_box.jpg/123/Lat: 36.59744166666667") + + b.AssertImage(200, 200, "public/fr/bundle/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_200x200_resize_q75_box.jpg") + b.AssertImage(200, 200, "public/bundle/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_200x200_resize_q75_box.jpg") + + // Check the file cache + b.AssertImage(200, 200, "resources/_gen/images/bundle/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_200x200_resize_q75_box.jpg") + b.AssertFileContent("resources/_gen/images/bundle/sunset_17701188623491591036.json", + "DateTimeDigitized|time.Time", "PENTAX") + b.AssertImage(123, 234, "resources/_gen/images/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_123x234_resize_q75_box.jpg") + b.AssertFileContent("resources/_gen/images/sunset_17701188623491591036.json", + "DateTimeDigitized|time.Time", "PENTAX") + +} |