aboutsummaryrefslogtreecommitdiffhomepage
path: root/media
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <[email protected]>2021-04-20 12:05:25 +0200
committerBjørn Erik Pedersen <[email protected]>2021-04-20 12:51:11 +0200
commite73f7a770dfb06f23d842d589bdd3d0fb53c7eed (patch)
treeaf6d08afa2fd16f1d30c2ab66de9c16b46931e2a /media
parent3ddffd064dbacf62aa854b26ea8ddc5d15ba1ef8 (diff)
downloadhugo-e73f7a770dfb06f23d842d589bdd3d0fb53c7eed.tar.gz
hugo-e73f7a770dfb06f23d842d589bdd3d0fb53c7eed.zip
Regression in media type suffix lookup
Introduced in Hugo 0.82.0. Fixes #8406
Diffstat (limited to 'media')
-rw-r--r--media/mediaType.go2
-rw-r--r--media/mediaType_test.go28
2 files changed, 24 insertions, 6 deletions
diff --git a/media/mediaType.go b/media/mediaType.go
index 164ad5fd2..21a91524d 100644
--- a/media/mediaType.go
+++ b/media/mediaType.go
@@ -305,7 +305,7 @@ func (t Types) GetBySuffix(suffix string) (tp Type, si SuffixInfo, found bool) {
}
func (m Type) hasSuffix(suffix string) bool {
- return strings.Contains(m.suffixesCSV, suffix)
+ return strings.Contains(","+m.suffixesCSV+",", ","+suffix+",")
}
// GetByMainSubType gets a media type given a main and a sub type e.g. "text" and "plain".
diff --git a/media/mediaType_test.go b/media/mediaType_test.go
index 6bc42b3d4..8d92ed1b2 100644
--- a/media/mediaType_test.go
+++ b/media/mediaType_test.go
@@ -15,6 +15,7 @@ package media
import (
"encoding/json"
+ "sort"
"testing"
qt "github.com/frankban/quicktest"
@@ -98,11 +99,28 @@ func TestBySuffix(t *testing.T) {
func TestGetFirstBySuffix(t *testing.T) {
c := qt.New(t)
- _, f, found := DefaultTypes.GetFirstBySuffix("xml")
- c.Assert(found, qt.Equals, true)
- c.Assert(f, qt.Equals, SuffixInfo{
- Suffix: "xml",
- FullSuffix: ".xml"})
+
+ types := DefaultTypes
+
+ // Issue #8406
+ geoJSON := newMediaTypeWithMimeSuffix("application", "geo", "json", []string{"geojson", "gjson"})
+ types = append(types, geoJSON)
+ sort.Sort(types)
+
+ check := func(suffix string, expectedType Type) {
+ t, f, found := types.GetFirstBySuffix(suffix)
+ c.Assert(found, qt.Equals, true)
+ c.Assert(f, qt.Equals, SuffixInfo{
+ Suffix: suffix,
+ FullSuffix: "." + suffix})
+ c.Assert(t, qt.Equals, expectedType)
+ }
+
+ check("js", JavascriptType)
+ check("json", JSONType)
+ check("geojson", geoJSON)
+ check("gjson", geoJSON)
+
}
func TestFromTypeString(t *testing.T) {