mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-22 21:42:50 +02:00
Revert "publisher: Make the HTML element collector more robust"
This reverts commit ef0f1a7269
.
This commit is contained in:
@@ -15,12 +15,8 @@ package publisher
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/gohugoio/hugo/common/text"
|
||||
|
||||
"github.com/gohugoio/hugo/media"
|
||||
"github.com/gohugoio/hugo/minifiers"
|
||||
@@ -32,7 +28,6 @@ import (
|
||||
|
||||
func TestClassCollector(t *testing.T) {
|
||||
c := qt.New((t))
|
||||
rnd := rand.New(rand.NewSource(time.Now().Unix()))
|
||||
|
||||
f := func(tags, classes, ids string) HTMLElements {
|
||||
var tagss, classess, idss []string
|
||||
@@ -62,20 +57,14 @@ func TestClassCollector(t *testing.T) {
|
||||
expect HTMLElements
|
||||
}{
|
||||
{"basic", `<body class="b a"></body>`, f("body", "a b", "")},
|
||||
{"duplicates", `<div class="b a b"></div><div class="b a b"></div>x'`, f("div", "a b", "")},
|
||||
{"duplicates", `<div class="b a b"></div>`, f("div", "a b", "")},
|
||||
{"single quote", `<body class='b a'></body>`, f("body", "a b", "")},
|
||||
{"no quote", `<body class=b id=myelement></body>`, f("body", "b", "myelement")},
|
||||
{"short", `<i>`, f("i", "", "")},
|
||||
{"invalid", `< body class="b a"></body><div></div>`, f("div", "", "")},
|
||||
// https://github.com/gohugoio/hugo/issues/7318
|
||||
{"thead", `<table class="cl1">
|
||||
<thead class="cl2"><tr class="cl3"><td class="cl4"></td></tr></thead>
|
||||
<tbody class="cl5"><tr class="cl6"><td class="cl7"></td></tr></tbody>
|
||||
</table>`, f("table tbody td thead tr", "cl1 cl2 cl3 cl4 cl5 cl6 cl7", "")},
|
||||
{"thead uppercase", `<TABLE class="CL1">
|
||||
<THEAD class="CL2"><TR class="CL3"><TD class="CL4"></TD></TR></THEAD>
|
||||
<TBODY class="CL5"><TR class="CL6"><TD class="CL7"></TD></TR></TBODY>
|
||||
</TABLE>`, f("table tbody td thead tr", "CL1 CL2 CL3 CL4 CL5 CL6 CL7", "")},
|
||||
// https://github.com/gohugoio/hugo/issues/7161
|
||||
{"minified a href", `<a class="b a" href=/></a>`, f("a", "a b", "")},
|
||||
{"AlpineJS bind 1", `<body>
|
||||
@@ -109,11 +98,6 @@ func TestClassCollector(t *testing.T) {
|
||||
{"Textarea tags content should be skipped", `<textarea class="textareaclass"><span>foo</span><span>bar</span></textarea><div class="foo"></div>`, f("div textarea", "foo textareaclass", "")},
|
||||
{"DOCTYPE should beskipped", `<!DOCTYPE html>`, f("", "", "")},
|
||||
{"Comments should be skipped", `<!-- example comment -->`, f("", "", "")},
|
||||
{"Comments with elements before and after", `<div></div><!-- example comment --><span><span>`, f("div span", "", "")},
|
||||
// Issue #8530
|
||||
{"Comment with single quote", `<!-- Hero Area Image d'accueil --><i class="foo">`, f("i", "foo", "")},
|
||||
{"Uppercase tags", `<DIV></DIV>`, f("div", "", "")},
|
||||
{"Predefined tags with distinct casing", `<script>if (a < b) { nothing(); }</SCRIPT><div></div>`, f("div script", "", "")},
|
||||
// Issue #8417
|
||||
{"Tabs inline", `<hr id="a" class="foo"><div class="bar">d</div>`, f("div hr", "bar foo", "a")},
|
||||
{"Tabs on multiple rows", `<form
|
||||
@@ -124,29 +108,16 @@ func TestClassCollector(t *testing.T) {
|
||||
<div id="b" class="foo">d</div>`, f("div form", "foo", "a b")},
|
||||
} {
|
||||
|
||||
for _, variant := range []struct {
|
||||
minify bool
|
||||
stream bool
|
||||
}{
|
||||
{minify: false, stream: false},
|
||||
{minify: true, stream: false},
|
||||
{minify: false, stream: true},
|
||||
} {
|
||||
|
||||
c.Run(fmt.Sprintf("%s--minify-%t--stream-%t", test.name, variant.minify, variant.stream), 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())
|
||||
if variant.minify {
|
||||
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 if variant.stream {
|
||||
chunks := text.Chunk(test.html, rnd.Intn(41)+1)
|
||||
for _, chunk := range chunks {
|
||||
fmt.Fprint(w, chunk)
|
||||
}
|
||||
} else {
|
||||
fmt.Fprint(w, test.html)
|
||||
}
|
||||
@@ -155,7 +126,6 @@ func TestClassCollector(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func BenchmarkElementsCollectorWriter(b *testing.B) {
|
||||
|
Reference in New Issue
Block a user