From: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date: Tue, 30 Jul 2019 06:53:50 +0000 (+0200)
Subject: Fix image format detection for upper case extensions, e.g. JPG
X-Git-Tag: v0.56.2~7
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=c62bbf7b11d68d52ef11a4c6c70660914c473d08;p=brevno-suite%2Fhugo

Fix image format detection for upper case extensions, e.g. JPG

This regression was introduced in 0.56.0.

Fixes #6137
---

diff --git a/resources/image_test.go b/resources/image_test.go
index 6639dbb2..061ae771 100644
--- a/resources/image_test.go
+++ b/resources/image_test.go
@@ -152,6 +152,16 @@ func TestImageTransformLongFilename(t *testing.T) {
 	assert.Equal("/a/_hu59e56ffff1bc1d8d122b1403d34e039f_90587_c876768085288f41211f768147ba2647.jpg", resized.RelPermalink())
 }
 
+// Issue 6137
+func TestImageTransformUppercaseExt(t *testing.T) {
+	assert := require.New(t)
+	image := fetchImage(assert, "sunrise.JPG")
+	resized, err := image.Resize("200x")
+	assert.NoError(err)
+	assert.NotNil(resized)
+	assert.Equal(200, resized.Width())
+}
+
 // https://github.com/gohugoio/hugo/issues/5730
 func TestImagePermalinkPublishOrder(t *testing.T) {
 	for _, checkOriginalFirst := range []bool{true, false} {
diff --git a/resources/resource.go b/resources/resource.go
index 236ba8ac..0aee4a05 100644
--- a/resources/resource.go
+++ b/resources/resource.go
@@ -209,7 +209,7 @@ func (r *Spec) newResource(sourceFs afero.Fs, fd ResourceSourceDescriptor) (reso
 		fd.RelTargetFilename = sourceFilename
 	}
 
-	ext := filepath.Ext(fd.RelTargetFilename)
+	ext := strings.ToLower(filepath.Ext(fd.RelTargetFilename))
 	mimeType, found := r.MediaTypes.GetFirstBySuffix(strings.TrimPrefix(ext, "."))
 	// TODO(bep) we need to handle these ambigous types better, but in this context
 	// we most likely want the application/xml type.
diff --git a/resources/testdata/sunrise.JPG b/resources/testdata/sunrise.JPG
new file mode 100644
index 00000000..7d7307be
Binary files /dev/null and b/resources/testdata/sunrise.JPG differ