diff options
author | Bjørn Erik Pedersen <[email protected]> | 2021-04-20 12:05:25 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2021-04-20 12:51:11 +0200 |
commit | e73f7a770dfb06f23d842d589bdd3d0fb53c7eed (patch) | |
tree | af6d08afa2fd16f1d30c2ab66de9c16b46931e2a /media | |
parent | 3ddffd064dbacf62aa854b26ea8ddc5d15ba1ef8 (diff) | |
download | hugo-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.go | 2 | ||||
-rw-r--r-- | media/mediaType_test.go | 28 |
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) { |