mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-29 22:51:32 -05:00
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:
parent
2b46f3e51e
commit
49f5eb5c84
2 changed files with 97 additions and 9 deletions
22
helpers/content_test.go
Normal file
22
helpers/content_test.go
Normal 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)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue