# SPDX-License-Identifier: 0BSD
import time
import unittest
from meshchatx.src.backend.markdown_renderer import MarkdownRenderer
class TestMarkdownRenderer(unittest.TestCase):
def test_basic_render(self):
self.assertEqual(MarkdownRenderer.render(""), "")
self.assertIn("
Bold", MarkdownRenderer.render("**Bold**"))
self.assertIn("Italic", MarkdownRenderer.render("*Italic*"))
def test_links(self):
rendered = MarkdownRenderer.render("[Google](https://google.com)")
self.assertIn('href="https://google.com"', rendered)
self.assertIn("Google", rendered)
def test_code_blocks(self):
code = "```python\nprint('hello')\n```"
rendered = MarkdownRenderer.render(code)
self.assertIn("", rendered)
self.assertIn("strike", rendered)
def test_paragraphs(self):
md = "Para 1\n\nPara 2"
rendered = MarkdownRenderer.render(md)
self.assertIn("alert(1)",
"",
'',
"",
]
for s in cases:
r = MarkdownRenderer.render(s)
self.assertNotIn("", r, msg=s)
self.assertIn("<", r, msg=s)
def test_xss_event_handlers(self):
cases = [
'
',
'
',
'x',
'