forked from mirrors/bookwyrm
51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
|
from django.test import TestCase
|
||
|
|
||
|
from fedireads.sanitize_html import InputHtmlParser
|
||
|
|
||
|
|
||
|
class Sanitizer(TestCase):
|
||
|
def test_no_html(self):
|
||
|
input_text = 'no html '
|
||
|
parser = InputHtmlParser()
|
||
|
parser.feed(input_text)
|
||
|
output = parser.get_output()
|
||
|
self.assertEqual(input_text, output)
|
||
|
|
||
|
|
||
|
def test_valid_html(self):
|
||
|
input_text = '<b>yes </b> <i>html</i>'
|
||
|
parser = InputHtmlParser()
|
||
|
parser.feed(input_text)
|
||
|
output = parser.get_output()
|
||
|
self.assertEqual(input_text, output)
|
||
|
|
||
|
|
||
|
def test_valid_html_attrs(self):
|
||
|
input_text = '<a href="fish.com">yes </a> <i>html</i>'
|
||
|
parser = InputHtmlParser()
|
||
|
parser.feed(input_text)
|
||
|
output = parser.get_output()
|
||
|
self.assertEqual(input_text, output)
|
||
|
|
||
|
|
||
|
def test_invalid_html(self):
|
||
|
input_text = '<b>yes <i>html</i>'
|
||
|
parser = InputHtmlParser()
|
||
|
parser.feed(input_text)
|
||
|
output = parser.get_output()
|
||
|
self.assertEqual('yes html', output)
|
||
|
|
||
|
input_text = 'yes <i></b>html </i>'
|
||
|
parser = InputHtmlParser()
|
||
|
parser.feed(input_text)
|
||
|
output = parser.get_output()
|
||
|
self.assertEqual('yes html ', output)
|
||
|
|
||
|
|
||
|
def test_disallowed_html(self):
|
||
|
input_text = '<div> yes <i>html</i></div>'
|
||
|
parser = InputHtmlParser()
|
||
|
parser.feed(input_text)
|
||
|
output = parser.get_output()
|
||
|
self.assertEqual(' yes <i>html</i>', output)
|