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)
}
}