Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit e209e8f7 authored by cketti's avatar cketti Committed by GitHub
Browse files

Merge pull request #6256 from thundernest/html_sanitizer_updates

HTML sanitizer updates
parents 1de1f545 c0be8a80
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@ internal class BodyCleaner {
        val allowList = Safelist.relaxed()
            .addTags("font", "hr", "ins", "del", "center", "map", "area", "title")
            .addAttributes("font", "color", "face", "size")
            .addAttributes("a", "name")
            .addAttributes("div", "align")
            .addAttributes(
                "table", "align", "background", "bgcolor", "border", "cellpadding", "cellspacing",
                "width"
+36 −0
Original line number Diff line number Diff line
@@ -409,6 +409,42 @@ class HtmlSanitizerTest {
        )
    }

    @Test
    fun `should keep 'align' attribute on 'div' element`() {
        val html = """<div align="center">text</div>"""

        val result = htmlSanitizer.sanitize(html)

        assertThat(result.toCompactString()).isEqualTo(
            """
            <html>
            <head></head>
            <body>
            <div align="center">text</div>
            </body>
            </html>
            """.trimIndent().trimLineBreaks()
        )
    }

    @Test
    fun `should keep 'name' attribute on 'a' element`() {
        val html = """<a name="something">"""

        val result = htmlSanitizer.sanitize(html)

        assertThat(result.toCompactString()).isEqualTo(
            """
            <html>
            <head></head>
            <body>
            <a name="something"></a>
            </body>
            </html>
            """.trimIndent().trimLineBreaks()
        )
    }

    private fun Document.toCompactString(): String {
        outputSettings()
            .prettyPrint(false)