hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit db85e83403913cff4b8737b138932b28e5bf6160
parent 1046e9363f2e382fd0b4aac838735ae4cbbebe5a
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Thu, 11 Jan 2018 18:58:53 +0100

resource: Make .Resources.GetByPrefix case insensitive

Fixes #4258

Diffstat:
Mresource/resource.go | 2++
Mresource/resource_test.go | 4+++-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/resource/resource.go b/resource/resource.go
@@ -70,8 +70,10 @@ func (r Resources) ByType(tp string) Resources {
 // "logo" will match logo.png. It returns nil of none found.
 // In potential ambiguous situations, combine it with ByType.
 func (r Resources) GetByPrefix(prefix string) Resource {
+	prefix = strings.ToLower(prefix)
 	for _, resource := range r {
 		_, name := filepath.Split(resource.RelPermalink())
+		name = strings.ToLower(name)
 		if strings.HasPrefix(name, prefix) {
 			return resource
 		}
diff --git a/resource/resource_test.go b/resource/resource_test.go
@@ -113,12 +113,14 @@ func TestResourcesGetByPrefix(t *testing.T) {
 	resources := Resources{
 		spec.newGenericResource(nil, nil, "/public", "/a/foo1.css", "foo1.css", "css"),
 		spec.newGenericResource(nil, nil, "/public", "/a/logo1.png", "logo1.png", "image"),
-		spec.newGenericResource(nil, nil, "/public", "/b/logo2.png", "logo2.png", "image"),
+		spec.newGenericResource(nil, nil, "/public", "/b/Logo2.png", "Logo2.png", "image"),
 		spec.newGenericResource(nil, nil, "/public", "/b/foo2.css", "foo2.css", "css"),
 		spec.newGenericResource(nil, nil, "/public", "/b/foo3.css", "foo3.css", "css")}
 
 	assert.Nil(resources.GetByPrefix("asdf"))
 	assert.Equal("/logo1.png", resources.GetByPrefix("logo").RelPermalink())
+	assert.Equal("/logo1.png", resources.GetByPrefix("loGo").RelPermalink())
+	assert.Equal("/Logo2.png", resources.GetByPrefix("logo2").RelPermalink())
 	assert.Equal("/foo2.css", resources.GetByPrefix("foo2").RelPermalink())
 	assert.Equal("/foo1.css", resources.GetByPrefix("foo1").RelPermalink())
 	assert.Equal("/foo1.css", resources.GetByPrefix("foo1").RelPermalink())