From 9d2e9268081d4d9e517a1a9782da5fa85a024a98 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Wed, 27 May 2015 10:09:11 -0700 Subject: [PATCH] template/interpolate: filter is case insensitive --- template/interpolate/render.go | 4 ++-- template/interpolate/render_test.go | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/template/interpolate/render.go b/template/interpolate/render.go index 0225f762c..9fa1c0f7d 100644 --- a/template/interpolate/render.go +++ b/template/interpolate/render.go @@ -74,14 +74,14 @@ func (f *RenderFilter) include(k string) bool { } f.once.Do(f.init) - _, ok := f.includeSet[k] + _, ok := f.includeSet[strings.ToLower(k)] return ok } func (f *RenderFilter) init() { f.includeSet = make(map[string]struct{}) for _, v := range f.Include { - f.includeSet[v] = struct{}{} + f.includeSet[strings.ToLower(v)] = struct{}{} } } diff --git a/template/interpolate/render_test.go b/template/interpolate/render_test.go index f6e466029..60a88f6fb 100644 --- a/template/interpolate/render_test.go +++ b/template/interpolate/render_test.go @@ -76,6 +76,24 @@ func TestRenderMap(t *testing.T) { Include: []string{"bar"}, }, }, + + "filter case-insensitive": { + map[string]interface{}{ + "bar": "{{upper `baz`}}", + "foo": map[string]string{ + "{{upper `bar`}}": "{{upper `baz`}}", + }, + }, + map[string]interface{}{ + "bar": "BAZ", + "foo": map[string]string{ + "{{upper `bar`}}": "{{upper `baz`}}", + }, + }, + &RenderFilter{ + Include: []string{"baR"}, + }, + }, } ctx := &Context{}