{{ in }} should work with html.Template type

Fixes #7002
This commit is contained in:
Carl Johnson 2020-03-02 14:04:16 -05:00 committed by Bjørn Erik Pedersen
parent ee31e61fb0
commit ae383f04c8
2 changed files with 13 additions and 5 deletions

View file

@ -292,12 +292,17 @@ func (ns *Namespace) In(l interface{}, v interface{}) (bool, error) {
return true, nil
}
}
case reflect.String:
if vv.Type() == lv.Type() && strings.Contains(lv.String(), vv.String()) {
return true, nil
}
}
ss, err := cast.ToStringE(l)
if err != nil {
return false, nil
}
su, err := cast.ToStringE(v)
if err != nil {
return false, nil
}
return strings.Contains(ss, su), nil
}
// Intersect returns the common elements in the given sets, l1 and l2. l1 and

View file

@ -345,6 +345,9 @@ func TestIn(t *testing.T) {
// Structs
{pagesVals{p3v, p2v, p3v, p2v}, p2v, true},
{pagesVals{p3v, p2v, p3v, p2v}, p4v, false},
// template.HTML
{template.HTML("this substring should be found"), "substring", true},
{template.HTML("this substring should not be found"), "subseastring", false},
} {
errMsg := qt.Commentf("[%d] %v", i, test)