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)