Permalink
Browse files

resource: Make .Resources.GetByPrefix case insensitive

Fixes #4258
  • Loading branch information...
bep committed Jan 11, 2018
1 parent 1046e93 commit db85e83403913cff4b8737b138932b28e5bf6160
Showing with 5 additions and 1 deletion.
  1. +2 −0 resource/resource.go
  2. +3 −1 resource/resource_test.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
}
@@ -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())

0 comments on commit db85e83

Please sign in to comment.