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.
This commit is contained in:
Marek Stanley 2015-01-07 21:40:35 +01:00 committed by bep
parent 2b46f3e51e
commit 49f5eb5c84
2 changed files with 97 additions and 9 deletions

22
helpers/content_test.go Normal file
View file

@ -0,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)
}
}
}

View file

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