shithub: hugo

Download patch

ref: be21e2cbed6c7832d060c7c186459e9f6b7de238
parent: be1429fa88a5d872b568bf89cdc4ab4745a9f69b
author: bep <[email protected]>
date: Sun Mar 29 21:22:08 EDT 2015

Add some more corner tests for ReaderContains

--- a/helpers/general.go
+++ b/helpers/general.go
@@ -115,7 +115,7 @@
 // ReaderContains reports whether subslice is within r.
 func ReaderContains(r io.Reader, subslice []byte) bool {
 
-	if len(subslice) == 0 {
+	if r == nil || len(subslice) == 0 {
 		return false
 	}
 
--- a/helpers/general_test.go
+++ b/helpers/general_test.go
@@ -86,7 +86,7 @@
 	{"abc", []byte("d"), false},
 	{containsTestText, []byte("стремился"), true},
 	{containsTestText, []byte(containsTestText[10:80]), true},
-	{containsTestText, []byte(containsTestText[100:110]), true},
+	{containsTestText, []byte(containsTestText[100:111]), true},
 	{containsTestText, []byte(containsTestText[len(containsTestText)-100 : len(containsTestText)-10]), true},
 	{containsTestText, []byte(containsTestText[len(containsTestText)-20:]), true},
 	{containsTestText, []byte("notfound"), false},
@@ -98,6 +98,7 @@
 	v2     []byte
 	expect bool
 }{
+	{"", nil, false},
 	{"", []byte("a"), false},
 	{"a", []byte(""), false},
 	{"", []byte(""), false},
@@ -110,6 +111,9 @@
 			t.Errorf("[%d] Got %t but expected %t", i, result, this.expect)
 		}
 	}
+
+	assert.False(t, ReaderContains(nil, []byte("a")))
+	assert.False(t, ReaderContains(nil, nil))
 }
 
 func BenchmarkReaderContains(b *testing.B) {