mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-07 20:30:36 -05:00
publisher: Also test minified HTML in the element collector
Updates #7567
This commit is contained in:
parent
8a308944e4
commit
3d5dbdcb1a
1 changed files with 30 additions and 6 deletions
|
@ -18,6 +18,12 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"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"
|
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 {
|
for _, test := range []struct {
|
||||||
name string
|
name string
|
||||||
html string
|
html string
|
||||||
|
@ -96,14 +107,27 @@ 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", "")},
|
{"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", "")},
|
{"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) {
|
|
||||||
|
for _, minify := range []bool{false, true} {
|
||||||
|
c.Run(fmt.Sprintf("%s--minify-%t", test.name, minify), func(c *qt.C) {
|
||||||
w := newHTMLElementsCollectorWriter(newHTMLElementsCollector())
|
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)
|
fmt.Fprint(w, test.html)
|
||||||
|
}
|
||||||
got := w.collector.getHTMLElements()
|
got := w.collector.getHTMLElements()
|
||||||
c.Assert(got, qt.DeepEquals, test.expect)
|
c.Assert(got, qt.DeepEquals, test.expect)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func BenchmarkClassCollectorWriter(b *testing.B) {
|
func BenchmarkClassCollectorWriter(b *testing.B) {
|
||||||
const benchHTML = `
|
const benchHTML = `
|
||||||
|
|
Loading…
Reference in a new issue