shithub: hugo

Download patch

ref: 49f5eb5c845b0978ac1227e5c6a2508d6cd93691
parent: 2b46f3e51ee64aa3611ddc76197abf40d4f3644c
author: Marek Stanley <[email protected]>
date: Wed Jan 7 16:40:35 EST 2015

Moved a test regarding a content.go function to a new test file content_test.go.
Added some tests for general helpers, especially as a way to document the expected behavior,
and as a warm-up welcome contribution.

--- /dev/null
+++ b/helpers/content_test.go
@@ -1,0 +1,22 @@
+package helpers
+
+import (
+	"testing"
+)
+
+func TestStripHTML(t *testing.T) {
+	type test struct {
+		input, expected string
+	}
+	data := []test{
+		{"<h1>strip h1 tag <h1>", "strip h1 tag "},
+		{"<p> strip p tag </p>", " strip p tag \n"},
+		{"</br> strip br<br>", " strip br\n"},
+	}
+	for i, d := range data {
+		output := StripHTML(d.input)
+		if d.expected != output {
+			t.Errorf("Test %d failed. Expected %q got %q", i, d.expected, output)
+		}
+	}
+}
--- a/helpers/general_test.go
+++ b/helpers/general_test.go
@@ -1,22 +1,88 @@
 package helpers
 
 import (
+	"strings"
 	"testing"
 )
 
-func TestStripHTML(t *testing.T) {
+func TestInStringArrayCaseSensitive(t *testing.T) {
 	type test struct {
-		input, expected string
+		input    string
+		expected bool
 	}
+	array := []string{
+		"Albert",
+		"Joe",
+		"Francis",
+	}
 	data := []test{
-		{"<h1>strip h1 tag <h1>", "strip h1 tag "},
-		{"<p> strip p tag </p>", " strip p tag \n"},
-		{"</br> strip br<br>", " strip br\n"},
+		{"Albert", true},
+		{"ALBERT", false},
 	}
-	for i, d := range data {
-		output := StripHTML(d.input)
-		if d.expected != output {
-			t.Errorf("Test %d failed. Expected %q got %q", i, d.expected, output)
+	for _, in := range data {
+		output := InStringArray(array, in.input)
+		if output != in.expected {
+			t.Errorf("TestInStringArrayCase failed. Expected %t. Got %t.", in.expected, output)
 		}
+	}
+}
+
+func TestSliceToLowerStable(t *testing.T) {
+	input := []string{
+		"New York",
+		"BARCELONA",
+		"COffEE",
+		"FLOWer",
+		"CanDY",
+	}
+
+	output := SliceToLower(input)
+
+	for i, e := range output {
+		if e != strings.ToLower(input[i]) {
+			t.Errorf("Expected %s. Found %s.", strings.ToLower(input[i]), e)
+		}
+	}
+}
+
+func TestSliceToLowerNil(t *testing.T) {
+	var input []string
+
+	output := SliceToLower(input)
+
+	if output != nil {
+		t.Errorf("Expected nil to be returned. Had %s.", output)
+	}
+}
+
+func TestSliceToLowerNonDestructive(t *testing.T) {
+	input := []string{
+		"New York",
+		"BARCELONA",
+		"COffEE",
+		"FLOWer",
+		"CanDY",
+	}
+
+	// This assignment actually copies the content
+	// of input into a new object.
+	// Otherwise, the test would not make sense...
+	input_copy := input
+
+	SliceToLower(input)
+
+	for i, e := range input {
+		if e != input_copy[i] {
+			t.Errorf("TestSliceToLowerNonDestructive failed. Expected element #%d of input slice to be %s. Found %s.", i, input_copy[i], input[i])
+		}
+	}
+}
+
+// Just make sure there is no error for empty-like strings
+func TestMd5StringEmpty(t *testing.T) {
+	inputs := []string{"", " ", "   "}
+
+	for _, in := range inputs {
+		Md5String(in)
 	}
 }