diff --git a/helpers/content_test.go b/helpers/content_test.go
new file mode 100644
index 000000000..18cdfcc5d
--- /dev/null
+++ b/helpers/content_test.go
@@ -0,0 +1,22 @@
+package helpers
+
+import (
+ "testing"
+)
+
+func TestStripHTML(t *testing.T) {
+ type test struct {
+ input, expected string
+ }
+ data := []test{
+ {"
strip h1 tag ", "strip h1 tag "},
+ {"
strip p tag
", " strip p tag \n"},
+ {" strip 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)
+ }
+ }
+}
diff --git a/helpers/general_test.go b/helpers/general_test.go
index 18cdfcc5d..687a56b4d 100644
--- 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{
- {"strip h1 tag ", "strip h1 tag "},
- {"
strip p tag
", " strip p tag \n"},
- {" strip 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)
+ }
+}