summaryrefslogtreecommitdiffstats
path: root/publisher
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-04-07 08:33:31 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-04-07 16:40:15 +0200
commit3d5dbdcb1a11b059fc2f93ed6fadb9009bf72673 (patch)
treec7b80101a86ee29348c72af76d81fcc2af45099b /publisher
parent8a308944e46f8c2aa054005d5aed89f2711f9c1d (diff)
publisher: Also test minified HTML in the element collector
Updates #7567
Diffstat (limited to 'publisher')
-rw-r--r--publisher/htmlElementsCollector_test.go36
1 files changed, 30 insertions, 6 deletions
diff --git a/publisher/htmlElementsCollector_test.go b/publisher/htmlElementsCollector_test.go
index 5a1802234..5b2d85d47 100644
--- 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)
+ })
+ }
}
}