""" make sure only valid html gets to the app """ from django.test import TestCase from bookwyrm.sanitize_html import InputHtmlParser class Sanitizer(TestCase): """ sanitizer tests """ def test_no_html(self): """ just text """ input_text = "no html " parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual(input_text, output) def test_valid_html(self): """ leave the html untouched """ input_text = "yes html" parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual(input_text, output) def test_valid_html_attrs(self): """ and don't remove attributes """ input_text = 'yes html' parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual(input_text, output) def test_invalid_html(self): """ remove all html when the html is malformed """ input_text = "yes html" parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual("yes html", output) input_text = "yes html " parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual("yes html ", output) def test_disallowed_html(self): """ remove disallowed html but keep allowed html """ input_text = "
yes html
" parser = InputHtmlParser() parser.feed(input_text) output = parser.get_output() self.assertEqual(" yes html", output)