From 49f5eb5c845b0978ac1227e5c6a2508d6cd93691 Mon Sep 17 00:00:00 2001 From: Marek Stanley Date: Wed, 7 Jan 2015 21:40:35 +0100 Subject: [PATCH] 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. --- helpers/content_test.go | 22 +++++++++++ helpers/general_test.go | 84 ++++++++++++++++++++++++++++++++++++----- 2 files changed, 97 insertions(+), 9 deletions(-) create mode 100644 helpers/content_test.go 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) + } +}