mirror of
https://github.com/miniflux/v2.git
synced 2025-09-15 18:57:04 +00:00
Speed the sanitizer up a bit, again
- allow youtube urls to start with `www` - use `strings.Builder` instead of a `bytes.Buffer` - use a `strings.NewReader` instead of a `bytes.NewBufferString` - sprinkles a couple of `continue` to make the code-flow more obvious - inline calls to `inList`, and put their parameters in the right order - simplify isPixelTracker - simplify `isValidIframeSource`, by extracting the hostname and comparing it directly, instead of using the full url and checking if it starts with multiple variations of the same one (`//`, `http:`, `https://` multiplied by ``/`www.`) - add a benchmark
This commit is contained in:
parent
eda2e2f3f5
commit
3d0126be0b
4 changed files with 3502 additions and 51 deletions
|
@ -16,6 +16,25 @@ func TestMain(m *testing.M) {
|
|||
os.Exit(exitCode)
|
||||
}
|
||||
|
||||
func BenchmarkSanitize(b *testing.B) {
|
||||
var testCases = map[string][]string{
|
||||
"miniflux_github.html": {"https://github.com/miniflux/v2", ""},
|
||||
"miniflux_wikipedia.html": {"https://fr.wikipedia.org/wiki/Miniflux", ""},
|
||||
}
|
||||
for filename := range testCases {
|
||||
data, err := os.ReadFile("testdata/" + filename)
|
||||
if err != nil {
|
||||
b.Fatalf(`Unable to read file %q: %v`, filename, err)
|
||||
}
|
||||
testCases[filename][1] = string(data)
|
||||
}
|
||||
for range b.N {
|
||||
for _, v := range testCases {
|
||||
Sanitize(v[0], v[1])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidInput(t *testing.T) {
|
||||
input := `<p>This is a <strong>text</strong> with an image: <img src="http://example.org/" alt="Test" loading="lazy">.</p>`
|
||||
output := Sanitize("http://example.org/", input)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue