@@ -133,6 +133,57 @@ Home.
133133 runGolden (t , name , files )
134134}
135135
136+ func TestGoldenFiltersMask (t * testing.T ) {
137+ t .Parallel ()
138+
139+ if skipGolden {
140+ t .Skip ("Skip golden test on this architecture" )
141+ }
142+
143+ // Will be used to generate golden files.
144+ name := "filters_mask"
145+
146+ files := `
147+ -- hugo.toml --
148+ [imaging]
149+ bgColor = '#ebcc34'
150+ hint = 'photo'
151+ quality = 75
152+ resampleFilter = 'Lanczos'
153+ -- assets/sunset.jpg --
154+ sourcefilename: ../testdata/sunset.jpg
155+ -- assets/mask.png --
156+ sourcefilename: ../testdata/mask.png
157+
158+ -- layouts/index.html --
159+ Home.
160+ {{ $sunset := resources.Get "sunset.jpg" }}
161+ {{ $mask := resources.Get "mask.png" }}
162+
163+ {{ template "mask" (dict "name" "transparant.png" "base" $sunset "mask" $mask) }}
164+ {{ template "mask" (dict "name" "yellow.jpg" "base" $sunset "mask" $mask) }}
165+ {{ template "mask" (dict "name" "wide.jpg" "base" $sunset "mask" $mask "spec" "resize 600x200") }}
166+
167+
168+ {{ define "mask"}}
169+ {{ $ext := path.Ext .name }}
170+ {{ if lt (len (path.Ext .name)) 4 }}
171+ {{ errorf "No extension in %q" .name }}
172+ {{ end }}
173+ {{ $format := strings.TrimPrefix "." $ext }}
174+ {{ $spec := .spec | default (printf "resize 300x300 %s" $format) }}
175+ {{ $filters := slice (images.Process $spec) (images.Mask .mask) }}
176+ {{ $name := printf "images/%s" .name }}
177+ {{ $img := .base.Filter $filters }}
178+ {{ with $img | resources.Copy $name }}
179+ {{ .Publish }}
180+ {{ end }}
181+ {{ end }}
182+ `
183+
184+ runGolden (t , name , files )
185+ }
186+
136187func TestGoldenFiltersText (t * testing.T ) {
137188 t .Parallel ()
138189
0 commit comments