aboutsummaryrefslogtreecommitdiffhomepage
path: root/helpers/content_test.go
diff options
context:
space:
mode:
authorBrendan Roy <[email protected]>2017-09-29 17:04:55 +1000
committerBjørn Erik Pedersen <[email protected]>2017-09-29 09:04:55 +0200
commit8717a60cc030f4310c1779c0cdd51db37ad636cd (patch)
treefeb0ee781117c22649dceebe24a29db59c5957fd /helpers/content_test.go
parent2818878994e906c292cbe00cb2a83f1531a21f32 (diff)
downloadhugo-8717a60cc030f4310c1779c0cdd51db37ad636cd.tar.gz
hugo-8717a60cc030f4310c1779c0cdd51db37ad636cd.zip
Change SummaryLength to be configurable (#3924)
Move SummaryLength into the ContentSpec struct and refactor the relevant summary functions to be methods of ContentSpec. The new summaryLength struct member is configurable by the summaryLength config value, and the default remains 70. Also updates hugolib/page to use the refactored methods. Resolves #3734
Diffstat (limited to 'helpers/content_test.go')
-rw-r--r--helpers/content_test.go15
1 files changed, 11 insertions, 4 deletions
diff --git a/helpers/content_test.go b/helpers/content_test.go
index b0afb9cbd..8f2d44cd9 100644
--- a/helpers/content_test.go
+++ b/helpers/content_test.go
@@ -76,20 +76,23 @@ func TestBytesToHTML(t *testing.T) {
var benchmarkTruncateString = strings.Repeat("This is a sentence about nothing.", 20)
func BenchmarkTestTruncateWordsToWholeSentence(b *testing.B) {
+ c := newTestContentSpec()
b.ResetTimer()
for i := 0; i < b.N; i++ {
- TruncateWordsToWholeSentence(benchmarkTruncateString, SummaryLength)
+ c.TruncateWordsToWholeSentence(benchmarkTruncateString)
}
}
func BenchmarkTestTruncateWordsToWholeSentenceOld(b *testing.B) {
+ c := newTestContentSpec()
b.ResetTimer()
for i := 0; i < b.N; i++ {
- truncateWordsToWholeSentenceOld(benchmarkTruncateString, SummaryLength)
+ c.truncateWordsToWholeSentenceOld(benchmarkTruncateString)
}
}
func TestTruncateWordsToWholeSentence(t *testing.T) {
+ c := newTestContentSpec()
type test struct {
input, expected string
max int
@@ -104,9 +107,11 @@ func TestTruncateWordsToWholeSentence(t *testing.T) {
{"To be. Or not to be. That's the question.", "To be.", 1, true},
{" \nThis is not a sentence\nAnd this is another", "This is not a sentence", 4, true},
{"", "", 10, false},
+ {"This... is a more difficult test?", "This... is a more difficult test?", 1, false},
}
for i, d := range data {
- output, truncated := TruncateWordsToWholeSentence(d.input, d.max)
+ c.summaryLength = d.max
+ output, truncated := c.TruncateWordsToWholeSentence(d.input)
if d.expected != output {
t.Errorf("Test %d failed. Expected %q got %q", i, d.expected, output)
}
@@ -118,6 +123,7 @@ func TestTruncateWordsToWholeSentence(t *testing.T) {
}
func TestTruncateWordsByRune(t *testing.T) {
+ c := newTestContentSpec()
type test struct {
input, expected string
max int
@@ -139,7 +145,8 @@ func TestTruncateWordsByRune(t *testing.T) {
{" \nThis is not a sentence\n ", "This is not", 3, true},
}
for i, d := range data {
- output, truncated := TruncateWordsByRune(strings.Fields(d.input), d.max)
+ c.summaryLength = d.max
+ output, truncated := c.TruncateWordsByRune(strings.Fields(d.input))
if d.expected != output {
t.Errorf("Test %d failed. Expected %q got %q", i, d.expected, output)
}