From 3d5dbdcb1a11b059fc2f93ed6fadb9009bf72673 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Wed, 7 Apr 2021 08:33:31 +0200 Subject: [PATCH] publisher: Also test minified HTML in the element collector Updates #7567 --- publisher/htmlElementsCollector_test.go | 36 ++++++++++++++++++++----- 1 file 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", `
foobar
`, f("div pre", "foo preclass", "")}, {"Textare tags content should be skipped", `
`, 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) + }) + } } }