Spaces:
Running on Zero
Running on Zero
| import unittest | |
| import app | |
| import town | |
| class RenderTest(unittest.TestCase): | |
| def test_god_power_event_escapes_html_tags(self): | |
| state = town.TownState() | |
| town.inject(state, '<script>alert("x")</script> <img onerror=x>') | |
| rendered = app._render(state) | |
| self.assertIn("<script>", rendered) | |
| self.assertIn("</script>", rendered) | |
| self.assertIn("<img onerror=x>", rendered) | |
| self.assertNotIn("<script>", rendered) | |
| self.assertNotIn("<img onerror=x>", rendered) | |
| self.assertIn("<div class='ev'>", rendered) | |
| def test_speaker_and_model_text_are_escaped(self): | |
| state = town.TownState(feed=[("<b>Stranger</b>", "<img src=x onerror=x>")]) | |
| rendered = app._render(state) | |
| self.assertIn("<b>Stranger</b>", rendered) | |
| self.assertIn("<img src=x onerror=x>", rendered) | |
| self.assertNotIn("<b>Stranger</b>", rendered) | |
| self.assertNotIn("<img src=x onerror=x>", rendered) | |
| if __name__ == "__main__": | |
| unittest.main() | |