hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 3d5dbdcb1a11b059fc2f93ed6fadb9009bf72673
parent 8a308944e46f8c2aa054005d5aed89f2711f9c1d
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Wed,  7 Apr 2021 08:33:31 +0200

publisher: Also test minified HTML in the element collector

Updates #7567

Diffstat:
Mpublisher/htmlElementsCollector_test.go | 36++++++++++++++++++++++++++++++------
1 file changed, 30 insertions(+), 6 deletions(-)
diff --git a/publisher/htmlElementsCollector_test.go b/publisher/htmlElementsCollector_test.go
@@ -18,6 +18,12 @@ import (
 	"strings"
 	"testing"
 
+	"github.com/gohugoio/hugo/minifiers"
+
+	"github.com/gohugoio/hugo/media"
+	"github.com/gohugoio/hugo/output"
+	"github.com/spf13/viper"
+
 	qt "github.com/frankban/quicktest"
 )
 
@@ -42,6 +48,11 @@ func TestClassCollector(t *testing.T) {
 		}
 	}
 
+	skipMinifyTest := map[string]bool{
+		"Script tags content should be skipped": true, // https://github.com/tdewolff/minify/issues/396
+
+	}
+
 	for _, test := range []struct {
 		name   string
 		html   string
@@ -96,12 +107,25 @@ func TestClassCollector(t *testing.T) {
 		{"Pre tags content should be skipped", `<pre class="preclass"><span>foo</span><span>bar</span></pre><div class="foo"></div>`, f("div pre", "foo preclass", "")},
 		{"Textare tags content should be skipped", `<textarea class="textareaclass"><span>foo</span><span>bar</span></textarea><div class="foo"></div>`, f("div textarea", "foo textareaclass", "")},
 	} {
-		c.Run(test.name, func(c *qt.C) {
-			w := newHTMLElementsCollectorWriter(newHTMLElementsCollector())
-			fmt.Fprint(w, test.html)
-			got := w.collector.getHTMLElements()
-			c.Assert(got, qt.DeepEquals, test.expect)
-		})
+
+		for _, minify := range []bool{false, true} {
+			c.Run(fmt.Sprintf("%s--minify-%t", test.name, minify), func(c *qt.C) {
+				w := newHTMLElementsCollectorWriter(newHTMLElementsCollector())
+
+				if minify {
+					if skipMinifyTest[test.name] {
+						c.Skip("skip minify test")
+					}
+					v := viper.New()
+					m, _ := minifiers.New(media.DefaultTypes, output.DefaultFormats, v)
+					m.Minify(media.HTMLType, w, strings.NewReader(test.html))
+				} else {
+					fmt.Fprint(w, test.html)
+				}
+				got := w.collector.getHTMLElements()
+				c.Assert(got, qt.DeepEquals, test.expect)
+			})
+		}
 	}
 }