shithub: hugo

Download patch

ref: a8bfaba081d6a31b6371e42e0448c9850d593d82
parent: b15d0a168feb0f456bb1c9211c7d490cd7ca14b4
author: bep <[email protected]>
date: Wed Mar 18 16:47:10 EDT 2015

template: add some missing test cases for First

--- a/tpl/template.go
+++ b/tpl/template.go
@@ -289,6 +289,11 @@
 // First is exposed to templates, to iterate over the first N items in a
 // rangeable list.
 func First(limit interface{}, seq interface{}) (interface{}, error) {
+
+	if limit == nil || seq == nil {
+		return nil, errors.New("both limit and seq must be provided")
+	}
+
 	limitv, err := cast.ToIntE(limit)
 
 	if err != nil {
--- a/tpl/template_test.go
+++ b/tpl/template_test.go
@@ -231,6 +231,9 @@
 		{"1", []int{100, 200, 300}, []int{100}},
 		{int64(-1), []int{100, 200, 300}, false},
 		{"noint", []int{100, 200, 300}, false},
+		{1, nil, false},
+		{nil, []int{100}, false},
+		{1, t, false},
 	} {
 		results, err := First(this.count, this.sequence)
 		if b, ok := this.expect.(bool); ok && !b {